{-# 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 -- . -- -- /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 -- : -- -- - 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 -- . -- -- [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 -- -- 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: -- -- - -- 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 -- -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- -- 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 -- -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- -- 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 -- -- 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.) 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 -- : -- -- - 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 -- . -- -- [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 -- -- 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 -- -- 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 -- -- in the /Elastic Beanstalk API Reference/. -- -- - /CLI/: Use the @describe-environments@ command to get the value -- of the @CNAME@ attribute. For more information, see -- -- 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: -- -- -- - Application and Network Load Balancers: -- -- -- - __CLI__: Use @describe-load-balancers@ to get the value of -- @DNSName@. For more information, see the applicable guide: -- -- - Classic Load Balancers: -- -- -- - Application and Network Load Balancers: -- -- -- [Global Accelerator accelerator] -- Specify the DNS name for your accelerator: -- -- - __Global Accelerator API:__ To get the DNS name, use -- . -- -- - __CLI:__ To get the DNS name, use -- . -- -- [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 -- -- in the /Amazon Web Services General Reference/. For more information -- about using S3 buckets for websites, see -- -- 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. 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 -- -- in the /Amazon Route 53 Developer Guide/. -- -- For more information and examples, see -- -- in the /Amazon Route 53 Developer Guide/. evaluateTargetHealth :: Prelude.Bool } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'AliasTarget' with all optional fields omitted. -- -- Use or 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 -- : -- -- - 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 -- . -- -- [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 -- -- 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: -- -- - -- 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 -- -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- -- 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 -- -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- -- 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 -- -- 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 -- : -- -- - 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 -- . -- -- [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 -- -- 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 -- -- 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 -- -- in the /Elastic Beanstalk API Reference/. -- -- - /CLI/: Use the @describe-environments@ command to get the value -- of the @CNAME@ attribute. For more information, see -- -- 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: -- -- -- - Application and Network Load Balancers: -- -- -- - __CLI__: Use @describe-load-balancers@ to get the value of -- @DNSName@. For more information, see the applicable guide: -- -- - Classic Load Balancers: -- -- -- - Application and Network Load Balancers: -- -- -- [Global Accelerator accelerator] -- Specify the DNS name for your accelerator: -- -- - __Global Accelerator API:__ To get the DNS name, use -- . -- -- - __CLI:__ To get the DNS name, use -- . -- -- [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 -- -- in the /Amazon Web Services General Reference/. For more information -- about using S3 buckets for websites, see -- -- 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 -- -- in the /Amazon Route 53 Developer Guide/. -- -- For more information and examples, see -- -- in the /Amazon Route 53 Developer Guide/. newAliasTarget :: -- | 'hostedZoneId' ResourceId -> -- | 'dNSName' Prelude.Text -> -- | 'evaluateTargetHealth' Prelude.Bool -> AliasTarget newAliasTarget pHostedZoneId_ pDNSName_ pEvaluateTargetHealth_ = AliasTarget' { hostedZoneId = pHostedZoneId_, dNSName = pDNSName_, evaluateTargetHealth = 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 -- : -- -- - 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 -- . -- -- [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 -- -- 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: -- -- - -- 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 -- -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- -- 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 -- -- to get the value of @CanonicalHostedZoneNameId@. -- -- - Application and Network Load Balancers: Use -- -- 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 -- -- 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.lens (\AliasTarget' {hostedZoneId} -> hostedZoneId) (\s@AliasTarget' {} a -> s {hostedZoneId = 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 -- : -- -- - 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 -- . -- -- [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 -- -- 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 -- -- 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 -- -- in the /Elastic Beanstalk API Reference/. -- -- - /CLI/: Use the @describe-environments@ command to get the value -- of the @CNAME@ attribute. For more information, see -- -- 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: -- -- -- - Application and Network Load Balancers: -- -- -- - __CLI__: Use @describe-load-balancers@ to get the value of -- @DNSName@. For more information, see the applicable guide: -- -- - Classic Load Balancers: -- -- -- - Application and Network Load Balancers: -- -- -- [Global Accelerator accelerator] -- Specify the DNS name for your accelerator: -- -- - __Global Accelerator API:__ To get the DNS name, use -- . -- -- - __CLI:__ To get the DNS name, use -- . -- -- [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 -- -- in the /Amazon Web Services General Reference/. For more information -- about using S3 buckets for websites, see -- -- 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.lens (\AliasTarget' {dNSName} -> dNSName) (\s@AliasTarget' {} a -> s {dNSName = 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 -- -- in the /Amazon Route 53 Developer Guide/. -- -- For more information and examples, see -- -- in the /Amazon Route 53 Developer Guide/. aliasTarget_evaluateTargetHealth :: Lens.Lens' AliasTarget Prelude.Bool aliasTarget_evaluateTargetHealth = Lens.lens (\AliasTarget' {evaluateTargetHealth} -> evaluateTargetHealth) (\s@AliasTarget' {} a -> s {evaluateTargetHealth = a} :: AliasTarget) instance Data.FromXML AliasTarget where parseXML x = AliasTarget' Prelude.<$> (x Data..@ "HostedZoneId") Prelude.<*> (x Data..@ "DNSName") Prelude.<*> (x Data..@ "EvaluateTargetHealth") instance Prelude.Hashable AliasTarget where hashWithSalt _salt AliasTarget' {..} = _salt `Prelude.hashWithSalt` hostedZoneId `Prelude.hashWithSalt` dNSName `Prelude.hashWithSalt` evaluateTargetHealth instance Prelude.NFData AliasTarget where rnf AliasTarget' {..} = Prelude.rnf hostedZoneId `Prelude.seq` Prelude.rnf dNSName `Prelude.seq` Prelude.rnf evaluateTargetHealth instance Data.ToXML AliasTarget where toXML AliasTarget' {..} = Prelude.mconcat [ "HostedZoneId" Data.@= hostedZoneId, "DNSName" Data.@= dNSName, "EvaluateTargetHealth" Data.@= evaluateTargetHealth ]