module Stratosphere.MSK.ServerlessCluster (
        module Exports, ServerlessCluster(..), mkServerlessCluster
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.MSK.ServerlessCluster.ClientAuthenticationProperty as Exports
import {-# SOURCE #-} Stratosphere.MSK.ServerlessCluster.VpcConfigProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ServerlessCluster
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html>
    ServerlessCluster {ServerlessCluster -> ()
haddock_workaround_ :: (),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html#cfn-msk-serverlesscluster-clientauthentication>
                       ServerlessCluster -> ClientAuthenticationProperty
clientAuthentication :: ClientAuthenticationProperty,
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html#cfn-msk-serverlesscluster-clustername>
                       ServerlessCluster -> Value Text
clusterName :: (Value Prelude.Text),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html#cfn-msk-serverlesscluster-tags>
                       ServerlessCluster -> Maybe (Map Text (Value Text))
tags :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text))),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html#cfn-msk-serverlesscluster-vpcconfigs>
                       ServerlessCluster -> [VpcConfigProperty]
vpcConfigs :: [VpcConfigProperty]}
  deriving stock (ServerlessCluster -> ServerlessCluster -> Bool
(ServerlessCluster -> ServerlessCluster -> Bool)
-> (ServerlessCluster -> ServerlessCluster -> Bool)
-> Eq ServerlessCluster
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ServerlessCluster -> ServerlessCluster -> Bool
== :: ServerlessCluster -> ServerlessCluster -> Bool
$c/= :: ServerlessCluster -> ServerlessCluster -> Bool
/= :: ServerlessCluster -> ServerlessCluster -> Bool
Prelude.Eq, Int -> ServerlessCluster -> ShowS
[ServerlessCluster] -> ShowS
ServerlessCluster -> String
(Int -> ServerlessCluster -> ShowS)
-> (ServerlessCluster -> String)
-> ([ServerlessCluster] -> ShowS)
-> Show ServerlessCluster
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ServerlessCluster -> ShowS
showsPrec :: Int -> ServerlessCluster -> ShowS
$cshow :: ServerlessCluster -> String
show :: ServerlessCluster -> String
$cshowList :: [ServerlessCluster] -> ShowS
showList :: [ServerlessCluster] -> ShowS
Prelude.Show)
mkServerlessCluster ::
  ClientAuthenticationProperty
  -> Value Prelude.Text -> [VpcConfigProperty] -> ServerlessCluster
mkServerlessCluster :: ClientAuthenticationProperty
-> Value Text -> [VpcConfigProperty] -> ServerlessCluster
mkServerlessCluster ClientAuthenticationProperty
clientAuthentication Value Text
clusterName [VpcConfigProperty]
vpcConfigs
  = ServerlessCluster
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       clientAuthentication :: ClientAuthenticationProperty
clientAuthentication = ClientAuthenticationProperty
clientAuthentication,
       clusterName :: Value Text
clusterName = Value Text
clusterName, vpcConfigs :: [VpcConfigProperty]
vpcConfigs = [VpcConfigProperty]
vpcConfigs,
       tags :: Maybe (Map Text (Value Text))
tags = Maybe (Map Text (Value Text))
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties ServerlessCluster where
  toResourceProperties :: ServerlessCluster -> ResourceProperties
