module Stratosphere.Route53.RecordSetGroup.RecordSetProperty ( module Exports, RecordSetProperty(..), mkRecordSetProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.Route53.RecordSetGroup.AliasTargetProperty as Exports import {-# SOURCE #-} Stratosphere.Route53.RecordSetGroup.CidrRoutingConfigProperty as Exports import {-# SOURCE #-} Stratosphere.Route53.RecordSetGroup.GeoLocationProperty as Exports import {-# SOURCE #-} Stratosphere.Route53.RecordSetGroup.GeoProximityLocationProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data RecordSetProperty = -- | See: RecordSetProperty {haddock_workaround_ :: (), -- | See: aliasTarget :: (Prelude.Maybe AliasTargetProperty), -- | See: cidrRoutingConfig :: (Prelude.Maybe CidrRoutingConfigProperty), -- | See: failover :: (Prelude.Maybe (Value Prelude.Text)), -- | See: geoLocation :: (Prelude.Maybe GeoLocationProperty), -- | See: geoProximityLocation :: (Prelude.Maybe GeoProximityLocationProperty), -- | See: healthCheckId :: (Prelude.Maybe (Value Prelude.Text)), -- | See: hostedZoneId :: (Prelude.Maybe (Value Prelude.Text)), -- | See: hostedZoneName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: multiValueAnswer :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: name :: (Value Prelude.Text), -- | See: region :: (Prelude.Maybe (Value Prelude.Text)), -- | See: resourceRecords :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: setIdentifier :: (Prelude.Maybe (Value Prelude.Text)), -- | See: tTL :: (Prelude.Maybe (Value Prelude.Text)), -- | See: type' :: (Value Prelude.Text), -- | See: weight :: (Prelude.Maybe (Value Prelude.Integer))} deriving stock (Prelude.Eq, Prelude.Show) mkRecordSetProperty :: Value Prelude.Text -> Value Prelude.Text -> RecordSetProperty mkRecordSetProperty name type' = RecordSetProperty {haddock_workaround_ = (), name = name, type' = type', aliasTarget = Prelude.Nothing, cidrRoutingConfig = Prelude.Nothing, failover = Prelude.Nothing, geoLocation = Prelude.Nothing, geoProximityLocation = Prelude.Nothing, healthCheckId = Prelude.Nothing, hostedZoneId = Prelude.Nothing, hostedZoneName = Prelude.Nothing, multiValueAnswer = Prelude.Nothing, region = Prelude.Nothing, resourceRecords = Prelude.Nothing, setIdentifier = Prelude.Nothing, tTL = Prelude.Nothing, weight = Prelude.Nothing} instance ToResourceProperties RecordSetProperty where toResourceProperties RecordSetProperty {..} = ResourceProperties {awsType = "AWS::Route53::RecordSetGroup.RecordSet", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["Name" JSON..= name, "Type" JSON..= type'] (Prelude.catMaybes [(JSON..=) "AliasTarget" Prelude.<$> aliasTarget, (JSON..=) "CidrRoutingConfig" Prelude.<$> cidrRoutingConfig, (JSON..=) "Failover" Prelude.<$> failover, (JSON..=) "GeoLocation" Prelude.<$> geoLocation, (JSON..=) "GeoProximityLocation" Prelude.<$> geoProximityLocation, (JSON..=) "HealthCheckId" Prelude.<$> healthCheckId, (JSON..=) "HostedZoneId" Prelude.<$> hostedZoneId, (JSON..=) "HostedZoneName" Prelude.<$> hostedZoneName, (JSON..=) "MultiValueAnswer" Prelude.<$> multiValueAnswer, (JSON..=) "Region" Prelude.<$> region, (JSON..=) "ResourceRecords" Prelude.<$> resourceRecords, (JSON..=) "SetIdentifier" Prelude.<$> setIdentifier, (JSON..=) "TTL" Prelude.<$> tTL, (JSON..=) "Weight" Prelude.<$> weight]))} instance JSON.ToJSON RecordSetProperty where toJSON RecordSetProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["Name" JSON..= name, "Type" JSON..= type'] (Prelude.catMaybes [(JSON..=) "AliasTarget" Prelude.<$> aliasTarget, (JSON..=) "CidrRoutingConfig" Prelude.<$> cidrRoutingConfig, (JSON..=) "Failover" Prelude.<$> failover, (JSON..=) "GeoLocation" Prelude.<$> geoLocation, (JSON..=) "GeoProximityLocation" Prelude.<$> geoProximityLocation, (JSON..=) "HealthCheckId" Prelude.<$> healthCheckId, (JSON..=) "HostedZoneId" Prelude.<$> hostedZoneId, (JSON..=) "HostedZoneName" Prelude.<$> hostedZoneName, (JSON..=) "MultiValueAnswer" Prelude.<$> multiValueAnswer, (JSON..=) "Region" Prelude.<$> region, (JSON..=) "ResourceRecords" Prelude.<$> resourceRecords, (JSON..=) "SetIdentifier" Prelude.<$> setIdentifier, (JSON..=) "TTL" Prelude.<$> tTL, (JSON..=) "Weight" Prelude.<$> weight]))) instance Property "AliasTarget" RecordSetProperty where type PropertyType "AliasTarget" RecordSetProperty = AliasTargetProperty set newValue RecordSetProperty {..} = RecordSetProperty {aliasTarget = Prelude.pure newValue, ..} instance Property "CidrRoutingConfig" RecordSetProperty where type PropertyType "CidrRoutingConfig" RecordSetProperty = CidrRoutingConfigProperty set newValue RecordSetProperty {..} = RecordSetProperty {cidrRoutingConfig = Prelude.pure newValue, ..} instance Property "Failover" RecordSetProperty where type PropertyType "Failover" RecordSetProperty = Value Prelude.Text set newValue RecordSetProperty {..} = RecordSetProperty {failover = Prelude.pure newValue, ..} instance Property "GeoLocation" RecordSetProperty where type PropertyType "GeoLocation" RecordSetProperty = GeoLocationProperty set newValue RecordSetProperty {..} = RecordSetProperty {geoLocation = Prelude.pure newValue, ..} instance Property "GeoProximityLocation" RecordSetProperty where type PropertyType "GeoProximityLocation" RecordSetProperty = GeoProximityLocationProperty set newValue RecordSetProperty {..} = RecordSetProperty {geoProximityLocation = Prelude.pure newValue, ..} instance Property "HealthCheckId" RecordSetProperty where type PropertyType "HealthCheckId" RecordSetProperty = Value Prelude.Text set newValue RecordSetProperty {..} = RecordSetProperty {healthCheckId = Prelude.pure newValue, ..} instance Property "HostedZoneId" RecordSetProperty where type PropertyType "HostedZoneId" RecordSetProperty = Value Prelude.Text set newValue RecordSetProperty {..} = RecordSetProperty {hostedZoneId = Prelude.pure newValue, ..} instance Property "HostedZoneName" RecordSetProperty where type PropertyType "HostedZoneName" RecordSetProperty = Value Prelude.Text set newValue RecordSetProperty {..} = RecordSetProperty {hostedZoneName = Prelude.pure newValue, ..} instance Property "MultiValueAnswer" RecordSetProperty where type PropertyType "MultiValueAnswer" RecordSetProperty = Value Prelude.Bool set newValue RecordSetProperty {..} = RecordSetProperty {multiValueAnswer = Prelude.pure newValue, ..} instance Property "Name" RecordSetProperty where type PropertyType "Name" RecordSetProperty = Value Prelude.Text set newValue RecordSetProperty {..} = RecordSetProperty {name = newValue, ..} instance Property "Region" RecordSetProperty where type PropertyType "Region" RecordSetProperty = Value Prelude.Text set newValue RecordSetProperty {..} = RecordSetProperty {region = Prelude.pure newValue, ..} instance Property "ResourceRecords" RecordSetProperty where type PropertyType "ResourceRecords" RecordSetProperty = ValueList Prelude.Text set newValue RecordSetProperty {..} = RecordSetProperty {resourceRecords = Prelude.pure newValue, ..} instance Property "SetIdentifier" RecordSetProperty where type PropertyType "SetIdentifier" RecordSetProperty = Value Prelude.Text set newValue RecordSetProperty {..} = RecordSetProperty {setIdentifier = Prelude.pure newValue, ..} instance Property "TTL" RecordSetProperty where type PropertyType "TTL" RecordSetProperty = Value Prelude.Text set newValue RecordSetProperty {..} = RecordSetProperty {tTL = Prelude.pure newValue, ..} instance Property "Type" RecordSetProperty where type PropertyType "Type" RecordSetProperty = Value Prelude.Text set newValue RecordSetProperty {..} = RecordSetProperty {type' = newValue, ..} instance Property "Weight" RecordSetProperty where type PropertyType "Weight" RecordSetProperty = Value Prelude.Integer set newValue RecordSetProperty {..} = RecordSetProperty {weight = Prelude.pure newValue, ..}