module Stratosphere.Batch.JobDefinition.FargatePlatformConfigurationProperty (
        FargatePlatformConfigurationProperty(..),
        mkFargatePlatformConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data FargatePlatformConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-fargateplatformconfiguration.html>
    FargatePlatformConfigurationProperty {FargatePlatformConfigurationProperty -> ()
haddock_workaround_ :: (),
                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-fargateplatformconfiguration.html#cfn-batch-jobdefinition-fargateplatformconfiguration-platformversion>
                                          FargatePlatformConfigurationProperty -> Maybe (Value Text)
platformVersion :: (Prelude.Maybe (Value Prelude.Text))}
  deriving stock (FargatePlatformConfigurationProperty
-> FargatePlatformConfigurationProperty -> Bool
(FargatePlatformConfigurationProperty
 -> FargatePlatformConfigurationProperty -> Bool)
-> (FargatePlatformConfigurationProperty
    -> FargatePlatformConfigurationProperty -> Bool)
-> Eq FargatePlatformConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FargatePlatformConfigurationProperty
-> FargatePlatformConfigurationProperty -> Bool
== :: FargatePlatformConfigurationProperty
-> FargatePlatformConfigurationProperty -> Bool
$c/= :: FargatePlatformConfigurationProperty
-> FargatePlatformConfigurationProperty -> Bool
/= :: FargatePlatformConfigurationProperty
-> FargatePlatformConfigurationProperty -> Bool
Prelude.Eq, Int -> FargatePlatformConfigurationProperty -> ShowS
[FargatePlatformConfigurationProperty] -> ShowS
FargatePlatformConfigurationProperty -> String
(Int -> FargatePlatformConfigurationProperty -> ShowS)
-> (FargatePlatformConfigurationProperty -> String)
-> ([FargatePlatformConfigurationProperty] -> ShowS)
-> Show FargatePlatformConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FargatePlatformConfigurationProperty -> ShowS
showsPrec :: Int -> FargatePlatformConfigurationProperty -> ShowS
$cshow :: FargatePlatformConfigurationProperty -> String
show :: FargatePlatformConfigurationProperty -> String
$cshowList :: [FargatePlatformConfigurationProperty] -> ShowS
showList :: [FargatePlatformConfigurationProperty] -> ShowS
Prelude.Show)
mkFargatePlatformConfigurationProperty ::
  FargatePlatformConfigurationProperty
mkFargatePlatformConfigurationProperty :: FargatePlatformConfigurationProperty
mkFargatePlatformConfigurationProperty
  = FargatePlatformConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), platformVersion :: Maybe (Value Text)
platformVersion = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties FargatePlatformConfigurationProperty where
  toResourceProperties :: FargatePlatformConfigurationProperty -> ResourceProperties
toResourceProperties FargatePlatformConfigurationProperty {Maybe (Value Text)
()
haddock_workaround_ :: FargatePlatformConfigurationProperty -> ()
platformVersion :: FargatePlatformConfigurationProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
platformVersion :: Maybe (Value Text)
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Batch::JobDefinition.FargatePlatformConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [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..=) Key
"PlatformVersion" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
platformVersion])}
instance JSON.ToJSON FargatePlatformConfigurationProperty where
  toJSON :: FargatePlatformConfigurationProperty -> Value
toJSON FargatePlatformConfigurationProperty {Maybe (Value Text)
()
haddock_workaround_ :: FargatePlatformConfigurationProperty -> ()
platformVersion :: FargatePlatformConfigurationProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
platformVersion :: Maybe (Value Text)
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [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..=) Key
"PlatformVersion" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
platformVersion]))
instance Property "PlatformVersion" FargatePlatformConfigurationProperty where
  type PropertyType "PlatformVersion" FargatePlatformConfigurationProperty = Value Prelude.Text
  set :: PropertyType "PlatformVersion" FargatePlatformConfigurationProperty
-> FargatePlatformConfigurationProperty
-> FargatePlatformConfigurationProperty
set PropertyType "PlatformVersion" FargatePlatformConfigurationProperty
newValue FargatePlatformConfigurationProperty {Maybe (Value Text)
()
haddock_workaround_ :: FargatePlatformConfigurationProperty -> ()
platformVersion :: FargatePlatformConfigurationProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
platformVersion :: Maybe (Value Text)
..}
    = FargatePlatformConfigurationProperty
        {platformVersion :: Maybe (Value Text)
platformVersion = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "PlatformVersion" FargatePlatformConfigurationProperty
Value Text
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}