module Stratosphere.ElasticBeanstalk.Application.ApplicationResourceLifecycleConfigProperty (
        module Exports, ApplicationResourceLifecycleConfigProperty(..),
        mkApplicationResourceLifecycleConfigProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.ElasticBeanstalk.Application.ApplicationVersionLifecycleConfigProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ApplicationResourceLifecycleConfigProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html>
    ApplicationResourceLifecycleConfigProperty {ApplicationResourceLifecycleConfigProperty -> ()
haddock_workaround_ :: (),
                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html#cfn-elasticbeanstalk-application-applicationresourcelifecycleconfig-servicerole>
                                                ApplicationResourceLifecycleConfigProperty -> Maybe (Value Text)
serviceRole :: (Prelude.Maybe (Value Prelude.Text)),
                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html#cfn-elasticbeanstalk-application-applicationresourcelifecycleconfig-versionlifecycleconfig>
                                                ApplicationResourceLifecycleConfigProperty
-> Maybe ApplicationVersionLifecycleConfigProperty
versionLifecycleConfig :: (Prelude.Maybe ApplicationVersionLifecycleConfigProperty)}
  deriving stock (ApplicationResourceLifecycleConfigProperty
-> ApplicationResourceLifecycleConfigProperty -> Bool
(ApplicationResourceLifecycleConfigProperty
 -> ApplicationResourceLifecycleConfigProperty -> Bool)
-> (ApplicationResourceLifecycleConfigProperty
    -> ApplicationResourceLifecycleConfigProperty -> Bool)
-> Eq ApplicationResourceLifecycleConfigProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ApplicationResourceLifecycleConfigProperty
-> ApplicationResourceLifecycleConfigProperty -> Bool
== :: ApplicationResourceLifecycleConfigProperty
-> ApplicationResourceLifecycleConfigProperty -> Bool
$c/= :: ApplicationResourceLifecycleConfigProperty
-> ApplicationResourceLifecycleConfigProperty -> Bool
/= :: ApplicationResourceLifecycleConfigProperty
-> ApplicationResourceLifecycleConfigProperty -> Bool
Prelude.Eq, Int -> ApplicationResourceLifecycleConfigProperty -> ShowS
[ApplicationResourceLifecycleConfigProperty] -> ShowS
ApplicationResourceLifecycleConfigProperty -> String
(Int -> ApplicationResourceLifecycleConfigProperty -> ShowS)
-> (ApplicationResourceLifecycleConfigProperty -> String)
-> ([ApplicationResourceLifecycleConfigProperty] -> ShowS)
-> Show ApplicationResourceLifecycleConfigProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ApplicationResourceLifecycleConfigProperty -> ShowS
showsPrec :: Int -> ApplicationResourceLifecycleConfigProperty -> ShowS
$cshow :: ApplicationResourceLifecycleConfigProperty -> String
show :: ApplicationResourceLifecycleConfigProperty -> String
$cshowList :: [ApplicationResourceLifecycleConfigProperty] -> ShowS
showList :: [ApplicationResourceLifecycleConfigProperty] -> ShowS
Prelude.Show)
mkApplicationResourceLifecycleConfigProperty ::
  ApplicationResourceLifecycleConfigProperty
mkApplicationResourceLifecycleConfigProperty :: ApplicationResourceLifecycleConfigProperty
mkApplicationResourceLifecycleConfigProperty
  = ApplicationResourceLifecycleConfigProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), serviceRole :: Maybe (Value Text)
serviceRole = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       versionLifecycleConfig :: Maybe ApplicationVersionLifecycleConfigProperty
versionLifecycleConfig = Maybe ApplicationVersionLifecycleConfigProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties ApplicationResourceLifecycleConfigProperty where
  toResourceProperties :: ApplicationResourceLifecycleConfigProperty -> ResourceProperties
toResourceProperties
    ApplicationResourceLifecycleConfigProperty {Maybe (Value Text)
Maybe ApplicationVersionLifecycleConfigProperty
()
haddock_workaround_ :: ApplicationResourceLifecycleConfigProperty -> ()
serviceRole :: ApplicationResourceLifecycleConfigProperty -> Maybe (Value Text)
versionLifecycleConfig :: ApplicationResourceLifecycleConfigProperty
-> Maybe ApplicationVersionLifecycleConfigProperty
haddock_workaround_ :: ()
serviceRole :: Maybe (Value Text)
versionLifecycleConfig :: Maybe ApplicationVersionLifecycleConfigProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig",
         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
"ServiceRole" (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)
serviceRole,
                            Key -> ApplicationVersionLifecycleConfigProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"VersionLifecycleConfig"
                              (ApplicationVersionLifecycleConfigProperty -> (Key, Value))
-> Maybe ApplicationVersionLifecycleConfigProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ApplicationVersionLifecycleConfigProperty
versionLifecycleConfig])}
instance JSON.ToJSON ApplicationResourceLifecycleConfigProperty where
  toJSON :: ApplicationResourceLifecycleConfigProperty -> Value