toResourceProperties ServerlessCluster {[VpcConfigProperty]
Maybe (Map Text (Value Text))
()
Value Text
ClientAuthenticationProperty
haddock_workaround_ :: ServerlessCluster -> ()
clientAuthentication :: ServerlessCluster -> ClientAuthenticationProperty
clusterName :: ServerlessCluster -> Value Text
tags :: ServerlessCluster -> Maybe (Map Text (Value Text))
vpcConfigs :: ServerlessCluster -> [VpcConfigProperty]
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
clusterName :: Value Text
tags :: Maybe (Map Text (Value Text))
vpcConfigs :: [VpcConfigProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::MSK::ServerlessCluster",
         supportsTags :: Bool
supportsTags = Bool
Prelude.True,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"ClientAuthentication" Key -> ClientAuthenticationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ClientAuthenticationProperty
clientAuthentication,
                            Key
"ClusterName" 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
clusterName, Key
"VpcConfigs" Key -> [VpcConfigProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [VpcConfigProperty]
vpcConfigs]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes [Key -> Map Text (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
"Tags" (Map Text (Value Text) -> (Key, Value))
-> Maybe (Map Text (Value Text)) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Map Text (Value Text))
tags]))}
instance JSON.ToJSON ServerlessCluster where
  toJSON :: ServerlessCluster -> Value
toJSON ServerlessCluster {[VpcConfigProperty]
Maybe (Map Text (Value Text))
()
Value Text
ClientAuthenticationProperty
haddock_workaround_ :: ServerlessCluster -> ()
clientAuthentication :: ServerlessCluster -> ClientAuthenticationProperty
clusterName :: ServerlessCluster -> Value Text
tags :: ServerlessCluster -> Maybe (Map Text (Value Text))
vpcConfigs :: ServerlessCluster -> [VpcConfigProperty]
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
clusterName :: Value Text
tags :: Maybe (Map Text (Value Text))
vpcConfigs :: [VpcConfigProperty]
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"ClientAuthentication" Key -> ClientAuthenticationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ClientAuthenticationProperty
clientAuthentication,
               Key
"ClusterName" 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
clusterName, Key
"VpcConfigs" Key -> [VpcConfigProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [VpcConfigProperty]
vpcConfigs]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes [Key -> Map Text (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
"Tags" (Map Text (Value Text) -> (Key, Value))
-> Maybe (Map Text (Value Text)) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Map Text (Value Text))
tags])))
instance Property "ClientAuthentication" ServerlessCluster where
  type PropertyType "ClientAuthentication" ServerlessCluster = ClientAuthenticationProperty
  set :: PropertyType "ClientAuthentication" ServerlessCluster
-> ServerlessCluster -> ServerlessCluster
set PropertyType "ClientAuthentication" ServerlessCluster
newValue ServerlessCluster {[VpcConfigProperty]
Maybe (Map Text (Value Text))
()
Value Text
ClientAuthenticationProperty
haddock_workaround_ :: ServerlessCluster -> ()
clientAuthentication :: ServerlessCluster -> ClientAuthenticationProperty
clusterName :: ServerlessCluster -> Value Text
tags :: ServerlessCluster -> Maybe (Map Text (Value Text))
vpcConfigs :: ServerlessCluster -> [VpcConfigProperty]
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
clusterName :: Value Text
tags :: Maybe (Map Text (Value Text))
vpcConfigs :: [VpcConfigProperty]
..}
    = ServerlessCluster {clientAuthentication :: ClientAuthenticationProperty
clientAuthentication = PropertyType "ClientAuthentication" ServerlessCluster
ClientAuthenticationProperty
newValue, [VpcConfigProperty]
Maybe (Map Text (Value Text))
()
Value Text
haddock_workaround_ :: ()
clusterName :: Value Text
tags :: Maybe (Map Text (Value Text))
vpcConfigs :: [VpcConfigProperty]
haddock_workaround_ :: ()
clusterName :: Value Text
tags :: Maybe (Map Text (Value Text))
vpcConfigs :: [VpcConfigProperty]
..}
instance Property "ClusterName" ServerlessCluster where
  type PropertyType "ClusterName" ServerlessCluster = Value Prelude.Text
  set :: PropertyType "ClusterName" ServerlessCluster
