module Stratosphere.M2.Environment.EfsStorageConfigurationProperty (
        EfsStorageConfigurationProperty(..),
        mkEfsStorageConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data EfsStorageConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-m2-environment-efsstorageconfiguration.html>
    EfsStorageConfigurationProperty {EfsStorageConfigurationProperty -> ()
haddock_workaround_ :: (),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-m2-environment-efsstorageconfiguration.html#cfn-m2-environment-efsstorageconfiguration-filesystemid>
                                     EfsStorageConfigurationProperty -> Value Text
fileSystemId :: (Value Prelude.Text),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-m2-environment-efsstorageconfiguration.html#cfn-m2-environment-efsstorageconfiguration-mountpoint>
                                     EfsStorageConfigurationProperty -> Value Text
mountPoint :: (Value Prelude.Text)}
  deriving stock (EfsStorageConfigurationProperty
-> EfsStorageConfigurationProperty -> Bool
(EfsStorageConfigurationProperty
 -> EfsStorageConfigurationProperty -> Bool)
-> (EfsStorageConfigurationProperty
    -> EfsStorageConfigurationProperty -> Bool)
-> Eq EfsStorageConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EfsStorageConfigurationProperty
-> EfsStorageConfigurationProperty -> Bool
== :: EfsStorageConfigurationProperty
-> EfsStorageConfigurationProperty -> Bool
$c/= :: EfsStorageConfigurationProperty
-> EfsStorageConfigurationProperty -> Bool
/= :: EfsStorageConfigurationProperty
-> EfsStorageConfigurationProperty -> Bool
Prelude.Eq, Int -> EfsStorageConfigurationProperty -> ShowS
[EfsStorageConfigurationProperty] -> ShowS
EfsStorageConfigurationProperty -> String
(Int -> EfsStorageConfigurationProperty -> ShowS)
-> (EfsStorageConfigurationProperty -> String)
-> ([EfsStorageConfigurationProperty] -> ShowS)
-> Show EfsStorageConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EfsStorageConfigurationProperty -> ShowS
showsPrec :: Int -> EfsStorageConfigurationProperty -> ShowS
$cshow :: EfsStorageConfigurationProperty -> String
show :: EfsStorageConfigurationProperty -> String
$cshowList :: [EfsStorageConfigurationProperty] -> ShowS
showList :: [EfsStorageConfigurationProperty] -> ShowS
Prelude.Show)
mkEfsStorageConfigurationProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> EfsStorageConfigurationProperty
mkEfsStorageConfigurationProperty :: Value Text -> Value Text -> EfsStorageConfigurationProperty
mkEfsStorageConfigurationProperty Value Text
fileSystemId Value Text
mountPoint
  = EfsStorageConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), fileSystemId :: Value Text
fileSystemId = Value Text
fileSystemId,
       mountPoint :: Value Text
mountPoint = Value Text
mountPoint}
instance ToResourceProperties EfsStorageConfigurationProperty where
  toResourceProperties :: EfsStorageConfigurationProperty -> ResourceProperties
toResourceProperties EfsStorageConfigurationProperty {()
Value Text
haddock_workaround_ :: EfsStorageConfigurationProperty -> ()
fileSystemId :: EfsStorageConfigurationProperty -> Value Text
mountPoint :: EfsStorageConfigurationProperty -> Value Text
haddock_workaround_ :: ()
fileSystemId :: Value Text
mountPoint :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::M2::Environment.EfsStorageConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"FileSystemId" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
fileSystemId,
                       Key
"MountPoint" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
mountPoint]}
instance JSON.ToJSON EfsStorageConfigurationProperty where
  toJSON :: EfsStorageConfigurationProperty -> Value
toJSON EfsStorageConfigurationProperty {()
Value Text
haddock_workaround_ :: EfsStorageConfigurationProperty -> ()
fileSystemId :: EfsStorageConfigurationProperty -> Value Text
mountPoint :: EfsStorageConfigurationProperty -> Value Text
haddock_workaround_ :: ()
fileSystemId :: Value Text
mountPoint :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"FileSystemId" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
fileSystemId,
         Key
"MountPoint" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
mountPoint]
instance Property "FileSystemId" EfsStorageConfigurationProperty where
  type PropertyType "FileSystemId" EfsStorageConfigurationProperty = Value Prelude.Text
  set :: PropertyType "FileSystemId" EfsStorageConfigurationProperty
-> EfsStorageConfigurationProperty
-> EfsStorageConfigurationProperty
set PropertyType "FileSystemId" EfsStorageConfigurationProperty
newValue EfsStorageConfigurationProperty {()
Value Text
haddock_workaround_ :: EfsStorageConfigurationProperty -> ()
fileSystemId :: EfsStorageConfigurationProperty -> Value Text
mountPoint :: EfsStorageConfigurationProperty -> Value Text
haddock_workaround_ :: ()
fileSystemId :: Value Text
mountPoint :: Value Text
..}
    = EfsStorageConfigurationProperty {fileSystemId :: Value Text
fileSystemId = PropertyType "FileSystemId" EfsStorageConfigurationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
mountPoint :: Value Text
haddock_workaround_ :: ()
mountPoint :: Value Text
..}
instance Property "MountPoint" EfsStorageConfigurationProperty where
  type PropertyType "MountPoint" EfsStorageConfigurationProperty = Value Prelude.Text
  set :: PropertyType "MountPoint" EfsStorageConfigurationProperty
-> EfsStorageConfigurationProperty
-> EfsStorageConfigurationProperty
set PropertyType "MountPoint" EfsStorageConfigurationProperty
newValue EfsStorageConfigurationProperty {()
Value Text
haddock_workaround_ :: EfsStorageConfigurationProperty -> ()
fileSystemId :: EfsStorageConfigurationProperty -> Value Text
mountPoint :: EfsStorageConfigurationProperty -> Value Text
haddock_workaround_ :: ()
fileSystemId :: Value Text
mountPoint :: Value Text
..}
    = EfsStorageConfigurationProperty {mountPoint :: Value Text
mountPoint = PropertyType "MountPoint" EfsStorageConfigurationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
fileSystemId :: Value Text
haddock_workaround_ :: ()
fileSystemId :: Value Text
..}