module Stratosphere.DMS.ReplicationConfig.ComputeConfigProperty ( ComputeConfigProperty(..), mkComputeConfigProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import Stratosphere.ResourceProperties import Stratosphere.Value data ComputeConfigProperty = -- | See: ComputeConfigProperty {haddock_workaround_ :: (), -- | See: availabilityZone :: (Prelude.Maybe (Value Prelude.Text)), -- | See: dnsNameServers :: (Prelude.Maybe (Value Prelude.Text)), -- | See: kmsKeyId :: (Prelude.Maybe (Value Prelude.Text)), -- | See: maxCapacityUnits :: (Value Prelude.Integer), -- | See: minCapacityUnits :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: multiAZ :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: preferredMaintenanceWindow :: (Prelude.Maybe (Value Prelude.Text)), -- | See: replicationSubnetGroupId :: (Prelude.Maybe (Value Prelude.Text)), -- | See: vpcSecurityGroupIds :: (Prelude.Maybe (ValueList Prelude.Text))} deriving stock (Prelude.Eq, Prelude.Show) mkComputeConfigProperty :: Value Prelude.Integer -> ComputeConfigProperty mkComputeConfigProperty maxCapacityUnits = ComputeConfigProperty {haddock_workaround_ = (), maxCapacityUnits = maxCapacityUnits, availabilityZone = Prelude.Nothing, dnsNameServers = Prelude.Nothing, kmsKeyId = Prelude.Nothing, minCapacityUnits = Prelude.Nothing, multiAZ = Prelude.Nothing, preferredMaintenanceWindow = Prelude.Nothing, replicationSubnetGroupId = Prelude.Nothing, vpcSecurityGroupIds = Prelude.Nothing} instance ToResourceProperties ComputeConfigProperty where toResourceProperties ComputeConfigProperty {..} = ResourceProperties {awsType = "AWS::DMS::ReplicationConfig.ComputeConfig", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["MaxCapacityUnits" JSON..= maxCapacityUnits] (Prelude.catMaybes [(JSON..=) "AvailabilityZone" Prelude.<$> availabilityZone, (JSON..=) "DnsNameServers" Prelude.<$> dnsNameServers, (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId, (JSON..=) "MinCapacityUnits" Prelude.<$> minCapacityUnits, (JSON..=) "MultiAZ" Prelude.<$> multiAZ, (JSON..=) "PreferredMaintenanceWindow" Prelude.<$> preferredMaintenanceWindow, (JSON..=) "ReplicationSubnetGroupId" Prelude.<$> replicationSubnetGroupId, (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds]))} instance JSON.ToJSON ComputeConfigProperty where toJSON ComputeConfigProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["MaxCapacityUnits" JSON..= maxCapacityUnits] (Prelude.catMaybes [(JSON..=) "AvailabilityZone" Prelude.<$> availabilityZone, (JSON..=) "DnsNameServers" Prelude.<$> dnsNameServers, (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId, (JSON..=) "MinCapacityUnits" Prelude.<$> minCapacityUnits, (JSON..=) "MultiAZ" Prelude.<$> multiAZ, (JSON..=) "PreferredMaintenanceWindow" Prelude.<$> preferredMaintenanceWindow, (JSON..=) "ReplicationSubnetGroupId" Prelude.<$> replicationSubnetGroupId, (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds]))) instance Property "AvailabilityZone" ComputeConfigProperty where type PropertyType "AvailabilityZone" ComputeConfigProperty = Value Prelude.Text set newValue ComputeConfigProperty {..} = ComputeConfigProperty {availabilityZone = Prelude.pure newValue, ..} instance Property "DnsNameServers" ComputeConfigProperty where type PropertyType "DnsNameServers" ComputeConfigProperty = Value Prelude.Text set newValue ComputeConfigProperty {..} = ComputeConfigProperty {dnsNameServers = Prelude.pure newValue, ..} instance Property "KmsKeyId" ComputeConfigProperty where type PropertyType "KmsKeyId" ComputeConfigProperty = Value Prelude.Text set newValue ComputeConfigProperty {..} = ComputeConfigProperty {kmsKeyId = Prelude.pure newValue, ..} instance Property "MaxCapacityUnits" ComputeConfigProperty where type PropertyType "MaxCapacityUnits" ComputeConfigProperty = Value Prelude.Integer set newValue ComputeConfigProperty {..} = ComputeConfigProperty {maxCapacityUnits = newValue, ..} instance Property "MinCapacityUnits" ComputeConfigProperty where type PropertyType "MinCapacityUnits" ComputeConfigProperty = Value Prelude.Integer set newValue ComputeConfigProperty {..} = ComputeConfigProperty {minCapacityUnits = Prelude.pure newValue, ..} instance Property "MultiAZ" ComputeConfigProperty where type PropertyType "MultiAZ" ComputeConfigProperty = Value Prelude.Bool set newValue ComputeConfigProperty {..} = ComputeConfigProperty {multiAZ = Prelude.pure newValue, ..} instance Property "PreferredMaintenanceWindow" ComputeConfigProperty where type PropertyType "PreferredMaintenanceWindow" ComputeConfigProperty = Value Prelude.Text set newValue ComputeConfigProperty {..} = ComputeConfigProperty {preferredMaintenanceWindow = Prelude.pure newValue, ..} instance Property "ReplicationSubnetGroupId" ComputeConfigProperty where type PropertyType "ReplicationSubnetGroupId" ComputeConfigProperty = Value Prelude.Text set newValue ComputeConfigProperty {..} = ComputeConfigProperty {replicationSubnetGroupId = Prelude.pure newValue, ..} instance Property "VpcSecurityGroupIds" ComputeConfigProperty where type PropertyType "VpcSecurityGroupIds" ComputeConfigProperty = ValueList Prelude.Text set newValue ComputeConfigProperty {..} = ComputeConfigProperty {vpcSecurityGroupIds = Prelude.pure newValue, ..}