-> ServerlessCluster -> ServerlessCluster
set PropertyType "ClusterName" ServerlessCluster
newValue ServerlessCluster {[VpcConfigProperty]
Maybe (Map Text (Value Text))
()
Value Text
ClientAuthenticationProperty
haddock_workaround_ :: ServerlessCluster -> ()
clientAuthentication :: ServerlessCluster -> ClientAuthenticationProperty
clusterName :: ServerlessCluster -> Value Text
tags :: ServerlessCluster -> Maybe (Map Text (Value Text))
vpcConfigs :: ServerlessCluster -> [VpcConfigProperty]
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
clusterName :: Value Text
tags :: Maybe (Map Text (Value Text))
vpcConfigs :: [VpcConfigProperty]
..}
    = ServerlessCluster {clusterName :: Value Text
clusterName = PropertyType "ClusterName" ServerlessCluster
Value Text
newValue, [VpcConfigProperty]
Maybe (Map Text (Value Text))
()
ClientAuthenticationProperty
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
tags :: Maybe (Map Text (Value Text))
vpcConfigs :: [VpcConfigProperty]
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
tags :: Maybe (Map Text (Value Text))
vpcConfigs :: [VpcConfigProperty]
..}
instance Property "Tags" ServerlessCluster where
  type PropertyType "Tags" ServerlessCluster = Prelude.Map Prelude.Text (Value Prelude.Text)
  set :: PropertyType "Tags" ServerlessCluster
-> ServerlessCluster -> ServerlessCluster
set PropertyType "Tags" ServerlessCluster
newValue ServerlessCluster {[VpcConfigProperty]
Maybe (Map Text (Value Text))
()
Value Text
ClientAuthenticationProperty
haddock_workaround_ :: ServerlessCluster -> ()
clientAuthentication :: ServerlessCluster -> ClientAuthenticationProperty
clusterName :: ServerlessCluster -> Value Text
tags :: ServerlessCluster -> Maybe (Map Text (Value Text))
vpcConfigs :: ServerlessCluster -> [VpcConfigProperty]
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
clusterName :: Value Text
tags :: Maybe (Map Text (Value Text))
vpcConfigs :: [VpcConfigProperty]
..}
    = ServerlessCluster {tags :: Maybe (Map Text (Value Text))
tags = Map Text (Value Text) -> Maybe (Map Text (Value Text))
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure Map Text (Value Text)
PropertyType "Tags" ServerlessCluster
newValue, [VpcConfigProperty]
()
Value Text
ClientAuthenticationProperty
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
clusterName :: Value Text
vpcConfigs :: [VpcConfigProperty]
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
clusterName :: Value Text
vpcConfigs :: [VpcConfigProperty]
..}
instance Property "VpcConfigs" ServerlessCluster where
  type PropertyType "VpcConfigs" ServerlessCluster = [VpcConfigProperty]
  set :: PropertyType "VpcConfigs" ServerlessCluster
-> ServerlessCluster -> ServerlessCluster
set PropertyType "VpcConfigs" ServerlessCluster
newValue ServerlessCluster {[VpcConfigProperty]
Maybe (Map Text (Value Text))
()
Value Text
ClientAuthenticationProperty
haddock_workaround_ :: ServerlessCluster -> ()
clientAuthentication :: ServerlessCluster -> ClientAuthenticationProperty
clusterName :: ServerlessCluster -> Value Text
tags :: ServerlessCluster -> Maybe (Map Text (Value Text))
vpcConfigs :: ServerlessCluster -> [VpcConfigProperty]
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
clusterName :: Value Text
tags :: Maybe (Map Text (Value Text))
vpcConfigs :: [VpcConfigProperty]
..}
    = ServerlessCluster {vpcConfigs :: [VpcConfigProperty]
vpcConfigs = [VpcConfigProperty]
PropertyType "VpcConfigs" ServerlessCluster
newValue, Maybe (Map Text (Value Text))
()
Value Text
ClientAuthenticationProperty
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
clusterName :: Value Text
tags :: Maybe (Map Text (Value Text))
haddock_workaround_ :: ()
clientAuthentication :: ClientAuthenticationProperty
clusterName :: Value Text
tags :: Maybe (Map Text (Value Text))
..}