module Stratosphere.DocDB.DBCluster ( module Exports, DBCluster(..), mkDBCluster ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.DocDB.DBCluster.ServerlessV2ScalingConfigurationProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data DBCluster = -- | See: DBCluster {haddock_workaround_ :: (), -- | See: availabilityZones :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: backupRetentionPeriod :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: copyTagsToSnapshot :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: dBClusterIdentifier :: (Prelude.Maybe (Value Prelude.Text)), -- | See: dBClusterParameterGroupName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: dBSubnetGroupName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: deletionProtection :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: enableCloudwatchLogsExports :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: engineVersion :: (Prelude.Maybe (Value Prelude.Text)), -- | See: globalClusterIdentifier :: (Prelude.Maybe (Value Prelude.Text)), -- | See: kmsKeyId :: (Prelude.Maybe (Value Prelude.Text)), -- | See: manageMasterUserPassword :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: masterUserPassword :: (Prelude.Maybe (Value Prelude.Text)), -- | See: masterUserSecretKmsKeyId :: (Prelude.Maybe (Value Prelude.Text)), -- | See: masterUsername :: (Prelude.Maybe (Value Prelude.Text)), -- | See: networkType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: port :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: preferredBackupWindow :: (Prelude.Maybe (Value Prelude.Text)), -- | See: preferredMaintenanceWindow :: (Prelude.Maybe (Value Prelude.Text)), -- | See: restoreToTime :: (Prelude.Maybe (Value Prelude.Text)), -- | See: restoreType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: rotateMasterUserPassword :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: serverlessV2ScalingConfiguration :: (Prelude.Maybe ServerlessV2ScalingConfigurationProperty), -- | See: snapshotIdentifier :: (Prelude.Maybe (Value Prelude.Text)), -- | See: sourceDBClusterIdentifier :: (Prelude.Maybe (Value Prelude.Text)), -- | See: storageEncrypted :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: storageType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: tags :: (Prelude.Maybe [Tag]), -- | See: useLatestRestorableTime :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: vpcSecurityGroupIds :: (Prelude.Maybe (ValueList Prelude.Text))} deriving stock (Prelude.Eq, Prelude.Show) mkDBCluster :: DBCluster mkDBCluster = DBCluster {haddock_workaround_ = (), availabilityZones = Prelude.Nothing, backupRetentionPeriod = Prelude.Nothing, copyTagsToSnapshot = Prelude.Nothing, dBClusterIdentifier = Prelude.Nothing, dBClusterParameterGroupName = Prelude.Nothing, dBSubnetGroupName = Prelude.Nothing, deletionProtection = Prelude.Nothing, enableCloudwatchLogsExports = Prelude.Nothing, engineVersion = Prelude.Nothing, globalClusterIdentifier = Prelude.Nothing, kmsKeyId = Prelude.Nothing, manageMasterUserPassword = Prelude.Nothing, masterUserPassword = Prelude.Nothing, masterUserSecretKmsKeyId = Prelude.Nothing, masterUsername = Prelude.Nothing, networkType = Prelude.Nothing, port = Prelude.Nothing, preferredBackupWindow = Prelude.Nothing, preferredMaintenanceWindow = Prelude.Nothing, restoreToTime = Prelude.Nothing, restoreType = Prelude.Nothing, rotateMasterUserPassword = Prelude.Nothing, serverlessV2ScalingConfiguration = Prelude.Nothing, snapshotIdentifier = Prelude.Nothing, sourceDBClusterIdentifier = Prelude.Nothing, storageEncrypted = Prelude.Nothing, storageType = Prelude.Nothing, tags = Prelude.Nothing, useLatestRestorableTime = Prelude.Nothing, vpcSecurityGroupIds = Prelude.Nothing} instance ToResourceProperties DBCluster where toResourceProperties DBCluster {..} = ResourceProperties {awsType = "AWS::DocDB::DBCluster", supportsTags = Prelude.True, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "AvailabilityZones" Prelude.<$> availabilityZones, (JSON..=) "BackupRetentionPeriod" Prelude.<$> backupRetentionPeriod, (JSON..=) "CopyTagsToSnapshot" Prelude.<$> copyTagsToSnapshot, (JSON..=) "DBClusterIdentifier" Prelude.<$> dBClusterIdentifier, (JSON..=) "DBClusterParameterGroupName" Prelude.<$> dBClusterParameterGroupName, (JSON..=) "DBSubnetGroupName" Prelude.<$> dBSubnetGroupName, (JSON..=) "DeletionProtection" Prelude.<$> deletionProtection, (JSON..=) "EnableCloudwatchLogsExports" Prelude.<$> enableCloudwatchLogsExports, (JSON..=) "EngineVersion" Prelude.<$> engineVersion, (JSON..=) "GlobalClusterIdentifier" Prelude.<$> globalClusterIdentifier, (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId, (JSON..=) "ManageMasterUserPassword" Prelude.<$> manageMasterUserPassword, (JSON..=) "MasterUserPassword" Prelude.<$> masterUserPassword, (JSON..=) "MasterUserSecretKmsKeyId" Prelude.<$> masterUserSecretKmsKeyId, (JSON..=) "MasterUsername" Prelude.<$> masterUsername, (JSON..=) "NetworkType" Prelude.<$> networkType, (JSON..=) "Port" Prelude.<$> port, (JSON..=) "PreferredBackupWindow" Prelude.<$> preferredBackupWindow, (JSON..=) "PreferredMaintenanceWindow" Prelude.<$> preferredMaintenanceWindow, (JSON..=) "RestoreToTime" Prelude.<$> restoreToTime, (JSON..=) "RestoreType" Prelude.<$> restoreType, (JSON..=) "RotateMasterUserPassword" Prelude.<$> rotateMasterUserPassword, (JSON..=) "ServerlessV2ScalingConfiguration" Prelude.<$> serverlessV2ScalingConfiguration, (JSON..=) "SnapshotIdentifier" Prelude.<$> snapshotIdentifier, (JSON..=) "SourceDBClusterIdentifier" Prelude.<$> sourceDBClusterIdentifier, (JSON..=) "StorageEncrypted" Prelude.<$> storageEncrypted, (JSON..=) "StorageType" Prelude.<$> storageType, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "UseLatestRestorableTime" Prelude.<$> useLatestRestorableTime, (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds])} instance JSON.ToJSON DBCluster where toJSON DBCluster {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "AvailabilityZones" Prelude.<$> availabilityZones, (JSON..=) "BackupRetentionPeriod" Prelude.<$> backupRetentionPeriod, (JSON..=) "CopyTagsToSnapshot" Prelude.<$> copyTagsToSnapshot, (JSON..=) "DBClusterIdentifier" Prelude.<$> dBClusterIdentifier, (JSON..=) "DBClusterParameterGroupName" Prelude.<$> dBClusterParameterGroupName, (JSON..=) "DBSubnetGroupName" Prelude.<$> dBSubnetGroupName, (JSON..=) "DeletionProtection" Prelude.<$> deletionProtection, (JSON..=) "EnableCloudwatchLogsExports" Prelude.<$> enableCloudwatchLogsExports, (JSON..=) "EngineVersion" Prelude.<$> engineVersion, (JSON..=) "GlobalClusterIdentifier" Prelude.<$> globalClusterIdentifier, (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId, (JSON..=) "ManageMasterUserPassword" Prelude.<$> manageMasterUserPassword, (JSON..=) "MasterUserPassword" Prelude.<$> masterUserPassword, (JSON..=) "MasterUserSecretKmsKeyId" Prelude.<$> masterUserSecretKmsKeyId, (JSON..=) "MasterUsername" Prelude.<$> masterUsername, (JSON..=) "NetworkType" Prelude.<$> networkType, (JSON..=) "Port" Prelude.<$> port, (JSON..=) "PreferredBackupWindow" Prelude.<$> preferredBackupWindow, (JSON..=) "PreferredMaintenanceWindow" Prelude.<$> preferredMaintenanceWindow, (JSON..=) "RestoreToTime" Prelude.<$> restoreToTime, (JSON..=) "RestoreType" Prelude.<$> restoreType, (JSON..=) "RotateMasterUserPassword" Prelude.<$> rotateMasterUserPassword, (JSON..=) "ServerlessV2ScalingConfiguration" Prelude.<$> serverlessV2ScalingConfiguration, (JSON..=) "SnapshotIdentifier" Prelude.<$> snapshotIdentifier, (JSON..=) "SourceDBClusterIdentifier" Prelude.<$> sourceDBClusterIdentifier, (JSON..=) "StorageEncrypted" Prelude.<$> storageEncrypted, (JSON..=) "StorageType" Prelude.<$> storageType, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "UseLatestRestorableTime" Prelude.<$> useLatestRestorableTime, (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds])) instance Property "AvailabilityZones" DBCluster where type PropertyType "AvailabilityZones" DBCluster = ValueList Prelude.Text set newValue DBCluster {..} = DBCluster {availabilityZones = Prelude.pure newValue, ..} instance Property "BackupRetentionPeriod" DBCluster where type PropertyType "BackupRetentionPeriod" DBCluster = Value Prelude.Integer set newValue DBCluster {..} = DBCluster {backupRetentionPeriod = Prelude.pure newValue, ..} instance Property "CopyTagsToSnapshot" DBCluster where type PropertyType "CopyTagsToSnapshot" DBCluster = Value Prelude.Bool set newValue DBCluster {..} = DBCluster {copyTagsToSnapshot = Prelude.pure newValue, ..} instance Property "DBClusterIdentifier" DBCluster where type PropertyType "DBClusterIdentifier" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {dBClusterIdentifier = Prelude.pure newValue, ..} instance Property "DBClusterParameterGroupName" DBCluster where type PropertyType "DBClusterParameterGroupName" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {dBClusterParameterGroupName = Prelude.pure newValue, ..} instance Property "DBSubnetGroupName" DBCluster where type PropertyType "DBSubnetGroupName" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {dBSubnetGroupName = Prelude.pure newValue, ..} instance Property "DeletionProtection" DBCluster where type PropertyType "DeletionProtection" DBCluster = Value Prelude.Bool set newValue DBCluster {..} = DBCluster {deletionProtection = Prelude.pure newValue, ..} instance Property "EnableCloudwatchLogsExports" DBCluster where type PropertyType "EnableCloudwatchLogsExports" DBCluster = ValueList Prelude.Text set newValue DBCluster {..} = DBCluster {enableCloudwatchLogsExports = Prelude.pure newValue, ..} instance Property "EngineVersion" DBCluster where type PropertyType "EngineVersion" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {engineVersion = Prelude.pure newValue, ..} instance Property "GlobalClusterIdentifier" DBCluster where type PropertyType "GlobalClusterIdentifier" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {globalClusterIdentifier = Prelude.pure newValue, ..} instance Property "KmsKeyId" DBCluster where type PropertyType "KmsKeyId" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {kmsKeyId = Prelude.pure newValue, ..} instance Property "ManageMasterUserPassword" DBCluster where type PropertyType "ManageMasterUserPassword" DBCluster = Value Prelude.Bool set newValue DBCluster {..} = DBCluster {manageMasterUserPassword = Prelude.pure newValue, ..} instance Property "MasterUserPassword" DBCluster where type PropertyType "MasterUserPassword" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {masterUserPassword = Prelude.pure newValue, ..} instance Property "MasterUserSecretKmsKeyId" DBCluster where type PropertyType "MasterUserSecretKmsKeyId" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {masterUserSecretKmsKeyId = Prelude.pure newValue, ..} instance Property "MasterUsername" DBCluster where type PropertyType "MasterUsername" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {masterUsername = Prelude.pure newValue, ..} instance Property "NetworkType" DBCluster where type PropertyType "NetworkType" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {networkType = Prelude.pure newValue, ..} instance Property "Port" DBCluster where type PropertyType "Port" DBCluster = Value Prelude.Integer set newValue DBCluster {..} = DBCluster {port = Prelude.pure newValue, ..} instance Property "PreferredBackupWindow" DBCluster where type PropertyType "PreferredBackupWindow" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {preferredBackupWindow = Prelude.pure newValue, ..} instance Property "PreferredMaintenanceWindow" DBCluster where type PropertyType "PreferredMaintenanceWindow" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {preferredMaintenanceWindow = Prelude.pure newValue, ..} instance Property "RestoreToTime" DBCluster where type PropertyType "RestoreToTime" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {restoreToTime = Prelude.pure newValue, ..} instance Property "RestoreType" DBCluster where type PropertyType "RestoreType" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {restoreType = Prelude.pure newValue, ..} instance Property "RotateMasterUserPassword" DBCluster where type PropertyType "RotateMasterUserPassword" DBCluster = Value Prelude.Bool set newValue DBCluster {..} = DBCluster {rotateMasterUserPassword = Prelude.pure newValue, ..} instance Property "ServerlessV2ScalingConfiguration" DBCluster where type PropertyType "ServerlessV2ScalingConfiguration" DBCluster = ServerlessV2ScalingConfigurationProperty set newValue DBCluster {..} = DBCluster {serverlessV2ScalingConfiguration = Prelude.pure newValue, ..} instance Property "SnapshotIdentifier" DBCluster where type PropertyType "SnapshotIdentifier" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {snapshotIdentifier = Prelude.pure newValue, ..} instance Property "SourceDBClusterIdentifier" DBCluster where type PropertyType "SourceDBClusterIdentifier" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {sourceDBClusterIdentifier = Prelude.pure newValue, ..} instance Property "StorageEncrypted" DBCluster where type PropertyType "StorageEncrypted" DBCluster = Value Prelude.Bool set newValue DBCluster {..} = DBCluster {storageEncrypted = Prelude.pure newValue, ..} instance Property "StorageType" DBCluster where type PropertyType "StorageType" DBCluster = Value Prelude.Text set newValue DBCluster {..} = DBCluster {storageType = Prelude.pure newValue, ..} instance Property "Tags" DBCluster where type PropertyType "Tags" DBCluster = [Tag] set newValue DBCluster {..} = DBCluster {tags = Prelude.pure newValue, ..} instance Property "UseLatestRestorableTime" DBCluster where type PropertyType "UseLatestRestorableTime" DBCluster = Value Prelude.Bool set newValue DBCluster {..} = DBCluster {useLatestRestorableTime = Prelude.pure newValue, ..} instance Property "VpcSecurityGroupIds" DBCluster where type PropertyType "VpcSecurityGroupIds" DBCluster = ValueList Prelude.Text set newValue DBCluster {..} = DBCluster {vpcSecurityGroupIds = Prelude.pure newValue, ..}