{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.Route53.Types.AliasTarget -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.Route53.Types.AliasTarget where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import qualified Amazonka.Prelude as Prelude import Amazonka.Route53.Internal -- | /Alias resource record sets only:/ Information about the Amazon Web -- Services resource, such as a CloudFront distribution or an Amazon S3 -- bucket, that you want to route traffic to. -- -- When creating resource record sets for a private hosted zone, note the -- following: -- -- - For information about creating failover resource record sets in a -- private hosted zone, see -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html Configuring Failover in a Private Hosted Zone>. -- -- /See:/ 'newAliasTarget' smart constructor. data AliasTarget = AliasTarget' { -- | /Alias resource records sets only/: The value used depends on where you -- want to route traffic: -- -- [Amazon API Gateway custom regional APIs and edge-optimized APIs] -- Specify the hosted zone ID for your API. You can get the applicable -- value using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html get-domain-names>: -- -- - For regional APIs, specify the value of @regionalHostedZoneId@. -- -- - For edge-optimized APIs, specify the value of -- @distributionHostedZoneId@. -- -- [Amazon Virtual Private Cloud interface VPC endpoint] -- Specify the hosted zone ID for your interface endpoint. You can get -- the value of @HostedZoneId@ using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html describe-vpc-endpoints>. -- -- [CloudFront distribution] -- Specify @Z2FDTNDATAQYW2@. -- -- Alias resource record sets for CloudFront can\'t be created in a -- private zone. -- -- [Elastic Beanstalk environment] -- Specify the hosted zone ID for the region that you created the -- environment in. The environment must have a regionalized subdomain. -- For a list of regions and the corresponding hosted zone IDs, see -- <https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html Elastic Beanstalk endpoints and quotas> -- in the the /Amazon Web Services General Reference/. -- -- [ELB load balancer] -- Specify the value of the hosted zone ID for the load balancer. Use -- the following methods to get the hosted zone ID: -- -- - <https://docs.aws.amazon.com/general/latest/gr/elb.html Elastic Load Balancing endpoints and quotas> -- topic in the /Amazon Web Services General Reference/: Use the -- value that corresponds with the region that you created your -- load balancer in. Note that there are separate columns for -- Application and Classic Load Balancers and for Network Load -- Balancers. -- -- - __Amazon Web Services Management Console__: Go to the Amazon EC2 -- page, choose __Load Balancers__ in the navigation pane, select -- the load balancer, and get the value of the __Hosted zone__ -- field on the __Description__ tab. -- -- - __Elastic Load Balancing API__: Use @DescribeLoadBalancers@ to -- get the applicable value. For more information, see the -- applicable guide: -- -- - Classic Load Balancers: Use -- <https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- to get the value of @CanonicalHostedZoneId@. -- -- - __CLI__: Use @describe-load-balancers@ to get the applicable -- value. For more information, see the applicable guide: -- -- - Classic Load Balancers: Use -- <http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html describe-load-balancers> -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- <http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html describe-load-balancers> -- to get the value of @CanonicalHostedZoneId@. -- -- [Global Accelerator accelerator] -- Specify @Z2BJ6XQ5FK7U4H@. -- -- [An Amazon S3 bucket configured as a static website] -- Specify the hosted zone ID for the region that you created the -- bucket in. For more information about valid values, see the table -- <https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints Amazon S3 Website Endpoints> -- in the /Amazon Web Services General Reference/. -- -- [Another Route 53 resource record set in your hosted zone] -- Specify the hosted zone ID of your hosted zone. (An alias resource -- record set can\'t reference a resource record set in a different -- hosted zone.) AliasTarget -> ResourceId hostedZoneId :: ResourceId, -- | /Alias resource record sets only:/ The value that you specify depends on -- where you want to route queries: -- -- [Amazon API Gateway custom regional APIs and edge-optimized APIs] -- Specify the applicable domain name for your API. You can get the -- applicable value using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html get-domain-names>: -- -- - For regional APIs, specify the value of @regionalDomainName@. -- -- - For edge-optimized APIs, specify the value of -- @distributionDomainName@. This is the name of the associated -- CloudFront distribution, such as @da1b2c3d4e5.cloudfront.net@. -- -- The name of the record that you\'re creating must match a custom -- domain name for your API, such as @api.example.com@. -- -- [Amazon Virtual Private Cloud interface VPC endpoint] -- Enter the API endpoint for the interface endpoint, such as -- @vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com@. -- For edge-optimized APIs, this is the domain name for the -- corresponding CloudFront distribution. You can get the value of -- @DnsName@ using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html describe-vpc-endpoints>. -- -- [CloudFront distribution] -- Specify the domain name that CloudFront assigned when you created -- your distribution. -- -- Your CloudFront distribution must include an alternate domain name -- that matches the name of the resource record set. For example, if -- the name of the resource record set is /acme.example.com/, your -- CloudFront distribution must include /acme.example.com/ as one of -- the alternate domain names. For more information, see -- <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html Using Alternate Domain Names (CNAMEs)> -- in the /Amazon CloudFront Developer Guide/. -- -- You can\'t create a resource record set in a private hosted zone to -- route traffic to a CloudFront distribution. -- -- For failover alias records, you can\'t specify a CloudFront -- distribution for both the primary and secondary records. A -- distribution must include an alternate domain name that matches the -- name of the record. However, the primary and secondary records have -- the same name, and you can\'t include the same alternate domain name -- in more than one distribution. -- -- [Elastic Beanstalk environment] -- If the domain name for your Elastic Beanstalk environment includes -- the region that you deployed the environment in, you can create an -- alias record that routes traffic to the environment. For example, -- the domain name -- @my-environment.@/@us-west-2@/@.elasticbeanstalk.com@ is a -- regionalized domain name. -- -- For environments that were created before early 2016, the domain -- name doesn\'t include the region. To route traffic to these -- environments, you must create a CNAME record instead of an alias -- record. Note that you can\'t create a CNAME record for the root -- domain name. For example, if your domain name is example.com, you -- can create a record that routes traffic for acme.example.com to your -- Elastic Beanstalk environment, but you can\'t create a record that -- routes traffic for example.com to your Elastic Beanstalk -- environment. -- -- For Elastic Beanstalk environments that have regionalized -- subdomains, specify the @CNAME@ attribute for the environment. You -- can use the following methods to get the value of the CNAME -- attribute: -- -- - /Amazon Web Services Management Console/: For information about -- how to get the value by using the console, see -- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html Using Custom Domains with Elastic Beanstalk> -- in the /Elastic Beanstalk Developer Guide/. -- -- - /Elastic Beanstalk API/: Use the @DescribeEnvironments@ action -- to get the value of the @CNAME@ attribute. For more information, -- see -- <https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html DescribeEnvironments> -- in the /Elastic Beanstalk API Reference/. -- -- - /CLI/: Use the @describe-environments@ command to get the value -- of the @CNAME@ attribute. For more information, see -- <https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html describe-environments> -- in the /CLI Command Reference/. -- -- [ELB load balancer] -- Specify the DNS name that is associated with the load balancer. Get -- the DNS name by using the Amazon Web Services Management Console, -- the ELB API, or the CLI. -- -- - __Amazon Web Services Management Console__: Go to the EC2 page, -- choose __Load Balancers__ in the navigation pane, choose the -- load balancer, choose the __Description__ tab, and get the value -- of the __DNS name__ field. -- -- If you\'re routing traffic to a Classic Load Balancer, get the -- value that begins with __dualstack__. If you\'re routing traffic -- to another type of load balancer, get the value that applies to -- the record type, A or AAAA. -- -- - __Elastic Load Balancing API__: Use @DescribeLoadBalancers@ to -- get the value of @DNSName@. For more information, see the -- applicable guide: -- -- - Classic Load Balancers: -- <https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- -- - Application and Network Load Balancers: -- <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- -- - __CLI__: Use @describe-load-balancers@ to get the value of -- @DNSName@. For more information, see the applicable guide: -- -- - Classic Load Balancers: -- <http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html describe-load-balancers> -- -- - Application and Network Load Balancers: -- <http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html describe-load-balancers> -- -- [Global Accelerator accelerator] -- Specify the DNS name for your accelerator: -- -- - __Global Accelerator API:__ To get the DNS name, use -- <https://docs.aws.amazon.com/global-accelerator/latest/api/API_DescribeAccelerator.html DescribeAccelerator>. -- -- - __CLI:__ To get the DNS name, use -- <https://docs.aws.amazon.com/cli/latest/reference/globalaccelerator/describe-accelerator.html describe-accelerator>. -- -- [Amazon S3 bucket that is configured as a static website] -- Specify the domain name of the Amazon S3 website endpoint that you -- created the bucket in, for example, -- @s3-website.us-east-2.amazonaws.com@. For more information about -- valid values, see the table -- <https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints Amazon S3 Website Endpoints> -- in the /Amazon Web Services General Reference/. For more information -- about using S3 buckets for websites, see -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html Getting Started with Amazon Route 53> -- in the /Amazon Route 53 Developer Guide./ -- -- [Another Route 53 resource record set] -- Specify the value of the @Name@ element for a resource record set in -- the current hosted zone. -- -- If you\'re creating an alias record that has the same name as the -- hosted zone (known as the zone apex), you can\'t specify the domain -- name for a record for which the value of @Type@ is @CNAME@. This is -- because the alias record must have the same type as the record that -- you\'re routing traffic to, and creating a CNAME record for the zone -- apex isn\'t supported even for an alias record. AliasTarget -> Text dNSName :: Prelude.Text, -- | /Applies only to alias, failover alias, geolocation alias, latency -- alias, and weighted alias resource record sets:/ When -- @EvaluateTargetHealth@ is @true@, an alias resource record set inherits -- the health of the referenced Amazon Web Services resource, such as an -- ELB load balancer or another resource record set in the hosted zone. -- -- Note the following: -- -- [CloudFront distributions] -- You can\'t set @EvaluateTargetHealth@ to @true@ when the alias -- target is a CloudFront distribution. -- -- [Elastic Beanstalk environments that have regionalized subdomains] -- If you specify an Elastic Beanstalk environment in @DNSName@ and the -- environment contains an ELB load balancer, Elastic Load Balancing -- routes queries only to the healthy Amazon EC2 instances that are -- registered with the load balancer. (An environment automatically -- contains an ELB load balancer if it includes more than one Amazon -- EC2 instance.) If you set @EvaluateTargetHealth@ to @true@ and -- either no Amazon EC2 instances are healthy or the load balancer -- itself is unhealthy, Route 53 routes queries to other available -- resources that are healthy, if any. -- -- If the environment contains a single Amazon EC2 instance, there are -- no special requirements. -- -- [ELB load balancers] -- Health checking behavior depends on the type of load balancer: -- -- - __Classic Load Balancers__: If you specify an ELB Classic Load -- Balancer in @DNSName@, Elastic Load Balancing routes queries -- only to the healthy Amazon EC2 instances that are registered -- with the load balancer. If you set @EvaluateTargetHealth@ to -- @true@ and either no EC2 instances are healthy or the load -- balancer itself is unhealthy, Route 53 routes queries to other -- resources. -- -- - __Application and Network Load Balancers__: If you specify an -- ELB Application or Network Load Balancer and you set -- @EvaluateTargetHealth@ to @true@, Route 53 routes queries to the -- load balancer based on the health of the target groups that are -- associated with the load balancer: -- -- - For an Application or Network Load Balancer to be considered -- healthy, every target group that contains targets must -- contain at least one healthy target. If any target group -- contains only unhealthy targets, the load balancer is -- considered unhealthy, and Route 53 routes queries to other -- resources. -- -- - A target group that has no registered targets is considered -- unhealthy. -- -- When you create a load balancer, you configure settings for Elastic -- Load Balancing health checks; they\'re not Route 53 health checks, -- but they perform a similar function. Do not create Route 53 health -- checks for the EC2 instances that you register with an ELB load -- balancer. -- -- [S3 buckets] -- There are no special requirements for setting @EvaluateTargetHealth@ -- to @true@ when the alias target is an S3 bucket. -- -- [Other records in the same hosted zone] -- If the Amazon Web Services resource that you specify in @DNSName@ is -- a record or a group of records (for example, a group of weighted -- records) but is not another alias record, we recommend that you -- associate a health check with all of the records in the alias -- target. For more information, see -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting What Happens When You Omit Health Checks?> -- in the /Amazon Route 53 Developer Guide/. -- -- For more information and examples, see -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html Amazon Route 53 Health Checks and DNS Failover> -- in the /Amazon Route 53 Developer Guide/. AliasTarget -> Bool evaluateTargetHealth :: Prelude.Bool } deriving (AliasTarget -> AliasTarget -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: AliasTarget -> AliasTarget -> Bool $c/= :: AliasTarget -> AliasTarget -> Bool == :: AliasTarget -> AliasTarget -> Bool $c== :: AliasTarget -> AliasTarget -> Bool Prelude.Eq, ReadPrec [AliasTarget] ReadPrec AliasTarget Int -> ReadS AliasTarget ReadS [AliasTarget] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [AliasTarget] $creadListPrec :: ReadPrec [AliasTarget] readPrec :: ReadPrec AliasTarget $creadPrec :: ReadPrec AliasTarget readList :: ReadS [AliasTarget] $creadList :: ReadS [AliasTarget] readsPrec :: Int -> ReadS AliasTarget $creadsPrec :: Int -> ReadS AliasTarget Prelude.Read, Int -> AliasTarget -> ShowS [AliasTarget] -> ShowS AliasTarget -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [AliasTarget] -> ShowS $cshowList :: [AliasTarget] -> ShowS show :: AliasTarget -> String $cshow :: AliasTarget -> String showsPrec :: Int -> AliasTarget -> ShowS $cshowsPrec :: Int -> AliasTarget -> ShowS Prelude.Show, forall x. Rep AliasTarget x -> AliasTarget forall x. AliasTarget -> Rep AliasTarget x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep AliasTarget x -> AliasTarget $cfrom :: forall x. AliasTarget -> Rep AliasTarget x Prelude.Generic) -- | -- Create a value of 'AliasTarget' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'hostedZoneId', 'aliasTarget_hostedZoneId' - /Alias resource records sets only/: The value used depends on where you -- want to route traffic: -- -- [Amazon API Gateway custom regional APIs and edge-optimized APIs] -- Specify the hosted zone ID for your API. You can get the applicable -- value using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html get-domain-names>: -- -- - For regional APIs, specify the value of @regionalHostedZoneId@. -- -- - For edge-optimized APIs, specify the value of -- @distributionHostedZoneId@. -- -- [Amazon Virtual Private Cloud interface VPC endpoint] -- Specify the hosted zone ID for your interface endpoint. You can get -- the value of @HostedZoneId@ using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html describe-vpc-endpoints>. -- -- [CloudFront distribution] -- Specify @Z2FDTNDATAQYW2@. -- -- Alias resource record sets for CloudFront can\'t be created in a -- private zone. -- -- [Elastic Beanstalk environment] -- Specify the hosted zone ID for the region that you created the -- environment in. The environment must have a regionalized subdomain. -- For a list of regions and the corresponding hosted zone IDs, see -- <https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html Elastic Beanstalk endpoints and quotas> -- in the the /Amazon Web Services General Reference/. -- -- [ELB load balancer] -- Specify the value of the hosted zone ID for the load balancer. Use -- the following methods to get the hosted zone ID: -- -- - <https://docs.aws.amazon.com/general/latest/gr/elb.html Elastic Load Balancing endpoints and quotas> -- topic in the /Amazon Web Services General Reference/: Use the -- value that corresponds with the region that you created your -- load balancer in. Note that there are separate columns for -- Application and Classic Load Balancers and for Network Load -- Balancers. -- -- - __Amazon Web Services Management Console__: Go to the Amazon EC2 -- page, choose __Load Balancers__ in the navigation pane, select -- the load balancer, and get the value of the __Hosted zone__ -- field on the __Description__ tab. -- -- - __Elastic Load Balancing API__: Use @DescribeLoadBalancers@ to -- get the applicable value. For more information, see the -- applicable guide: -- -- - Classic Load Balancers: Use -- <https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- to get the value of @CanonicalHostedZoneId@. -- -- - __CLI__: Use @describe-load-balancers@ to get the applicable -- value. For more information, see the applicable guide: -- -- - Classic Load Balancers: Use -- <http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html describe-load-balancers> -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- <http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html describe-load-balancers> -- to get the value of @CanonicalHostedZoneId@. -- -- [Global Accelerator accelerator] -- Specify @Z2BJ6XQ5FK7U4H@. -- -- [An Amazon S3 bucket configured as a static website] -- Specify the hosted zone ID for the region that you created the -- bucket in. For more information about valid values, see the table -- <https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints Amazon S3 Website Endpoints> -- in the /Amazon Web Services General Reference/. -- -- [Another Route 53 resource record set in your hosted zone] -- Specify the hosted zone ID of your hosted zone. (An alias resource -- record set can\'t reference a resource record set in a different -- hosted zone.) -- -- 'dNSName', 'aliasTarget_dNSName' - /Alias resource record sets only:/ The value that you specify depends on -- where you want to route queries: -- -- [Amazon API Gateway custom regional APIs and edge-optimized APIs] -- Specify the applicable domain name for your API. You can get the -- applicable value using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html get-domain-names>: -- -- - For regional APIs, specify the value of @regionalDomainName@. -- -- - For edge-optimized APIs, specify the value of -- @distributionDomainName@. This is the name of the associated -- CloudFront distribution, such as @da1b2c3d4e5.cloudfront.net@. -- -- The name of the record that you\'re creating must match a custom -- domain name for your API, such as @api.example.com@. -- -- [Amazon Virtual Private Cloud interface VPC endpoint] -- Enter the API endpoint for the interface endpoint, such as -- @vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com@. -- For edge-optimized APIs, this is the domain name for the -- corresponding CloudFront distribution. You can get the value of -- @DnsName@ using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html describe-vpc-endpoints>. -- -- [CloudFront distribution] -- Specify the domain name that CloudFront assigned when you created -- your distribution. -- -- Your CloudFront distribution must include an alternate domain name -- that matches the name of the resource record set. For example, if -- the name of the resource record set is /acme.example.com/, your -- CloudFront distribution must include /acme.example.com/ as one of -- the alternate domain names. For more information, see -- <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html Using Alternate Domain Names (CNAMEs)> -- in the /Amazon CloudFront Developer Guide/. -- -- You can\'t create a resource record set in a private hosted zone to -- route traffic to a CloudFront distribution. -- -- For failover alias records, you can\'t specify a CloudFront -- distribution for both the primary and secondary records. A -- distribution must include an alternate domain name that matches the -- name of the record. However, the primary and secondary records have -- the same name, and you can\'t include the same alternate domain name -- in more than one distribution. -- -- [Elastic Beanstalk environment] -- If the domain name for your Elastic Beanstalk environment includes -- the region that you deployed the environment in, you can create an -- alias record that routes traffic to the environment. For example, -- the domain name -- @my-environment.@/@us-west-2@/@.elasticbeanstalk.com@ is a -- regionalized domain name. -- -- For environments that were created before early 2016, the domain -- name doesn\'t include the region. To route traffic to these -- environments, you must create a CNAME record instead of an alias -- record. Note that you can\'t create a CNAME record for the root -- domain name. For example, if your domain name is example.com, you -- can create a record that routes traffic for acme.example.com to your -- Elastic Beanstalk environment, but you can\'t create a record that -- routes traffic for example.com to your Elastic Beanstalk -- environment. -- -- For Elastic Beanstalk environments that have regionalized -- subdomains, specify the @CNAME@ attribute for the environment. You -- can use the following methods to get the value of the CNAME -- attribute: -- -- - /Amazon Web Services Management Console/: For information about -- how to get the value by using the console, see -- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html Using Custom Domains with Elastic Beanstalk> -- in the /Elastic Beanstalk Developer Guide/. -- -- - /Elastic Beanstalk API/: Use the @DescribeEnvironments@ action -- to get the value of the @CNAME@ attribute. For more information, -- see -- <https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html DescribeEnvironments> -- in the /Elastic Beanstalk API Reference/. -- -- - /CLI/: Use the @describe-environments@ command to get the value -- of the @CNAME@ attribute. For more information, see -- <https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html describe-environments> -- in the /CLI Command Reference/. -- -- [ELB load balancer] -- Specify the DNS name that is associated with the load balancer. Get -- the DNS name by using the Amazon Web Services Management Console, -- the ELB API, or the CLI. -- -- - __Amazon Web Services Management Console__: Go to the EC2 page, -- choose __Load Balancers__ in the navigation pane, choose the -- load balancer, choose the __Description__ tab, and get the value -- of the __DNS name__ field. -- -- If you\'re routing traffic to a Classic Load Balancer, get the -- value that begins with __dualstack__. If you\'re routing traffic -- to another type of load balancer, get the value that applies to -- the record type, A or AAAA. -- -- - __Elastic Load Balancing API__: Use @DescribeLoadBalancers@ to -- get the value of @DNSName@. For more information, see the -- applicable guide: -- -- - Classic Load Balancers: -- <https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- -- - Application and Network Load Balancers: -- <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- -- - __CLI__: Use @describe-load-balancers@ to get the value of -- @DNSName@. For more information, see the applicable guide: -- -- - Classic Load Balancers: -- <http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html describe-load-balancers> -- -- - Application and Network Load Balancers: -- <http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html describe-load-balancers> -- -- [Global Accelerator accelerator] -- Specify the DNS name for your accelerator: -- -- - __Global Accelerator API:__ To get the DNS name, use -- <https://docs.aws.amazon.com/global-accelerator/latest/api/API_DescribeAccelerator.html DescribeAccelerator>. -- -- - __CLI:__ To get the DNS name, use -- <https://docs.aws.amazon.com/cli/latest/reference/globalaccelerator/describe-accelerator.html describe-accelerator>. -- -- [Amazon S3 bucket that is configured as a static website] -- Specify the domain name of the Amazon S3 website endpoint that you -- created the bucket in, for example, -- @s3-website.us-east-2.amazonaws.com@. For more information about -- valid values, see the table -- <https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints Amazon S3 Website Endpoints> -- in the /Amazon Web Services General Reference/. For more information -- about using S3 buckets for websites, see -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html Getting Started with Amazon Route 53> -- in the /Amazon Route 53 Developer Guide./ -- -- [Another Route 53 resource record set] -- Specify the value of the @Name@ element for a resource record set in -- the current hosted zone. -- -- If you\'re creating an alias record that has the same name as the -- hosted zone (known as the zone apex), you can\'t specify the domain -- name for a record for which the value of @Type@ is @CNAME@. This is -- because the alias record must have the same type as the record that -- you\'re routing traffic to, and creating a CNAME record for the zone -- apex isn\'t supported even for an alias record. -- -- 'evaluateTargetHealth', 'aliasTarget_evaluateTargetHealth' - /Applies only to alias, failover alias, geolocation alias, latency -- alias, and weighted alias resource record sets:/ When -- @EvaluateTargetHealth@ is @true@, an alias resource record set inherits -- the health of the referenced Amazon Web Services resource, such as an -- ELB load balancer or another resource record set in the hosted zone. -- -- Note the following: -- -- [CloudFront distributions] -- You can\'t set @EvaluateTargetHealth@ to @true@ when the alias -- target is a CloudFront distribution. -- -- [Elastic Beanstalk environments that have regionalized subdomains] -- If you specify an Elastic Beanstalk environment in @DNSName@ and the -- environment contains an ELB load balancer, Elastic Load Balancing -- routes queries only to the healthy Amazon EC2 instances that are -- registered with the load balancer. (An environment automatically -- contains an ELB load balancer if it includes more than one Amazon -- EC2 instance.) If you set @EvaluateTargetHealth@ to @true@ and -- either no Amazon EC2 instances are healthy or the load balancer -- itself is unhealthy, Route 53 routes queries to other available -- resources that are healthy, if any. -- -- If the environment contains a single Amazon EC2 instance, there are -- no special requirements. -- -- [ELB load balancers] -- Health checking behavior depends on the type of load balancer: -- -- - __Classic Load Balancers__: If you specify an ELB Classic Load -- Balancer in @DNSName@, Elastic Load Balancing routes queries -- only to the healthy Amazon EC2 instances that are registered -- with the load balancer. If you set @EvaluateTargetHealth@ to -- @true@ and either no EC2 instances are healthy or the load -- balancer itself is unhealthy, Route 53 routes queries to other -- resources. -- -- - __Application and Network Load Balancers__: If you specify an -- ELB Application or Network Load Balancer and you set -- @EvaluateTargetHealth@ to @true@, Route 53 routes queries to the -- load balancer based on the health of the target groups that are -- associated with the load balancer: -- -- - For an Application or Network Load Balancer to be considered -- healthy, every target group that contains targets must -- contain at least one healthy target. If any target group -- contains only unhealthy targets, the load balancer is -- considered unhealthy, and Route 53 routes queries to other -- resources. -- -- - A target group that has no registered targets is considered -- unhealthy. -- -- When you create a load balancer, you configure settings for Elastic -- Load Balancing health checks; they\'re not Route 53 health checks, -- but they perform a similar function. Do not create Route 53 health -- checks for the EC2 instances that you register with an ELB load -- balancer. -- -- [S3 buckets] -- There are no special requirements for setting @EvaluateTargetHealth@ -- to @true@ when the alias target is an S3 bucket. -- -- [Other records in the same hosted zone] -- If the Amazon Web Services resource that you specify in @DNSName@ is -- a record or a group of records (for example, a group of weighted -- records) but is not another alias record, we recommend that you -- associate a health check with all of the records in the alias -- target. For more information, see -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting What Happens When You Omit Health Checks?> -- in the /Amazon Route 53 Developer Guide/. -- -- For more information and examples, see -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html Amazon Route 53 Health Checks and DNS Failover> -- in the /Amazon Route 53 Developer Guide/. newAliasTarget :: -- | 'hostedZoneId' ResourceId -> -- | 'dNSName' Prelude.Text -> -- | 'evaluateTargetHealth' Prelude.Bool -> AliasTarget newAliasTarget :: ResourceId -> Text -> Bool -> AliasTarget newAliasTarget ResourceId pHostedZoneId_ Text pDNSName_ Bool pEvaluateTargetHealth_ = AliasTarget' { $sel:hostedZoneId:AliasTarget' :: ResourceId hostedZoneId = ResourceId pHostedZoneId_, $sel:dNSName:AliasTarget' :: Text dNSName = Text pDNSName_, $sel:evaluateTargetHealth:AliasTarget' :: Bool evaluateTargetHealth = Bool pEvaluateTargetHealth_ } -- | /Alias resource records sets only/: The value used depends on where you -- want to route traffic: -- -- [Amazon API Gateway custom regional APIs and edge-optimized APIs] -- Specify the hosted zone ID for your API. You can get the applicable -- value using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html get-domain-names>: -- -- - For regional APIs, specify the value of @regionalHostedZoneId@. -- -- - For edge-optimized APIs, specify the value of -- @distributionHostedZoneId@. -- -- [Amazon Virtual Private Cloud interface VPC endpoint] -- Specify the hosted zone ID for your interface endpoint. You can get -- the value of @HostedZoneId@ using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html describe-vpc-endpoints>. -- -- [CloudFront distribution] -- Specify @Z2FDTNDATAQYW2@. -- -- Alias resource record sets for CloudFront can\'t be created in a -- private zone. -- -- [Elastic Beanstalk environment] -- Specify the hosted zone ID for the region that you created the -- environment in. The environment must have a regionalized subdomain. -- For a list of regions and the corresponding hosted zone IDs, see -- <https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html Elastic Beanstalk endpoints and quotas> -- in the the /Amazon Web Services General Reference/. -- -- [ELB load balancer] -- Specify the value of the hosted zone ID for the load balancer. Use -- the following methods to get the hosted zone ID: -- -- - <https://docs.aws.amazon.com/general/latest/gr/elb.html Elastic Load Balancing endpoints and quotas> -- topic in the /Amazon Web Services General Reference/: Use the -- value that corresponds with the region that you created your -- load balancer in. Note that there are separate columns for -- Application and Classic Load Balancers and for Network Load -- Balancers. -- -- - __Amazon Web Services Management Console__: Go to the Amazon EC2 -- page, choose __Load Balancers__ in the navigation pane, select -- the load balancer, and get the value of the __Hosted zone__ -- field on the __Description__ tab. -- -- - __Elastic Load Balancing API__: Use @DescribeLoadBalancers@ to -- get the applicable value. For more information, see the -- applicable guide: -- -- - Classic Load Balancers: Use -- <https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- to get the value of @CanonicalHostedZoneId@. -- -- - __CLI__: Use @describe-load-balancers@ to get the applicable -- value. For more information, see the applicable guide: -- -- - Classic Load Balancers: Use -- <http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html describe-load-balancers> -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- <http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html describe-load-balancers> -- to get the value of @CanonicalHostedZoneId@. -- -- [Global Accelerator accelerator] -- Specify @Z2BJ6XQ5FK7U4H@. -- -- [An Amazon S3 bucket configured as a static website] -- Specify the hosted zone ID for the region that you created the -- bucket in. For more information about valid values, see the table -- <https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints Amazon S3 Website Endpoints> -- in the /Amazon Web Services General Reference/. -- -- [Another Route 53 resource record set in your hosted zone] -- Specify the hosted zone ID of your hosted zone. (An alias resource -- record set can\'t reference a resource record set in a different -- hosted zone.) aliasTarget_hostedZoneId :: Lens.Lens' AliasTarget ResourceId aliasTarget_hostedZoneId :: Lens' AliasTarget ResourceId aliasTarget_hostedZoneId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\AliasTarget' {ResourceId hostedZoneId :: ResourceId $sel:hostedZoneId:AliasTarget' :: AliasTarget -> ResourceId hostedZoneId} -> ResourceId hostedZoneId) (\s :: AliasTarget s@AliasTarget' {} ResourceId a -> AliasTarget s {$sel:hostedZoneId:AliasTarget' :: ResourceId hostedZoneId = ResourceId a} :: AliasTarget) -- | /Alias resource record sets only:/ The value that you specify depends on -- where you want to route queries: -- -- [Amazon API Gateway custom regional APIs and edge-optimized APIs] -- Specify the applicable domain name for your API. You can get the -- applicable value using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html get-domain-names>: -- -- - For regional APIs, specify the value of @regionalDomainName@. -- -- - For edge-optimized APIs, specify the value of -- @distributionDomainName@. This is the name of the associated -- CloudFront distribution, such as @da1b2c3d4e5.cloudfront.net@. -- -- The name of the record that you\'re creating must match a custom -- domain name for your API, such as @api.example.com@. -- -- [Amazon Virtual Private Cloud interface VPC endpoint] -- Enter the API endpoint for the interface endpoint, such as -- @vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com@. -- For edge-optimized APIs, this is the domain name for the -- corresponding CloudFront distribution. You can get the value of -- @DnsName@ using the CLI command -- <https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html describe-vpc-endpoints>. -- -- [CloudFront distribution] -- Specify the domain name that CloudFront assigned when you created -- your distribution. -- -- Your CloudFront distribution must include an alternate domain name -- that matches the name of the resource record set. For example, if -- the name of the resource record set is /acme.example.com/, your -- CloudFront distribution must include /acme.example.com/ as one of -- the alternate domain names. For more information, see -- <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html Using Alternate Domain Names (CNAMEs)> -- in the /Amazon CloudFront Developer Guide/. -- -- You can\'t create a resource record set in a private hosted zone to -- route traffic to a CloudFront distribution. -- -- For failover alias records, you can\'t specify a CloudFront -- distribution for both the primary and secondary records. A -- distribution must include an alternate domain name that matches the -- name of the record. However, the primary and secondary records have -- the same name, and you can\'t include the same alternate domain name -- in more than one distribution. -- -- [Elastic Beanstalk environment] -- If the domain name for your Elastic Beanstalk environment includes -- the region that you deployed the environment in, you can create an -- alias record that routes traffic to the environment. For example, -- the domain name -- @my-environment.@/@us-west-2@/@.elasticbeanstalk.com@ is a -- regionalized domain name. -- -- For environments that were created before early 2016, the domain -- name doesn\'t include the region. To route traffic to these -- environments, you must create a CNAME record instead of an alias -- record. Note that you can\'t create a CNAME record for the root -- domain name. For example, if your domain name is example.com, you -- can create a record that routes traffic for acme.example.com to your -- Elastic Beanstalk environment, but you can\'t create a record that -- routes traffic for example.com to your Elastic Beanstalk -- environment. -- -- For Elastic Beanstalk environments that have regionalized -- subdomains, specify the @CNAME@ attribute for the environment. You -- can use the following methods to get the value of the CNAME -- attribute: -- -- - /Amazon Web Services Management Console/: For information about -- how to get the value by using the console, see -- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html Using Custom Domains with Elastic Beanstalk> -- in the /Elastic Beanstalk Developer Guide/. -- -- - /Elastic Beanstalk API/: Use the @DescribeEnvironments@ action -- to get the value of the @CNAME@ attribute. For more information, -- see -- <https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html DescribeEnvironments> -- in the /Elastic Beanstalk API Reference/. -- -- - /CLI/: Use the @describe-environments@ command to get the value -- of the @CNAME@ attribute. For more information, see -- <https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html describe-environments> -- in the /CLI Command Reference/. -- -- [ELB load balancer] -- Specify the DNS name that is associated with the load balancer. Get -- the DNS name by using the Amazon Web Services Management Console, -- the ELB API, or the CLI. -- -- - __Amazon Web Services Management Console__: Go to the EC2 page, -- choose __Load Balancers__ in the navigation pane, choose the -- load balancer, choose the __Description__ tab, and get the value -- of the __DNS name__ field. -- -- If you\'re routing traffic to a Classic Load Balancer, get the -- value that begins with __dualstack__. If you\'re routing traffic -- to another type of load balancer, get the value that applies to -- the record type, A or AAAA. -- -- - __Elastic Load Balancing API__: Use @DescribeLoadBalancers@ to -- get the value of @DNSName@. For more information, see the -- applicable guide: -- -- - Classic Load Balancers: -- <https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- -- - Application and Network Load Balancers: -- <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html DescribeLoadBalancers> -- -- - __CLI__: Use @describe-load-balancers@ to get the value of -- @DNSName@. For more information, see the applicable guide: -- -- - Classic Load Balancers: -- <http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html describe-load-balancers> -- -- - Application and Network Load Balancers: -- <http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html describe-load-balancers> -- -- [Global Accelerator accelerator] -- Specify the DNS name for your accelerator: -- -- - __Global Accelerator API:__ To get the DNS name, use -- <https://docs.aws.amazon.com/global-accelerator/latest/api/API_DescribeAccelerator.html DescribeAccelerator>. -- -- - __CLI:__ To get the DNS name, use -- <https://docs.aws.amazon.com/cli/latest/reference/globalaccelerator/describe-accelerator.html describe-accelerator>. -- -- [Amazon S3 bucket that is configured as a static website] -- Specify the domain name of the Amazon S3 website endpoint that you -- created the bucket in, for example, -- @s3-website.us-east-2.amazonaws.com@. For more information about -- valid values, see the table -- <https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints Amazon S3 Website Endpoints> -- in the /Amazon Web Services General Reference/. For more information -- about using S3 buckets for websites, see -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html Getting Started with Amazon Route 53> -- in the /Amazon Route 53 Developer Guide./ -- -- [Another Route 53 resource record set] -- Specify the value of the @Name@ element for a resource record set in -- the current hosted zone. -- -- If you\'re creating an alias record that has the same name as the -- hosted zone (known as the zone apex), you can\'t specify the domain -- name for a record for which the value of @Type@ is @CNAME@. This is -- because the alias record must have the same type as the record that -- you\'re routing traffic to, and creating a CNAME record for the zone -- apex isn\'t supported even for an alias record. aliasTarget_dNSName :: Lens.Lens' AliasTarget Prelude.Text aliasTarget_dNSName :: Lens' AliasTarget Text aliasTarget_dNSName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\AliasTarget' {Text dNSName :: Text $sel:dNSName:AliasTarget' :: AliasTarget -> Text dNSName} -> Text dNSName) (\s :: AliasTarget s@AliasTarget' {} Text a -> AliasTarget s {$sel:dNSName:AliasTarget' :: Text dNSName = Text a} :: AliasTarget) -- | /Applies only to alias, failover alias, geolocation alias, latency -- alias, and weighted alias resource record sets:/ When -- @EvaluateTargetHealth@ is @true@, an alias resource record set inherits -- the health of the referenced Amazon Web Services resource, such as an -- ELB load balancer or another resource record set in the hosted zone. -- -- Note the following: -- -- [CloudFront distributions] -- You can\'t set @EvaluateTargetHealth@ to @true@ when the alias -- target is a CloudFront distribution. -- -- [Elastic Beanstalk environments that have regionalized subdomains] -- If you specify an Elastic Beanstalk environment in @DNSName@ and the -- environment contains an ELB load balancer, Elastic Load Balancing -- routes queries only to the healthy Amazon EC2 instances that are -- registered with the load balancer. (An environment automatically -- contains an ELB load balancer if it includes more than one Amazon -- EC2 instance.) If you set @EvaluateTargetHealth@ to @true@ and -- either no Amazon EC2 instances are healthy or the load balancer -- itself is unhealthy, Route 53 routes queries to other available -- resources that are healthy, if any. -- -- If the environment contains a single Amazon EC2 instance, there are -- no special requirements. -- -- [ELB load balancers] -- Health checking behavior depends on the type of load balancer: -- -- - __Classic Load Balancers__: If you specify an ELB Classic Load -- Balancer in @DNSName@, Elastic Load Balancing routes queries -- only to the healthy Amazon EC2 instances that are registered -- with the load balancer. If you set @EvaluateTargetHealth@ to -- @true@ and either no EC2 instances are healthy or the load -- balancer itself is unhealthy, Route 53 routes queries to other -- resources. -- -- - __Application and Network Load Balancers__: If you specify an -- ELB Application or Network Load Balancer and you set -- @EvaluateTargetHealth@ to @true@, Route 53 routes queries to the -- load balancer based on the health of the target groups that are -- associated with the load balancer: -- -- - For an Application or Network Load Balancer to be considered -- healthy, every target group that contains targets must -- contain at least one healthy target. If any target group -- contains only unhealthy targets, the load balancer is -- considered unhealthy, and Route 53 routes queries to other -- resources. -- -- - A target group that has no registered targets is considered -- unhealthy. -- -- When you create a load balancer, you configure settings for Elastic -- Load Balancing health checks; they\'re not Route 53 health checks, -- but they perform a similar function. Do not create Route 53 health -- checks for the EC2 instances that you register with an ELB load -- balancer. -- -- [S3 buckets] -- There are no special requirements for setting @EvaluateTargetHealth@ -- to @true@ when the alias target is an S3 bucket. -- -- [Other records in the same hosted zone] -- If the Amazon Web Services resource that you specify in @DNSName@ is -- a record or a group of records (for example, a group of weighted -- records) but is not another alias record, we recommend that you -- associate a health check with all of the records in the alias -- target. For more information, see -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting What Happens When You Omit Health Checks?> -- in the /Amazon Route 53 Developer Guide/. -- -- For more information and examples, see -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html Amazon Route 53 Health Checks and DNS Failover> -- in the /Amazon Route 53 Developer Guide/. aliasTarget_evaluateTargetHealth :: Lens.Lens' AliasTarget Prelude.Bool aliasTarget_evaluateTargetHealth :: Lens' AliasTarget Bool aliasTarget_evaluateTargetHealth = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\AliasTarget' {Bool evaluateTargetHealth :: Bool $sel:evaluateTargetHealth:AliasTarget' :: AliasTarget -> Bool evaluateTargetHealth} -> Bool evaluateTargetHealth) (\s :: AliasTarget s@AliasTarget' {} Bool a -> AliasTarget s {$sel:evaluateTargetHealth:AliasTarget' :: Bool evaluateTargetHealth = Bool a} :: AliasTarget) instance Data.FromXML AliasTarget where parseXML :: [Node] -> Either String AliasTarget parseXML [Node] x = ResourceId -> Text -> Bool -> AliasTarget AliasTarget' forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> ([Node] x forall a. FromXML a => [Node] -> Text -> Either String a Data..@ Text "HostedZoneId") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> ([Node] x forall a. FromXML a => [Node] -> Text -> Either String a Data..@ Text "DNSName") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> ([Node] x forall a. FromXML a => [Node] -> Text -> Either String a Data..@ Text "EvaluateTargetHealth") instance Prelude.Hashable AliasTarget where hashWithSalt :: Int -> AliasTarget -> Int hashWithSalt Int _salt AliasTarget' {Bool Text ResourceId evaluateTargetHealth :: Bool dNSName :: Text hostedZoneId :: ResourceId $sel:evaluateTargetHealth:AliasTarget' :: AliasTarget -> Bool $sel:dNSName:AliasTarget' :: AliasTarget -> Text $sel:hostedZoneId:AliasTarget' :: AliasTarget -> ResourceId ..} = Int _salt forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` ResourceId hostedZoneId forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Text dNSName forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Bool evaluateTargetHealth instance Prelude.NFData AliasTarget where rnf :: AliasTarget -> () rnf AliasTarget' {Bool Text ResourceId evaluateTargetHealth :: Bool dNSName :: Text hostedZoneId :: ResourceId $sel:evaluateTargetHealth:AliasTarget' :: AliasTarget -> Bool $sel:dNSName:AliasTarget' :: AliasTarget -> Text $sel:hostedZoneId:AliasTarget' :: AliasTarget -> ResourceId ..} = forall a. NFData a => a -> () Prelude.rnf ResourceId hostedZoneId seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Text dNSName seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Bool evaluateTargetHealth instance Data.ToXML AliasTarget where toXML :: AliasTarget -> XML toXML AliasTarget' {Bool Text ResourceId evaluateTargetHealth :: Bool dNSName :: Text hostedZoneId :: ResourceId $sel:evaluateTargetHealth:AliasTarget' :: AliasTarget -> Bool $sel:dNSName:AliasTarget' :: AliasTarget -> Text $sel:hostedZoneId:AliasTarget' :: AliasTarget -> ResourceId ..} = forall a. Monoid a => [a] -> a Prelude.mconcat [ Name "HostedZoneId" forall a. ToXML a => Name -> a -> XML Data.@= ResourceId hostedZoneId, Name "DNSName" forall a. ToXML a => Name -> a -> XML Data.@= Text dNSName, Name "EvaluateTargetHealth" forall a. ToXML a => Name -> a -> XML Data.@= Bool evaluateTargetHealth ]