toJSON ApplicationResourceLifecycleConfigProperty {Maybe (Value Text)
Maybe ApplicationVersionLifecycleConfigProperty
()
haddock_workaround_ :: ApplicationResourceLifecycleConfigProperty -> ()
serviceRole :: ApplicationResourceLifecycleConfigProperty -> Maybe (Value Text)
versionLifecycleConfig :: ApplicationResourceLifecycleConfigProperty
-> Maybe ApplicationVersionLifecycleConfigProperty
haddock_workaround_ :: ()
serviceRole :: Maybe (Value Text)
versionLifecycleConfig :: Maybe ApplicationVersionLifecycleConfigProperty
..}
    = [(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
"ServiceRole" (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)
serviceRole,
               Key -> ApplicationVersionLifecycleConfigProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"VersionLifecycleConfig"
                 (ApplicationVersionLifecycleConfigProperty -> (Key, Value))
-> Maybe ApplicationVersionLifecycleConfigProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ApplicationVersionLifecycleConfigProperty
versionLifecycleConfig]))
instance Property "ServiceRole" ApplicationResourceLifecycleConfigProperty where
  type PropertyType "ServiceRole" ApplicationResourceLifecycleConfigProperty = Value Prelude.Text
  set :: PropertyType
  "ServiceRole" ApplicationResourceLifecycleConfigProperty
-> ApplicationResourceLifecycleConfigProperty
-> ApplicationResourceLifecycleConfigProperty
set PropertyType
  "ServiceRole" ApplicationResourceLifecycleConfigProperty
newValue ApplicationResourceLifecycleConfigProperty {Maybe (Value Text)
Maybe ApplicationVersionLifecycleConfigProperty
()
haddock_workaround_ :: ApplicationResourceLifecycleConfigProperty -> ()
serviceRole :: ApplicationResourceLifecycleConfigProperty -> Maybe (Value Text)
versionLifecycleConfig :: ApplicationResourceLifecycleConfigProperty
-> Maybe ApplicationVersionLifecycleConfigProperty
haddock_workaround_ :: ()
serviceRole :: Maybe (Value Text)
versionLifecycleConfig :: Maybe ApplicationVersionLifecycleConfigProperty
..}
    = ApplicationResourceLifecycleConfigProperty
        {serviceRole :: Maybe (Value Text)
serviceRole = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType
  "ServiceRole" ApplicationResourceLifecycleConfigProperty
Value Text
newValue, Maybe ApplicationVersionLifecycleConfigProperty
()
haddock_workaround_ :: ()
versionLifecycleConfig :: Maybe ApplicationVersionLifecycleConfigProperty
haddock_workaround_ :: ()
versionLifecycleConfig :: Maybe ApplicationVersionLifecycleConfigProperty
..}
instance Property "VersionLifecycleConfig" ApplicationResourceLifecycleConfigProperty where
  type PropertyType "VersionLifecycleConfig" ApplicationResourceLifecycleConfigProperty = ApplicationVersionLifecycleConfigProperty
  set :: PropertyType
  "VersionLifecycleConfig" ApplicationResourceLifecycleConfigProperty
-> ApplicationResourceLifecycleConfigProperty
-> ApplicationResourceLifecycleConfigProperty
set PropertyType
  "VersionLifecycleConfig" ApplicationResourceLifecycleConfigProperty
newValue ApplicationResourceLifecycleConfigProperty {Maybe (Value Text)
Maybe ApplicationVersionLifecycleConfigProperty
()
haddock_workaround_ :: ApplicationResourceLifecycleConfigProperty -> ()
serviceRole :: ApplicationResourceLifecycleConfigProperty -> Maybe (Value Text)
versionLifecycleConfig :: ApplicationResourceLifecycleConfigProperty
-> Maybe ApplicationVersionLifecycleConfigProperty
haddock_workaround_ :: ()
serviceRole :: Maybe (Value Text)
versionLifecycleConfig :: Maybe ApplicationVersionLifecycleConfigProperty
..}
    = ApplicationResourceLifecycleConfigProperty
        {versionLifecycleConfig :: Maybe ApplicationVersionLifecycleConfigProperty
versionLifecycleConfig = ApplicationVersionLifecycleConfigProperty
-> Maybe ApplicationVersionLifecycleConfigProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType
  "VersionLifecycleConfig" ApplicationResourceLifecycleConfigProperty
ApplicationVersionLifecycleConfigProperty
newValue, Maybe (Value Text)
()
haddock_workaround_ :: ()
serviceRole :: Maybe (Value Text)
haddock_workaround_ :: ()
serviceRole :: Maybe (Value Text)
..}