com.amazonaws.services.route53.model.AliasTarget.java Source code

Java tutorial

Introduction

Here is the source code for com.amazonaws.services.route53.model.AliasTarget.java

Source

/*
 * Copyright 2014-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */
package com.amazonaws.services.route53.model;

import java.io.Serializable;
import javax.annotation.Generated;

/**
 * <p>
 * <i>Alias resource record sets only:</i> Information about the AWS resource, such as a CloudFront distribution or an
 * Amazon S3 bucket, that you want to route traffic to.
 * </p>
 * <p>
 * When creating resource record sets for a private hosted zone, note the following:
 * </p>
 * <ul>
 * <li>
 * <p>
 * Creating geolocation alias resource record sets or latency alias resource record sets in a private hosted zone is
 * unsupported.
 * </p>
 * </li>
 * <li>
 * <p>
 * For information about creating failover resource record sets in a private hosted zone, see <a
 * href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html">Configuring
 * Failover in a Private Hosted Zone</a>.
 * </p>
 * </li>
 * </ul>
 * 
 * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AliasTarget" target="_top">AWS API
 *      Documentation</a>
 */
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class AliasTarget implements Serializable, Cloneable {

    /**
     * <p>
     * <i>Alias resource records sets only</i>: The value used depends on where you want to route traffic:
     * </p>
     * <dl>
     * <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for your API. You can get the applicable value using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names</a>:
     * </p>
     * <ul>
     * <li>
     * <p>
     * For regional APIs, specify the value of <code>regionalHostedZoneId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * For edge-optimized APIs, specify the value of <code>distributionHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </dd>
     * <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for your interface endpoint. You can get the value of <code>HostedZoneId</code> using
     * the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html">describe
     * -vpc-endpoints</a>.
     * </p>
     * </dd>
     * <dt>CloudFront distribution</dt>
     * <dd>
     * <p>
     * Specify <code>Z2FDTNDATAQYW2</code>.
     * </p>
     * <note>
     * <p>
     * Alias resource record sets for CloudFront can't be created in a private zone.
     * </p>
     * </note></dd>
     * <dt>Elastic Beanstalk environment</dt>
     * <dd>
     * <p>
     * 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 <a
     * href="http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region">AWS Elastic Beanstalk</a>
     * in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>.
     * </p>
     * </dd>
     * <dt>ELB load balancer</dt>
     * <dd>
     * <p>
     * Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone
     * ID:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region">Elastic Load Balancing</a> table in
     * the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>: 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.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>AWS Management Console</b>: Go to the Amazon EC2 page, choose <b>Load Balancers</b> in the navigation pane,
     * select the load balancer, and get the value of the <b>Hosted zone</b> field on the <b>Description</b> tab.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the applicable value. For more
     * information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </li>
     * <li>
     * <p>
     * <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the applicable value. For more information, see
     * the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     * >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     * >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * </dd>
     * <dt>An Amazon S3 bucket configured as a static website</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for the region that you created the bucket in. For more information about valid
     * values, see the <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage
     * Service Website Endpoints</a> table in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services
     * General Reference</i>.
     * </p>
     * </dd>
     * <dt>Another Route 53 resource record set in your hosted zone</dt>
     * <dd>
     * <p>
     * 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.)
     * </p>
     * </dd>
     * </dl>
     */
    private String hostedZoneId;
    /**
     * <p>
     * <i>Alias resource record sets only:</i> The value that you specify depends on where you want to route queries:
     * </p>
     * <dl>
     * <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     * <dd>
     * <p>
     * Specify the applicable domain name for your API. You can get the applicable value using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names</a>:
     * </p>
     * <ul>
     * <li>
     * <p>
     * For regional APIs, specify the value of <code>regionalDomainName</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * For edge-optimized APIs, specify the value of <code>distributionDomainName</code>. This is the name of the
     * associated CloudFront distribution, such as <code>da1b2c3d4e5.cloudfront.net</code>.
     * </p>
     * </li>
     * </ul>
     * <note>
     * <p>
     * The name of the record that you're creating must match a custom domain name for your API, such as
     * <code>api.example.com</code>.
     * </p>
     * </note></dd>
     * <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     * <dd>
     * <p>
     * Enter the API endpoint for the interface endpoint, such as
     * <code>vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com</code>. For
     * edge-optimized APIs, this is the domain name for the corresponding CloudFront distribution. You can get the value
     * of <code>DnsName</code> using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     * >describe-vpc-endpoints</a>.
     * </p>
     * </dd>
     * <dt>CloudFront distribution</dt>
     * <dd>
     * <p>
     * Specify the domain name that CloudFront assigned when you created your distribution.
     * </p>
     * <p>
     * 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 <i>acme.example.com</i>, your CloudFront distribution
     * must include <i>acme.example.com</i> as one of the alternate domain names. For more information, see <a
     * href="http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html">Using Alternate Domain Names
     * (CNAMEs)</a> in the <i>Amazon CloudFront Developer Guide</i>.
     * </p>
     * <p>
     * You can't create a resource record set in a private hosted zone to route traffic to a CloudFront distribution.
     * </p>
     * <note>
     * <p>
     * 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.
     * </p>
     * </note></dd>
     * <dt>Elastic Beanstalk environment</dt>
     * <dd>
     * <p>
     * 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
     * <code>my-environment.<i>us-west-2</i>.elasticbeanstalk.com</code> is a regionalized domain name.
     * </p>
     * <important>
     * <p>
     * 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.
     * </p>
     * </important>
     * <p>
     * For Elastic Beanstalk environments that have regionalized subdomains, specify the <code>CNAME</code> attribute
     * for the environment. You can use the following methods to get the value of the CNAME attribute:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <i>AWS Management Console</i>: For information about how to get the value by using the console, see <a
     * href="http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html">Using Custom Domains with AWS
     * Elastic Beanstalk</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.
     * </p>
     * </li>
     * <li>
     * <p>
     * <i>Elastic Beanstalk API</i>: Use the <code>DescribeEnvironments</code> action to get the value of the
     * <code>CNAME</code> attribute. For more information, see <a
     * href="http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html"
     * >DescribeEnvironments</a> in the <i>AWS Elastic Beanstalk API Reference</i>.
     * </p>
     * </li>
     * <li>
     * <p>
     * <i>AWS CLI</i>: Use the <code>describe-environments</code> command to get the value of the <code>CNAME</code>
     * attribute. For more information, see <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html"
     * >describe-environments</a> in the <i>AWS Command Line Interface Reference</i>.
     * </p>
     * </li>
     * </ul>
     * </dd>
     * <dt>ELB load balancer</dt>
     * <dd>
     * <p>
     * Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management
     * Console, the ELB API, or the AWS CLI.
     * </p>
     * <ul>
     * <li>
     * <p>
     * <b>AWS Management Console</b>: Go to the EC2 page, choose <b>Load Balancers</b> in the navigation pane, choose
     * the load balancer, choose the <b>Description</b> tab, and get the value of the <b>DNS name</b> field.
     * </p>
     * <p>
     * If you're routing traffic to a Classic Load Balancer, get the value that begins with <b>dualstack</b>. If you're
     * routing traffic to another type of load balancer, get the value that applies to the record type, A or AAAA.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the value of
     * <code>DNSName</code>. For more information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a>
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a>
     * </p>
     * </li>
     * </ul>
     * </li>
     * <li>
     * <p>
     * <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the value of <code>DNSName</code>. For more
     * information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     * >describe-load-balancers</a>
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     * >describe-load-balancers</a>
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * </dd>
     * <dt>Amazon S3 bucket that is configured as a static website</dt>
     * <dd>
     * <p>
     * Specify the domain name of the Amazon S3 website endpoint that you created the bucket in, for example,
     * <code>s3-website.us-east-2.amazonaws.com</code>. For more information about valid values, see the table <a
     * href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage Service (S3)
     * Website Endpoints</a> in the <i>Amazon Web Services General Reference</i>. For more information about using S3
     * buckets for websites, see <a
     * href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with Amazon
     * Route 53</a> in the <i>Amazon Route 53 Developer Guide.</i>
     * </p>
     * </dd>
     * <dt>Another Route 53 resource record set</dt>
     * <dd>
     * <p>
     * Specify the value of the <code>Name</code> element for a resource record set in the current hosted zone.
     * </p>
     * <note>
     * <p>
     * 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 <code>Type</code> is <code>CNAME</code>. 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.
     * </p>
     * </note></dd>
     * </dl>
     */
    private String dNSName;
    /**
     * <p>
     * <i>Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record
     * sets:</i> When <code>EvaluateTargetHealth</code> is <code>true</code>, an alias resource record set inherits the
     * health of the referenced AWS resource, such as an ELB load balancer or another resource record set in the hosted
     * zone.
     * </p>
     * <p>
     * Note the following:
     * </p>
     * <dl>
     * <dt>CloudFront distributions</dt>
     * <dd>
     * <p>
     * You can't set <code>EvaluateTargetHealth</code> to <code>true</code> when the alias target is a CloudFront
     * distribution.
     * </p>
     * </dd>
     * <dt>Elastic Beanstalk environments that have regionalized subdomains</dt>
     * <dd>
     * <p>
     * If you specify an Elastic Beanstalk environment in <code>DNSName</code> 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 <code>EvaluateTargetHealth</code> to <code>true</code> 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.
     * </p>
     * <p>
     * If the environment contains a single Amazon EC2 instance, there are no special requirements.
     * </p>
     * </dd>
     * <dt>ELB load balancers</dt>
     * <dd>
     * <p>
     * Health checking behavior depends on the type of load balancer:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <b>Classic Load Balancers</b>: If you specify an ELB Classic Load Balancer in <code>DNSName</code>, Elastic Load
     * Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. If
     * you set <code>EvaluateTargetHealth</code> to <code>true</code> and either no EC2 instances are healthy or the
     * load balancer itself is unhealthy, Route 53 routes queries to other resources.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Application and Network Load Balancers</b>: If you specify an ELB Application or Network Load Balancer and you
     * set <code>EvaluateTargetHealth</code> to <code>true</code>, Route 53 routes queries to the load balancer based on
     * the health of the target groups that are associated with the load balancer:
     * </p>
     * <ul>
     * <li>
     * <p>
     * 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.
     * </p>
     * </li>
     * <li>
     * <p>
     * A target group that has no registered targets is considered unhealthy.
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * <note>
     * <p>
     * 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.
     * </p>
     * </note></dd>
     * <dt>S3 buckets</dt>
     * <dd>
     * <p>
     * There are no special requirements for setting <code>EvaluateTargetHealth</code> to <code>true</code> when the
     * alias target is an S3 bucket.
     * </p>
     * </dd>
     * <dt>Other records in the same hosted zone</dt>
     * <dd>
     * <p>
     * If the AWS resource that you specify in <code>DNSName</code> 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 <a href=
     * "http://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?</a> in the <i>Amazon Route 53 Developer Guide</i>.
     * </p>
     * </dd>
     * </dl>
     * <p>
     * For more information and examples, see <a
     * href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html">Amazon Route 53 Health Checks
     * and DNS Failover</a> in the <i>Amazon Route 53 Developer Guide</i>.
     * </p>
     */
    private Boolean evaluateTargetHealth;

    /**
     * Default constructor for AliasTarget object. Callers should use the setter or fluent setter (with...) methods to
     * initialize the object after creating it.
     */
    public AliasTarget() {
    }

    /**
     * Constructs a new AliasTarget object. Callers should use the setter or fluent setter (with...) methods to
     * initialize any additional object members.
     * 
     * @param hostedZoneId
     *        <i>Alias resource records sets only</i>: The value used depends on where you want to route traffic:</p>
     *        <dl>
     *        <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     *        <dd>
     *        <p>
     *        Specify the hosted zone ID for your API. You can get the applicable value using the AWS CLI command <a
     *        href
     *        ="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names</a>:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        For regional APIs, specify the value of <code>regionalHostedZoneId</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        For edge-optimized APIs, specify the value of <code>distributionHostedZoneId</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     *        <dd>
     *        <p>
     *        Specify the hosted zone ID for your interface endpoint. You can get the value of <code>HostedZoneId</code>
     *        using the AWS CLI command <a
     *        href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     *        >describe-vpc-endpoints</a>.
     *        </p>
     *        </dd>
     *        <dt>CloudFront distribution</dt>
     *        <dd>
     *        <p>
     *        Specify <code>Z2FDTNDATAQYW2</code>.
     *        </p>
     *        <note>
     *        <p>
     *        Alias resource record sets for CloudFront can't be created in a private zone.
     *        </p>
     *        </note></dd>
     *        <dt>Elastic Beanstalk environment</dt>
     *        <dd>
     *        <p>
     *        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 <a
     *        href="http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region">AWS Elastic
     *        Beanstalk</a> in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General
     *        Reference</i>.
     *        </p>
     *        </dd>
     *        <dt>ELB load balancer</dt>
     *        <dd>
     *        <p>
     *        Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted
     *        zone ID:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region">Elastic Load Balancing</a>
     *        table in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>: 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.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <b>AWS Management Console</b>: Go to the Amazon EC2 page, choose <b>Load Balancers</b> in the navigation
     *        pane, select the load balancer, and get the value of the <b>Hosted zone</b> field on the
     *        <b>Description</b> tab.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the applicable value. For
     *        more information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: Use <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: Use <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        <li>
     *        <p>
     *        <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the applicable value. For more
     *        information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: Use <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     *        >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: Use <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     *        >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>An Amazon S3 bucket configured as a static website</dt>
     *        <dd>
     *        <p>
     *        Specify the hosted zone ID for the region that you created the bucket in. For more information about valid
     *        values, see the <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple
     *        Storage Service Website Endpoints</a> table in the "AWS Regions and Endpoints" chapter of the <i>Amazon
     *        Web Services General Reference</i>.
     *        </p>
     *        </dd>
     *        <dt>Another Route 53 resource record set in your hosted zone</dt>
     *        <dd>
     *        <p>
     *        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.)
     *        </p>
     *        </dd>
     * @param dNSName
     *        <i>Alias resource record sets only:</i> The value that you specify depends on where you want to route
     *        queries:</p>
     *        <dl>
     *        <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     *        <dd>
     *        <p>
     *        Specify the applicable domain name for your API. You can get the applicable value using the AWS CLI
     *        command <a
     *        href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain
     *        -names</a>:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        For regional APIs, specify the value of <code>regionalDomainName</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        For edge-optimized APIs, specify the value of <code>distributionDomainName</code>. This is the name of the
     *        associated CloudFront distribution, such as <code>da1b2c3d4e5.cloudfront.net</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        <note>
     *        <p>
     *        The name of the record that you're creating must match a custom domain name for your API, such as
     *        <code>api.example.com</code>.
     *        </p>
     *        </note></dd>
     *        <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     *        <dd>
     *        <p>
     *        Enter the API endpoint for the interface endpoint, such as
     *        <code>vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com</code>.
     *        For edge-optimized APIs, this is the domain name for the corresponding CloudFront distribution. You can
     *        get the value of <code>DnsName</code> using the AWS CLI command <a
     *        href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     *        >describe-vpc-endpoints</a>.
     *        </p>
     *        </dd>
     *        <dt>CloudFront distribution</dt>
     *        <dd>
     *        <p>
     *        Specify the domain name that CloudFront assigned when you created your distribution.
     *        </p>
     *        <p>
     *        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 <i>acme.example.com</i>, your
     *        CloudFront distribution must include <i>acme.example.com</i> as one of the alternate domain names. For
     *        more information, see <a
     *        href="http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html">Using Alternate
     *        Domain Names (CNAMEs)</a> in the <i>Amazon CloudFront Developer Guide</i>.
     *        </p>
     *        <p>
     *        You can't create a resource record set in a private hosted zone to route traffic to a CloudFront
     *        distribution.
     *        </p>
     *        <note>
     *        <p>
     *        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.
     *        </p>
     *        </note></dd>
     *        <dt>Elastic Beanstalk environment</dt>
     *        <dd>
     *        <p>
     *        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 <code>my-environment.<i>us-west-2</i>.elasticbeanstalk.com</code> is a regionalized domain
     *        name.
     *        </p>
     *        <important>
     *        <p>
     *        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.
     *        </p>
     *        </important>
     *        <p>
     *        For Elastic Beanstalk environments that have regionalized subdomains, specify the <code>CNAME</code>
     *        attribute for the environment. You can use the following methods to get the value of the CNAME attribute:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        <i>AWS Management Console</i>: For information about how to get the value by using the console, see <a
     *        href="http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html">Using Custom Domains with
     *        AWS Elastic Beanstalk</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <i>Elastic Beanstalk API</i>: Use the <code>DescribeEnvironments</code> action to get the value of the
     *        <code>CNAME</code> attribute. For more information, see <a
     *        href="http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html"
     *        >DescribeEnvironments</a> in the <i>AWS Elastic Beanstalk API Reference</i>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <i>AWS CLI</i>: Use the <code>describe-environments</code> command to get the value of the
     *        <code>CNAME</code> attribute. For more information, see <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html"
     *        >describe-environments</a> in the <i>AWS Command Line Interface Reference</i>.
     *        </p>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>ELB load balancer</dt>
     *        <dd>
     *        <p>
     *        Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS
     *        Management Console, the ELB API, or the AWS CLI.
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        <b>AWS Management Console</b>: Go to the EC2 page, choose <b>Load Balancers</b> in the navigation pane,
     *        choose the load balancer, choose the <b>Description</b> tab, and get the value of the <b>DNS name</b>
     *        field.
     *        </p>
     *        <p>
     *        If you're routing traffic to a Classic Load Balancer, get the value that begins with <b>dualstack</b>. If
     *        you're routing traffic to another type of load balancer, get the value that applies to the record type, A
     *        or AAAA.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the value of
     *        <code>DNSName</code>. For more information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a>
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a>
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        <li>
     *        <p>
     *        <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the value of <code>DNSName</code>. For
     *        more information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     *        >describe-load-balancers</a>
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     *        >describe-load-balancers</a>
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>Amazon S3 bucket that is configured as a static website</dt>
     *        <dd>
     *        <p>
     *        Specify the domain name of the Amazon S3 website endpoint that you created the bucket in, for example,
     *        <code>s3-website.us-east-2.amazonaws.com</code>. For more information about valid values, see the table <a
     *        href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage Service
     *        (S3) Website Endpoints</a> in the <i>Amazon Web Services General Reference</i>. For more information about
     *        using S3 buckets for websites, see <a
     *        href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with
     *        Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide.</i>
     *        </p>
     *        </dd>
     *        <dt>Another Route 53 resource record set</dt>
     *        <dd>
     *        <p>
     *        Specify the value of the <code>Name</code> element for a resource record set in the current hosted zone.
     *        </p>
     *        <note>
     *        <p>
     *        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 <code>Type</code> is <code>CNAME</code>.
     *        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.
     *        </p>
     *        </note></dd>
     */
    public AliasTarget(String hostedZoneId, String dNSName) {
        setHostedZoneId(hostedZoneId);
        setDNSName(dNSName);
    }

    /**
     * <p>
     * <i>Alias resource records sets only</i>: The value used depends on where you want to route traffic:
     * </p>
     * <dl>
     * <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for your API. You can get the applicable value using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names</a>:
     * </p>
     * <ul>
     * <li>
     * <p>
     * For regional APIs, specify the value of <code>regionalHostedZoneId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * For edge-optimized APIs, specify the value of <code>distributionHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </dd>
     * <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for your interface endpoint. You can get the value of <code>HostedZoneId</code> using
     * the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html">describe
     * -vpc-endpoints</a>.
     * </p>
     * </dd>
     * <dt>CloudFront distribution</dt>
     * <dd>
     * <p>
     * Specify <code>Z2FDTNDATAQYW2</code>.
     * </p>
     * <note>
     * <p>
     * Alias resource record sets for CloudFront can't be created in a private zone.
     * </p>
     * </note></dd>
     * <dt>Elastic Beanstalk environment</dt>
     * <dd>
     * <p>
     * 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 <a
     * href="http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region">AWS Elastic Beanstalk</a>
     * in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>.
     * </p>
     * </dd>
     * <dt>ELB load balancer</dt>
     * <dd>
     * <p>
     * Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone
     * ID:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region">Elastic Load Balancing</a> table in
     * the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>: 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.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>AWS Management Console</b>: Go to the Amazon EC2 page, choose <b>Load Balancers</b> in the navigation pane,
     * select the load balancer, and get the value of the <b>Hosted zone</b> field on the <b>Description</b> tab.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the applicable value. For more
     * information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </li>
     * <li>
     * <p>
     * <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the applicable value. For more information, see
     * the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     * >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     * >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * </dd>
     * <dt>An Amazon S3 bucket configured as a static website</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for the region that you created the bucket in. For more information about valid
     * values, see the <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage
     * Service Website Endpoints</a> table in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services
     * General Reference</i>.
     * </p>
     * </dd>
     * <dt>Another Route 53 resource record set in your hosted zone</dt>
     * <dd>
     * <p>
     * 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.)
     * </p>
     * </dd>
     * </dl>
     * 
     * @param hostedZoneId
     *        <i>Alias resource records sets only</i>: The value used depends on where you want to route traffic:</p>
     *        <dl>
     *        <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     *        <dd>
     *        <p>
     *        Specify the hosted zone ID for your API. You can get the applicable value using the AWS CLI command <a
     *        href
     *        ="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names</a>:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        For regional APIs, specify the value of <code>regionalHostedZoneId</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        For edge-optimized APIs, specify the value of <code>distributionHostedZoneId</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     *        <dd>
     *        <p>
     *        Specify the hosted zone ID for your interface endpoint. You can get the value of <code>HostedZoneId</code>
     *        using the AWS CLI command <a
     *        href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     *        >describe-vpc-endpoints</a>.
     *        </p>
     *        </dd>
     *        <dt>CloudFront distribution</dt>
     *        <dd>
     *        <p>
     *        Specify <code>Z2FDTNDATAQYW2</code>.
     *        </p>
     *        <note>
     *        <p>
     *        Alias resource record sets for CloudFront can't be created in a private zone.
     *        </p>
     *        </note></dd>
     *        <dt>Elastic Beanstalk environment</dt>
     *        <dd>
     *        <p>
     *        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 <a
     *        href="http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region">AWS Elastic
     *        Beanstalk</a> in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General
     *        Reference</i>.
     *        </p>
     *        </dd>
     *        <dt>ELB load balancer</dt>
     *        <dd>
     *        <p>
     *        Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted
     *        zone ID:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region">Elastic Load Balancing</a>
     *        table in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>: 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.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <b>AWS Management Console</b>: Go to the Amazon EC2 page, choose <b>Load Balancers</b> in the navigation
     *        pane, select the load balancer, and get the value of the <b>Hosted zone</b> field on the
     *        <b>Description</b> tab.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the applicable value. For
     *        more information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: Use <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: Use <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        <li>
     *        <p>
     *        <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the applicable value. For more
     *        information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: Use <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     *        >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: Use <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     *        >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>An Amazon S3 bucket configured as a static website</dt>
     *        <dd>
     *        <p>
     *        Specify the hosted zone ID for the region that you created the bucket in. For more information about valid
     *        values, see the <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple
     *        Storage Service Website Endpoints</a> table in the "AWS Regions and Endpoints" chapter of the <i>Amazon
     *        Web Services General Reference</i>.
     *        </p>
     *        </dd>
     *        <dt>Another Route 53 resource record set in your hosted zone</dt>
     *        <dd>
     *        <p>
     *        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.)
     *        </p>
     *        </dd>
     */

    public void setHostedZoneId(String hostedZoneId) {
        this.hostedZoneId = hostedZoneId;
    }

    /**
     * <p>
     * <i>Alias resource records sets only</i>: The value used depends on where you want to route traffic:
     * </p>
     * <dl>
     * <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for your API. You can get the applicable value using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names</a>:
     * </p>
     * <ul>
     * <li>
     * <p>
     * For regional APIs, specify the value of <code>regionalHostedZoneId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * For edge-optimized APIs, specify the value of <code>distributionHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </dd>
     * <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for your interface endpoint. You can get the value of <code>HostedZoneId</code> using
     * the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html">describe
     * -vpc-endpoints</a>.
     * </p>
     * </dd>
     * <dt>CloudFront distribution</dt>
     * <dd>
     * <p>
     * Specify <code>Z2FDTNDATAQYW2</code>.
     * </p>
     * <note>
     * <p>
     * Alias resource record sets for CloudFront can't be created in a private zone.
     * </p>
     * </note></dd>
     * <dt>Elastic Beanstalk environment</dt>
     * <dd>
     * <p>
     * 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 <a
     * href="http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region">AWS Elastic Beanstalk</a>
     * in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>.
     * </p>
     * </dd>
     * <dt>ELB load balancer</dt>
     * <dd>
     * <p>
     * Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone
     * ID:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region">Elastic Load Balancing</a> table in
     * the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>: 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.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>AWS Management Console</b>: Go to the Amazon EC2 page, choose <b>Load Balancers</b> in the navigation pane,
     * select the load balancer, and get the value of the <b>Hosted zone</b> field on the <b>Description</b> tab.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the applicable value. For more
     * information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </li>
     * <li>
     * <p>
     * <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the applicable value. For more information, see
     * the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     * >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     * >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * </dd>
     * <dt>An Amazon S3 bucket configured as a static website</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for the region that you created the bucket in. For more information about valid
     * values, see the <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage
     * Service Website Endpoints</a> table in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services
     * General Reference</i>.
     * </p>
     * </dd>
     * <dt>Another Route 53 resource record set in your hosted zone</dt>
     * <dd>
     * <p>
     * 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.)
     * </p>
     * </dd>
     * </dl>
     * 
     * @return <i>Alias resource records sets only</i>: The value used depends on where you want to route traffic:</p>
     *         <dl>
     *         <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     *         <dd>
     *         <p>
     *         Specify the hosted zone ID for your API. You can get the applicable value using the AWS CLI command <a
     *         href
     *         ="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names<
     *         /a>:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         For regional APIs, specify the value of <code>regionalHostedZoneId</code>.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         For edge-optimized APIs, specify the value of <code>distributionHostedZoneId</code>.
     *         </p>
     *         </li>
     *         </ul>
     *         </dd>
     *         <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     *         <dd>
     *         <p>
     *         Specify the hosted zone ID for your interface endpoint. You can get the value of
     *         <code>HostedZoneId</code> using the AWS CLI command <a
     *         href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     *         >describe-vpc-endpoints</a>.
     *         </p>
     *         </dd>
     *         <dt>CloudFront distribution</dt>
     *         <dd>
     *         <p>
     *         Specify <code>Z2FDTNDATAQYW2</code>.
     *         </p>
     *         <note>
     *         <p>
     *         Alias resource record sets for CloudFront can't be created in a private zone.
     *         </p>
     *         </note></dd>
     *         <dt>Elastic Beanstalk environment</dt>
     *         <dd>
     *         <p>
     *         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 <a
     *         href="http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region">AWS Elastic
     *         Beanstalk</a> in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General
     *         Reference</i>.
     *         </p>
     *         </dd>
     *         <dt>ELB load balancer</dt>
     *         <dd>
     *         <p>
     *         Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the
     *         hosted zone ID:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region">Elastic Load Balancing</a>
     *         table in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>: 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.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         <b>AWS Management Console</b>: Go to the Amazon EC2 page, choose <b>Load Balancers</b> in the navigation
     *         pane, select the load balancer, and get the value of the <b>Hosted zone</b> field on the
     *         <b>Description</b> tab.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the applicable value.
     *         For more information, see the applicable guide:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         Classic Load Balancers: Use <a href=
     *         "http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     *         >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         Application and Network Load Balancers: Use <a href=
     *         "http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     *         >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     *         </p>
     *         </li>
     *         </ul>
     *         </li>
     *         <li>
     *         <p>
     *         <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the applicable value. For more
     *         information, see the applicable guide:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         Classic Load Balancers: Use <a
     *         href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     *         >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         Application and Network Load Balancers: Use <a
     *         href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     *         >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     *         </p>
     *         </li>
     *         </ul>
     *         </li>
     *         </ul>
     *         </dd>
     *         <dt>An Amazon S3 bucket configured as a static website</dt>
     *         <dd>
     *         <p>
     *         Specify the hosted zone ID for the region that you created the bucket in. For more information about
     *         valid values, see the <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon
     *         Simple Storage Service Website Endpoints</a> table in the "AWS Regions and Endpoints" chapter of the
     *         <i>Amazon Web Services General Reference</i>.
     *         </p>
     *         </dd>
     *         <dt>Another Route 53 resource record set in your hosted zone</dt>
     *         <dd>
     *         <p>
     *         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.)
     *         </p>
     *         </dd>
     */

    public String getHostedZoneId() {
        return this.hostedZoneId;
    }

    /**
     * <p>
     * <i>Alias resource records sets only</i>: The value used depends on where you want to route traffic:
     * </p>
     * <dl>
     * <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for your API. You can get the applicable value using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names</a>:
     * </p>
     * <ul>
     * <li>
     * <p>
     * For regional APIs, specify the value of <code>regionalHostedZoneId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * For edge-optimized APIs, specify the value of <code>distributionHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </dd>
     * <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for your interface endpoint. You can get the value of <code>HostedZoneId</code> using
     * the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html">describe
     * -vpc-endpoints</a>.
     * </p>
     * </dd>
     * <dt>CloudFront distribution</dt>
     * <dd>
     * <p>
     * Specify <code>Z2FDTNDATAQYW2</code>.
     * </p>
     * <note>
     * <p>
     * Alias resource record sets for CloudFront can't be created in a private zone.
     * </p>
     * </note></dd>
     * <dt>Elastic Beanstalk environment</dt>
     * <dd>
     * <p>
     * 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 <a
     * href="http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region">AWS Elastic Beanstalk</a>
     * in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>.
     * </p>
     * </dd>
     * <dt>ELB load balancer</dt>
     * <dd>
     * <p>
     * Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone
     * ID:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region">Elastic Load Balancing</a> table in
     * the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>: 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.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>AWS Management Console</b>: Go to the Amazon EC2 page, choose <b>Load Balancers</b> in the navigation pane,
     * select the load balancer, and get the value of the <b>Hosted zone</b> field on the <b>Description</b> tab.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the applicable value. For more
     * information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </li>
     * <li>
     * <p>
     * <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the applicable value. For more information, see
     * the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     * >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: Use <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     * >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * </dd>
     * <dt>An Amazon S3 bucket configured as a static website</dt>
     * <dd>
     * <p>
     * Specify the hosted zone ID for the region that you created the bucket in. For more information about valid
     * values, see the <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage
     * Service Website Endpoints</a> table in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services
     * General Reference</i>.
     * </p>
     * </dd>
     * <dt>Another Route 53 resource record set in your hosted zone</dt>
     * <dd>
     * <p>
     * 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.)
     * </p>
     * </dd>
     * </dl>
     * 
     * @param hostedZoneId
     *        <i>Alias resource records sets only</i>: The value used depends on where you want to route traffic:</p>
     *        <dl>
     *        <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     *        <dd>
     *        <p>
     *        Specify the hosted zone ID for your API. You can get the applicable value using the AWS CLI command <a
     *        href
     *        ="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names</a>:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        For regional APIs, specify the value of <code>regionalHostedZoneId</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        For edge-optimized APIs, specify the value of <code>distributionHostedZoneId</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     *        <dd>
     *        <p>
     *        Specify the hosted zone ID for your interface endpoint. You can get the value of <code>HostedZoneId</code>
     *        using the AWS CLI command <a
     *        href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     *        >describe-vpc-endpoints</a>.
     *        </p>
     *        </dd>
     *        <dt>CloudFront distribution</dt>
     *        <dd>
     *        <p>
     *        Specify <code>Z2FDTNDATAQYW2</code>.
     *        </p>
     *        <note>
     *        <p>
     *        Alias resource record sets for CloudFront can't be created in a private zone.
     *        </p>
     *        </note></dd>
     *        <dt>Elastic Beanstalk environment</dt>
     *        <dd>
     *        <p>
     *        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 <a
     *        href="http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region">AWS Elastic
     *        Beanstalk</a> in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General
     *        Reference</i>.
     *        </p>
     *        </dd>
     *        <dt>ELB load balancer</dt>
     *        <dd>
     *        <p>
     *        Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted
     *        zone ID:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region">Elastic Load Balancing</a>
     *        table in the "AWS Regions and Endpoints" chapter of the <i>Amazon Web Services General Reference</i>: 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.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <b>AWS Management Console</b>: Go to the Amazon EC2 page, choose <b>Load Balancers</b> in the navigation
     *        pane, select the load balancer, and get the value of the <b>Hosted zone</b> field on the
     *        <b>Description</b> tab.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the applicable value. For
     *        more information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: Use <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: Use <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        <li>
     *        <p>
     *        <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the applicable value. For more
     *        information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: Use <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     *        >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneNameId</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: Use <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     *        >describe-load-balancers</a> to get the value of <code>CanonicalHostedZoneId</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>An Amazon S3 bucket configured as a static website</dt>
     *        <dd>
     *        <p>
     *        Specify the hosted zone ID for the region that you created the bucket in. For more information about valid
     *        values, see the <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple
     *        Storage Service Website Endpoints</a> table in the "AWS Regions and Endpoints" chapter of the <i>Amazon
     *        Web Services General Reference</i>.
     *        </p>
     *        </dd>
     *        <dt>Another Route 53 resource record set in your hosted zone</dt>
     *        <dd>
     *        <p>
     *        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.)
     *        </p>
     *        </dd>
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public AliasTarget withHostedZoneId(String hostedZoneId) {
        setHostedZoneId(hostedZoneId);
        return this;
    }

    /**
     * <p>
     * <i>Alias resource record sets only:</i> The value that you specify depends on where you want to route queries:
     * </p>
     * <dl>
     * <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     * <dd>
     * <p>
     * Specify the applicable domain name for your API. You can get the applicable value using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names</a>:
     * </p>
     * <ul>
     * <li>
     * <p>
     * For regional APIs, specify the value of <code>regionalDomainName</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * For edge-optimized APIs, specify the value of <code>distributionDomainName</code>. This is the name of the
     * associated CloudFront distribution, such as <code>da1b2c3d4e5.cloudfront.net</code>.
     * </p>
     * </li>
     * </ul>
     * <note>
     * <p>
     * The name of the record that you're creating must match a custom domain name for your API, such as
     * <code>api.example.com</code>.
     * </p>
     * </note></dd>
     * <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     * <dd>
     * <p>
     * Enter the API endpoint for the interface endpoint, such as
     * <code>vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com</code>. For
     * edge-optimized APIs, this is the domain name for the corresponding CloudFront distribution. You can get the value
     * of <code>DnsName</code> using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     * >describe-vpc-endpoints</a>.
     * </p>
     * </dd>
     * <dt>CloudFront distribution</dt>
     * <dd>
     * <p>
     * Specify the domain name that CloudFront assigned when you created your distribution.
     * </p>
     * <p>
     * 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 <i>acme.example.com</i>, your CloudFront distribution
     * must include <i>acme.example.com</i> as one of the alternate domain names. For more information, see <a
     * href="http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html">Using Alternate Domain Names
     * (CNAMEs)</a> in the <i>Amazon CloudFront Developer Guide</i>.
     * </p>
     * <p>
     * You can't create a resource record set in a private hosted zone to route traffic to a CloudFront distribution.
     * </p>
     * <note>
     * <p>
     * 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.
     * </p>
     * </note></dd>
     * <dt>Elastic Beanstalk environment</dt>
     * <dd>
     * <p>
     * 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
     * <code>my-environment.<i>us-west-2</i>.elasticbeanstalk.com</code> is a regionalized domain name.
     * </p>
     * <important>
     * <p>
     * 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.
     * </p>
     * </important>
     * <p>
     * For Elastic Beanstalk environments that have regionalized subdomains, specify the <code>CNAME</code> attribute
     * for the environment. You can use the following methods to get the value of the CNAME attribute:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <i>AWS Management Console</i>: For information about how to get the value by using the console, see <a
     * href="http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html">Using Custom Domains with AWS
     * Elastic Beanstalk</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.
     * </p>
     * </li>
     * <li>
     * <p>
     * <i>Elastic Beanstalk API</i>: Use the <code>DescribeEnvironments</code> action to get the value of the
     * <code>CNAME</code> attribute. For more information, see <a
     * href="http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html"
     * >DescribeEnvironments</a> in the <i>AWS Elastic Beanstalk API Reference</i>.
     * </p>
     * </li>
     * <li>
     * <p>
     * <i>AWS CLI</i>: Use the <code>describe-environments</code> command to get the value of the <code>CNAME</code>
     * attribute. For more information, see <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html"
     * >describe-environments</a> in the <i>AWS Command Line Interface Reference</i>.
     * </p>
     * </li>
     * </ul>
     * </dd>
     * <dt>ELB load balancer</dt>
     * <dd>
     * <p>
     * Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management
     * Console, the ELB API, or the AWS CLI.
     * </p>
     * <ul>
     * <li>
     * <p>
     * <b>AWS Management Console</b>: Go to the EC2 page, choose <b>Load Balancers</b> in the navigation pane, choose
     * the load balancer, choose the <b>Description</b> tab, and get the value of the <b>DNS name</b> field.
     * </p>
     * <p>
     * If you're routing traffic to a Classic Load Balancer, get the value that begins with <b>dualstack</b>. If you're
     * routing traffic to another type of load balancer, get the value that applies to the record type, A or AAAA.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the value of
     * <code>DNSName</code>. For more information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a>
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a>
     * </p>
     * </li>
     * </ul>
     * </li>
     * <li>
     * <p>
     * <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the value of <code>DNSName</code>. For more
     * information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     * >describe-load-balancers</a>
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     * >describe-load-balancers</a>
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * </dd>
     * <dt>Amazon S3 bucket that is configured as a static website</dt>
     * <dd>
     * <p>
     * Specify the domain name of the Amazon S3 website endpoint that you created the bucket in, for example,
     * <code>s3-website.us-east-2.amazonaws.com</code>. For more information about valid values, see the table <a
     * href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage Service (S3)
     * Website Endpoints</a> in the <i>Amazon Web Services General Reference</i>. For more information about using S3
     * buckets for websites, see <a
     * href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with Amazon
     * Route 53</a> in the <i>Amazon Route 53 Developer Guide.</i>
     * </p>
     * </dd>
     * <dt>Another Route 53 resource record set</dt>
     * <dd>
     * <p>
     * Specify the value of the <code>Name</code> element for a resource record set in the current hosted zone.
     * </p>
     * <note>
     * <p>
     * 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 <code>Type</code> is <code>CNAME</code>. 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.
     * </p>
     * </note></dd>
     * </dl>
     * 
     * @param dNSName
     *        <i>Alias resource record sets only:</i> The value that you specify depends on where you want to route
     *        queries:</p>
     *        <dl>
     *        <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     *        <dd>
     *        <p>
     *        Specify the applicable domain name for your API. You can get the applicable value using the AWS CLI
     *        command <a
     *        href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain
     *        -names</a>:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        For regional APIs, specify the value of <code>regionalDomainName</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        For edge-optimized APIs, specify the value of <code>distributionDomainName</code>. This is the name of the
     *        associated CloudFront distribution, such as <code>da1b2c3d4e5.cloudfront.net</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        <note>
     *        <p>
     *        The name of the record that you're creating must match a custom domain name for your API, such as
     *        <code>api.example.com</code>.
     *        </p>
     *        </note></dd>
     *        <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     *        <dd>
     *        <p>
     *        Enter the API endpoint for the interface endpoint, such as
     *        <code>vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com</code>.
     *        For edge-optimized APIs, this is the domain name for the corresponding CloudFront distribution. You can
     *        get the value of <code>DnsName</code> using the AWS CLI command <a
     *        href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     *        >describe-vpc-endpoints</a>.
     *        </p>
     *        </dd>
     *        <dt>CloudFront distribution</dt>
     *        <dd>
     *        <p>
     *        Specify the domain name that CloudFront assigned when you created your distribution.
     *        </p>
     *        <p>
     *        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 <i>acme.example.com</i>, your
     *        CloudFront distribution must include <i>acme.example.com</i> as one of the alternate domain names. For
     *        more information, see <a
     *        href="http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html">Using Alternate
     *        Domain Names (CNAMEs)</a> in the <i>Amazon CloudFront Developer Guide</i>.
     *        </p>
     *        <p>
     *        You can't create a resource record set in a private hosted zone to route traffic to a CloudFront
     *        distribution.
     *        </p>
     *        <note>
     *        <p>
     *        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.
     *        </p>
     *        </note></dd>
     *        <dt>Elastic Beanstalk environment</dt>
     *        <dd>
     *        <p>
     *        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 <code>my-environment.<i>us-west-2</i>.elasticbeanstalk.com</code> is a regionalized domain
     *        name.
     *        </p>
     *        <important>
     *        <p>
     *        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.
     *        </p>
     *        </important>
     *        <p>
     *        For Elastic Beanstalk environments that have regionalized subdomains, specify the <code>CNAME</code>
     *        attribute for the environment. You can use the following methods to get the value of the CNAME attribute:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        <i>AWS Management Console</i>: For information about how to get the value by using the console, see <a
     *        href="http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html">Using Custom Domains with
     *        AWS Elastic Beanstalk</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <i>Elastic Beanstalk API</i>: Use the <code>DescribeEnvironments</code> action to get the value of the
     *        <code>CNAME</code> attribute. For more information, see <a
     *        href="http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html"
     *        >DescribeEnvironments</a> in the <i>AWS Elastic Beanstalk API Reference</i>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <i>AWS CLI</i>: Use the <code>describe-environments</code> command to get the value of the
     *        <code>CNAME</code> attribute. For more information, see <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html"
     *        >describe-environments</a> in the <i>AWS Command Line Interface Reference</i>.
     *        </p>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>ELB load balancer</dt>
     *        <dd>
     *        <p>
     *        Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS
     *        Management Console, the ELB API, or the AWS CLI.
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        <b>AWS Management Console</b>: Go to the EC2 page, choose <b>Load Balancers</b> in the navigation pane,
     *        choose the load balancer, choose the <b>Description</b> tab, and get the value of the <b>DNS name</b>
     *        field.
     *        </p>
     *        <p>
     *        If you're routing traffic to a Classic Load Balancer, get the value that begins with <b>dualstack</b>. If
     *        you're routing traffic to another type of load balancer, get the value that applies to the record type, A
     *        or AAAA.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the value of
     *        <code>DNSName</code>. For more information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a>
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a>
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        <li>
     *        <p>
     *        <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the value of <code>DNSName</code>. For
     *        more information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     *        >describe-load-balancers</a>
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     *        >describe-load-balancers</a>
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>Amazon S3 bucket that is configured as a static website</dt>
     *        <dd>
     *        <p>
     *        Specify the domain name of the Amazon S3 website endpoint that you created the bucket in, for example,
     *        <code>s3-website.us-east-2.amazonaws.com</code>. For more information about valid values, see the table <a
     *        href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage Service
     *        (S3) Website Endpoints</a> in the <i>Amazon Web Services General Reference</i>. For more information about
     *        using S3 buckets for websites, see <a
     *        href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with
     *        Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide.</i>
     *        </p>
     *        </dd>
     *        <dt>Another Route 53 resource record set</dt>
     *        <dd>
     *        <p>
     *        Specify the value of the <code>Name</code> element for a resource record set in the current hosted zone.
     *        </p>
     *        <note>
     *        <p>
     *        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 <code>Type</code> is <code>CNAME</code>.
     *        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.
     *        </p>
     *        </note></dd>
     */

    public void setDNSName(String dNSName) {
        this.dNSName = dNSName;
    }

    /**
     * <p>
     * <i>Alias resource record sets only:</i> The value that you specify depends on where you want to route queries:
     * </p>
     * <dl>
     * <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     * <dd>
     * <p>
     * Specify the applicable domain name for your API. You can get the applicable value using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names</a>:
     * </p>
     * <ul>
     * <li>
     * <p>
     * For regional APIs, specify the value of <code>regionalDomainName</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * For edge-optimized APIs, specify the value of <code>distributionDomainName</code>. This is the name of the
     * associated CloudFront distribution, such as <code>da1b2c3d4e5.cloudfront.net</code>.
     * </p>
     * </li>
     * </ul>
     * <note>
     * <p>
     * The name of the record that you're creating must match a custom domain name for your API, such as
     * <code>api.example.com</code>.
     * </p>
     * </note></dd>
     * <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     * <dd>
     * <p>
     * Enter the API endpoint for the interface endpoint, such as
     * <code>vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com</code>. For
     * edge-optimized APIs, this is the domain name for the corresponding CloudFront distribution. You can get the value
     * of <code>DnsName</code> using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     * >describe-vpc-endpoints</a>.
     * </p>
     * </dd>
     * <dt>CloudFront distribution</dt>
     * <dd>
     * <p>
     * Specify the domain name that CloudFront assigned when you created your distribution.
     * </p>
     * <p>
     * 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 <i>acme.example.com</i>, your CloudFront distribution
     * must include <i>acme.example.com</i> as one of the alternate domain names. For more information, see <a
     * href="http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html">Using Alternate Domain Names
     * (CNAMEs)</a> in the <i>Amazon CloudFront Developer Guide</i>.
     * </p>
     * <p>
     * You can't create a resource record set in a private hosted zone to route traffic to a CloudFront distribution.
     * </p>
     * <note>
     * <p>
     * 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.
     * </p>
     * </note></dd>
     * <dt>Elastic Beanstalk environment</dt>
     * <dd>
     * <p>
     * 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
     * <code>my-environment.<i>us-west-2</i>.elasticbeanstalk.com</code> is a regionalized domain name.
     * </p>
     * <important>
     * <p>
     * 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.
     * </p>
     * </important>
     * <p>
     * For Elastic Beanstalk environments that have regionalized subdomains, specify the <code>CNAME</code> attribute
     * for the environment. You can use the following methods to get the value of the CNAME attribute:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <i>AWS Management Console</i>: For information about how to get the value by using the console, see <a
     * href="http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html">Using Custom Domains with AWS
     * Elastic Beanstalk</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.
     * </p>
     * </li>
     * <li>
     * <p>
     * <i>Elastic Beanstalk API</i>: Use the <code>DescribeEnvironments</code> action to get the value of the
     * <code>CNAME</code> attribute. For more information, see <a
     * href="http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html"
     * >DescribeEnvironments</a> in the <i>AWS Elastic Beanstalk API Reference</i>.
     * </p>
     * </li>
     * <li>
     * <p>
     * <i>AWS CLI</i>: Use the <code>describe-environments</code> command to get the value of the <code>CNAME</code>
     * attribute. For more information, see <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html"
     * >describe-environments</a> in the <i>AWS Command Line Interface Reference</i>.
     * </p>
     * </li>
     * </ul>
     * </dd>
     * <dt>ELB load balancer</dt>
     * <dd>
     * <p>
     * Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management
     * Console, the ELB API, or the AWS CLI.
     * </p>
     * <ul>
     * <li>
     * <p>
     * <b>AWS Management Console</b>: Go to the EC2 page, choose <b>Load Balancers</b> in the navigation pane, choose
     * the load balancer, choose the <b>Description</b> tab, and get the value of the <b>DNS name</b> field.
     * </p>
     * <p>
     * If you're routing traffic to a Classic Load Balancer, get the value that begins with <b>dualstack</b>. If you're
     * routing traffic to another type of load balancer, get the value that applies to the record type, A or AAAA.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the value of
     * <code>DNSName</code>. For more information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a>
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a>
     * </p>
     * </li>
     * </ul>
     * </li>
     * <li>
     * <p>
     * <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the value of <code>DNSName</code>. For more
     * information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     * >describe-load-balancers</a>
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     * >describe-load-balancers</a>
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * </dd>
     * <dt>Amazon S3 bucket that is configured as a static website</dt>
     * <dd>
     * <p>
     * Specify the domain name of the Amazon S3 website endpoint that you created the bucket in, for example,
     * <code>s3-website.us-east-2.amazonaws.com</code>. For more information about valid values, see the table <a
     * href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage Service (S3)
     * Website Endpoints</a> in the <i>Amazon Web Services General Reference</i>. For more information about using S3
     * buckets for websites, see <a
     * href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with Amazon
     * Route 53</a> in the <i>Amazon Route 53 Developer Guide.</i>
     * </p>
     * </dd>
     * <dt>Another Route 53 resource record set</dt>
     * <dd>
     * <p>
     * Specify the value of the <code>Name</code> element for a resource record set in the current hosted zone.
     * </p>
     * <note>
     * <p>
     * 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 <code>Type</code> is <code>CNAME</code>. 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.
     * </p>
     * </note></dd>
     * </dl>
     * 
     * @return <i>Alias resource record sets only:</i> The value that you specify depends on where you want to route
     *         queries:</p>
     *         <dl>
     *         <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     *         <dd>
     *         <p>
     *         Specify the applicable domain name for your API. You can get the applicable value using the AWS CLI
     *         command <a
     *         href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain
     *         -names</a>:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         For regional APIs, specify the value of <code>regionalDomainName</code>.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         For edge-optimized APIs, specify the value of <code>distributionDomainName</code>. This is the name of
     *         the associated CloudFront distribution, such as <code>da1b2c3d4e5.cloudfront.net</code>.
     *         </p>
     *         </li>
     *         </ul>
     *         <note>
     *         <p>
     *         The name of the record that you're creating must match a custom domain name for your API, such as
     *         <code>api.example.com</code>.
     *         </p>
     *         </note></dd>
     *         <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     *         <dd>
     *         <p>
     *         Enter the API endpoint for the interface endpoint, such as
     *         <code>vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com</code>.
     *         For edge-optimized APIs, this is the domain name for the corresponding CloudFront distribution. You can
     *         get the value of <code>DnsName</code> using the AWS CLI command <a
     *         href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     *         >describe-vpc-endpoints</a>.
     *         </p>
     *         </dd>
     *         <dt>CloudFront distribution</dt>
     *         <dd>
     *         <p>
     *         Specify the domain name that CloudFront assigned when you created your distribution.
     *         </p>
     *         <p>
     *         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 <i>acme.example.com</i>, your
     *         CloudFront distribution must include <i>acme.example.com</i> as one of the alternate domain names. For
     *         more information, see <a
     *         href="http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html">Using Alternate
     *         Domain Names (CNAMEs)</a> in the <i>Amazon CloudFront Developer Guide</i>.
     *         </p>
     *         <p>
     *         You can't create a resource record set in a private hosted zone to route traffic to a CloudFront
     *         distribution.
     *         </p>
     *         <note>
     *         <p>
     *         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.
     *         </p>
     *         </note></dd>
     *         <dt>Elastic Beanstalk environment</dt>
     *         <dd>
     *         <p>
     *         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 <code>my-environment.<i>us-west-2</i>.elasticbeanstalk.com</code> is a regionalized domain
     *         name.
     *         </p>
     *         <important>
     *         <p>
     *         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.
     *         </p>
     *         </important>
     *         <p>
     *         For Elastic Beanstalk environments that have regionalized subdomains, specify the <code>CNAME</code>
     *         attribute for the environment. You can use the following methods to get the value of the CNAME attribute:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         <i>AWS Management Console</i>: For information about how to get the value by using the console, see <a
     *         href="http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html">Using Custom Domains with
     *         AWS Elastic Beanstalk</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         <i>Elastic Beanstalk API</i>: Use the <code>DescribeEnvironments</code> action to get the value of the
     *         <code>CNAME</code> attribute. For more information, see <a
     *         href="http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html"
     *         >DescribeEnvironments</a> in the <i>AWS Elastic Beanstalk API Reference</i>.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         <i>AWS CLI</i>: Use the <code>describe-environments</code> command to get the value of the
     *         <code>CNAME</code> attribute. For more information, see <a
     *         href="http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html"
     *         >describe-environments</a> in the <i>AWS Command Line Interface Reference</i>.
     *         </p>
     *         </li>
     *         </ul>
     *         </dd>
     *         <dt>ELB load balancer</dt>
     *         <dd>
     *         <p>
     *         Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS
     *         Management Console, the ELB API, or the AWS CLI.
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         <b>AWS Management Console</b>: Go to the EC2 page, choose <b>Load Balancers</b> in the navigation pane,
     *         choose the load balancer, choose the <b>Description</b> tab, and get the value of the <b>DNS name</b>
     *         field.
     *         </p>
     *         <p>
     *         If you're routing traffic to a Classic Load Balancer, get the value that begins with <b>dualstack</b>. If
     *         you're routing traffic to another type of load balancer, get the value that applies to the record type, A
     *         or AAAA.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the value of
     *         <code>DNSName</code>. For more information, see the applicable guide:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         Classic Load Balancers: <a href=
     *         "http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     *         >DescribeLoadBalancers</a>
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         Application and Network Load Balancers: <a href=
     *         "http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     *         >DescribeLoadBalancers</a>
     *         </p>
     *         </li>
     *         </ul>
     *         </li>
     *         <li>
     *         <p>
     *         <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the value of <code>DNSName</code>. For
     *         more information, see the applicable guide:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         Classic Load Balancers: <a
     *         href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     *         >describe-load-balancers</a>
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         Application and Network Load Balancers: <a
     *         href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     *         >describe-load-balancers</a>
     *         </p>
     *         </li>
     *         </ul>
     *         </li>
     *         </ul>
     *         </dd>
     *         <dt>Amazon S3 bucket that is configured as a static website</dt>
     *         <dd>
     *         <p>
     *         Specify the domain name of the Amazon S3 website endpoint that you created the bucket in, for example,
     *         <code>s3-website.us-east-2.amazonaws.com</code>. For more information about valid values, see the table
     *         <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage Service
     *         (S3) Website Endpoints</a> in the <i>Amazon Web Services General Reference</i>. For more information
     *         about using S3 buckets for websites, see <a
     *         href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with
     *         Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide.</i>
     *         </p>
     *         </dd>
     *         <dt>Another Route 53 resource record set</dt>
     *         <dd>
     *         <p>
     *         Specify the value of the <code>Name</code> element for a resource record set in the current hosted zone.
     *         </p>
     *         <note>
     *         <p>
     *         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 <code>Type</code> is
     *         <code>CNAME</code>. 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.
     *         </p>
     *         </note></dd>
     */

    public String getDNSName() {
        return this.dNSName;
    }

    /**
     * <p>
     * <i>Alias resource record sets only:</i> The value that you specify depends on where you want to route queries:
     * </p>
     * <dl>
     * <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     * <dd>
     * <p>
     * Specify the applicable domain name for your API. You can get the applicable value using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain-names</a>:
     * </p>
     * <ul>
     * <li>
     * <p>
     * For regional APIs, specify the value of <code>regionalDomainName</code>.
     * </p>
     * </li>
     * <li>
     * <p>
     * For edge-optimized APIs, specify the value of <code>distributionDomainName</code>. This is the name of the
     * associated CloudFront distribution, such as <code>da1b2c3d4e5.cloudfront.net</code>.
     * </p>
     * </li>
     * </ul>
     * <note>
     * <p>
     * The name of the record that you're creating must match a custom domain name for your API, such as
     * <code>api.example.com</code>.
     * </p>
     * </note></dd>
     * <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     * <dd>
     * <p>
     * Enter the API endpoint for the interface endpoint, such as
     * <code>vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com</code>. For
     * edge-optimized APIs, this is the domain name for the corresponding CloudFront distribution. You can get the value
     * of <code>DnsName</code> using the AWS CLI command <a
     * href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     * >describe-vpc-endpoints</a>.
     * </p>
     * </dd>
     * <dt>CloudFront distribution</dt>
     * <dd>
     * <p>
     * Specify the domain name that CloudFront assigned when you created your distribution.
     * </p>
     * <p>
     * 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 <i>acme.example.com</i>, your CloudFront distribution
     * must include <i>acme.example.com</i> as one of the alternate domain names. For more information, see <a
     * href="http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html">Using Alternate Domain Names
     * (CNAMEs)</a> in the <i>Amazon CloudFront Developer Guide</i>.
     * </p>
     * <p>
     * You can't create a resource record set in a private hosted zone to route traffic to a CloudFront distribution.
     * </p>
     * <note>
     * <p>
     * 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.
     * </p>
     * </note></dd>
     * <dt>Elastic Beanstalk environment</dt>
     * <dd>
     * <p>
     * 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
     * <code>my-environment.<i>us-west-2</i>.elasticbeanstalk.com</code> is a regionalized domain name.
     * </p>
     * <important>
     * <p>
     * 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.
     * </p>
     * </important>
     * <p>
     * For Elastic Beanstalk environments that have regionalized subdomains, specify the <code>CNAME</code> attribute
     * for the environment. You can use the following methods to get the value of the CNAME attribute:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <i>AWS Management Console</i>: For information about how to get the value by using the console, see <a
     * href="http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html">Using Custom Domains with AWS
     * Elastic Beanstalk</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.
     * </p>
     * </li>
     * <li>
     * <p>
     * <i>Elastic Beanstalk API</i>: Use the <code>DescribeEnvironments</code> action to get the value of the
     * <code>CNAME</code> attribute. For more information, see <a
     * href="http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html"
     * >DescribeEnvironments</a> in the <i>AWS Elastic Beanstalk API Reference</i>.
     * </p>
     * </li>
     * <li>
     * <p>
     * <i>AWS CLI</i>: Use the <code>describe-environments</code> command to get the value of the <code>CNAME</code>
     * attribute. For more information, see <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html"
     * >describe-environments</a> in the <i>AWS Command Line Interface Reference</i>.
     * </p>
     * </li>
     * </ul>
     * </dd>
     * <dt>ELB load balancer</dt>
     * <dd>
     * <p>
     * Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management
     * Console, the ELB API, or the AWS CLI.
     * </p>
     * <ul>
     * <li>
     * <p>
     * <b>AWS Management Console</b>: Go to the EC2 page, choose <b>Load Balancers</b> in the navigation pane, choose
     * the load balancer, choose the <b>Description</b> tab, and get the value of the <b>DNS name</b> field.
     * </p>
     * <p>
     * If you're routing traffic to a Classic Load Balancer, get the value that begins with <b>dualstack</b>. If you're
     * routing traffic to another type of load balancer, get the value that applies to the record type, A or AAAA.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the value of
     * <code>DNSName</code>. For more information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a>
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: <a
     * href="http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     * >DescribeLoadBalancers</a>
     * </p>
     * </li>
     * </ul>
     * </li>
     * <li>
     * <p>
     * <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the value of <code>DNSName</code>. For more
     * information, see the applicable guide:
     * </p>
     * <ul>
     * <li>
     * <p>
     * Classic Load Balancers: <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     * >describe-load-balancers</a>
     * </p>
     * </li>
     * <li>
     * <p>
     * Application and Network Load Balancers: <a
     * href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     * >describe-load-balancers</a>
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * </dd>
     * <dt>Amazon S3 bucket that is configured as a static website</dt>
     * <dd>
     * <p>
     * Specify the domain name of the Amazon S3 website endpoint that you created the bucket in, for example,
     * <code>s3-website.us-east-2.amazonaws.com</code>. For more information about valid values, see the table <a
     * href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage Service (S3)
     * Website Endpoints</a> in the <i>Amazon Web Services General Reference</i>. For more information about using S3
     * buckets for websites, see <a
     * href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with Amazon
     * Route 53</a> in the <i>Amazon Route 53 Developer Guide.</i>
     * </p>
     * </dd>
     * <dt>Another Route 53 resource record set</dt>
     * <dd>
     * <p>
     * Specify the value of the <code>Name</code> element for a resource record set in the current hosted zone.
     * </p>
     * <note>
     * <p>
     * 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 <code>Type</code> is <code>CNAME</code>. 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.
     * </p>
     * </note></dd>
     * </dl>
     * 
     * @param dNSName
     *        <i>Alias resource record sets only:</i> The value that you specify depends on where you want to route
     *        queries:</p>
     *        <dl>
     *        <dt>Amazon API Gateway custom regional APIs and edge-optimized APIs</dt>
     *        <dd>
     *        <p>
     *        Specify the applicable domain name for your API. You can get the applicable value using the AWS CLI
     *        command <a
     *        href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html">get-domain
     *        -names</a>:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        For regional APIs, specify the value of <code>regionalDomainName</code>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        For edge-optimized APIs, specify the value of <code>distributionDomainName</code>. This is the name of the
     *        associated CloudFront distribution, such as <code>da1b2c3d4e5.cloudfront.net</code>.
     *        </p>
     *        </li>
     *        </ul>
     *        <note>
     *        <p>
     *        The name of the record that you're creating must match a custom domain name for your API, such as
     *        <code>api.example.com</code>.
     *        </p>
     *        </note></dd>
     *        <dt>Amazon Virtual Private Cloud interface VPC endpoint</dt>
     *        <dd>
     *        <p>
     *        Enter the API endpoint for the interface endpoint, such as
     *        <code>vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com</code>.
     *        For edge-optimized APIs, this is the domain name for the corresponding CloudFront distribution. You can
     *        get the value of <code>DnsName</code> using the AWS CLI command <a
     *        href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html"
     *        >describe-vpc-endpoints</a>.
     *        </p>
     *        </dd>
     *        <dt>CloudFront distribution</dt>
     *        <dd>
     *        <p>
     *        Specify the domain name that CloudFront assigned when you created your distribution.
     *        </p>
     *        <p>
     *        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 <i>acme.example.com</i>, your
     *        CloudFront distribution must include <i>acme.example.com</i> as one of the alternate domain names. For
     *        more information, see <a
     *        href="http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html">Using Alternate
     *        Domain Names (CNAMEs)</a> in the <i>Amazon CloudFront Developer Guide</i>.
     *        </p>
     *        <p>
     *        You can't create a resource record set in a private hosted zone to route traffic to a CloudFront
     *        distribution.
     *        </p>
     *        <note>
     *        <p>
     *        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.
     *        </p>
     *        </note></dd>
     *        <dt>Elastic Beanstalk environment</dt>
     *        <dd>
     *        <p>
     *        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 <code>my-environment.<i>us-west-2</i>.elasticbeanstalk.com</code> is a regionalized domain
     *        name.
     *        </p>
     *        <important>
     *        <p>
     *        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.
     *        </p>
     *        </important>
     *        <p>
     *        For Elastic Beanstalk environments that have regionalized subdomains, specify the <code>CNAME</code>
     *        attribute for the environment. You can use the following methods to get the value of the CNAME attribute:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        <i>AWS Management Console</i>: For information about how to get the value by using the console, see <a
     *        href="http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html">Using Custom Domains with
     *        AWS Elastic Beanstalk</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <i>Elastic Beanstalk API</i>: Use the <code>DescribeEnvironments</code> action to get the value of the
     *        <code>CNAME</code> attribute. For more information, see <a
     *        href="http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html"
     *        >DescribeEnvironments</a> in the <i>AWS Elastic Beanstalk API Reference</i>.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <i>AWS CLI</i>: Use the <code>describe-environments</code> command to get the value of the
     *        <code>CNAME</code> attribute. For more information, see <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html"
     *        >describe-environments</a> in the <i>AWS Command Line Interface Reference</i>.
     *        </p>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>ELB load balancer</dt>
     *        <dd>
     *        <p>
     *        Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS
     *        Management Console, the ELB API, or the AWS CLI.
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        <b>AWS Management Console</b>: Go to the EC2 page, choose <b>Load Balancers</b> in the navigation pane,
     *        choose the load balancer, choose the <b>Description</b> tab, and get the value of the <b>DNS name</b>
     *        field.
     *        </p>
     *        <p>
     *        If you're routing traffic to a Classic Load Balancer, get the value that begins with <b>dualstack</b>. If
     *        you're routing traffic to another type of load balancer, get the value that applies to the record type, A
     *        or AAAA.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <b>Elastic Load Balancing API</b>: Use <code>DescribeLoadBalancers</code> to get the value of
     *        <code>DNSName</code>. For more information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a>
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: <a href=
     *        "http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html"
     *        >DescribeLoadBalancers</a>
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        <li>
     *        <p>
     *        <b>AWS CLI</b>: Use <code>describe-load-balancers</code> to get the value of <code>DNSName</code>. For
     *        more information, see the applicable guide:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        Classic Load Balancers: <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html"
     *        >describe-load-balancers</a>
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        Application and Network Load Balancers: <a
     *        href="http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html"
     *        >describe-load-balancers</a>
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        </ul>
     *        </dd>
     *        <dt>Amazon S3 bucket that is configured as a static website</dt>
     *        <dd>
     *        <p>
     *        Specify the domain name of the Amazon S3 website endpoint that you created the bucket in, for example,
     *        <code>s3-website.us-east-2.amazonaws.com</code>. For more information about valid values, see the table <a
     *        href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Amazon Simple Storage Service
     *        (S3) Website Endpoints</a> in the <i>Amazon Web Services General Reference</i>. For more information about
     *        using S3 buckets for websites, see <a
     *        href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with
     *        Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide.</i>
     *        </p>
     *        </dd>
     *        <dt>Another Route 53 resource record set</dt>
     *        <dd>
     *        <p>
     *        Specify the value of the <code>Name</code> element for a resource record set in the current hosted zone.
     *        </p>
     *        <note>
     *        <p>
     *        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 <code>Type</code> is <code>CNAME</code>.
     *        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.
     *        </p>
     *        </note></dd>
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public AliasTarget withDNSName(String dNSName) {
        setDNSName(dNSName);
        return this;
    }

    /**
     * <p>
     * <i>Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record
     * sets:</i> When <code>EvaluateTargetHealth</code> is <code>true</code>, an alias resource record set inherits the
     * health of the referenced AWS resource, such as an ELB load balancer or another resource record set in the hosted
     * zone.
     * </p>
     * <p>
     * Note the following:
     * </p>
     * <dl>
     * <dt>CloudFront distributions</dt>
     * <dd>
     * <p>
     * You can't set <code>EvaluateTargetHealth</code> to <code>true</code> when the alias target is a CloudFront
     * distribution.
     * </p>
     * </dd>
     * <dt>Elastic Beanstalk environments that have regionalized subdomains</dt>
     * <dd>
     * <p>
     * If you specify an Elastic Beanstalk environment in <code>DNSName</code> 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 <code>EvaluateTargetHealth</code> to <code>true</code> 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.
     * </p>
     * <p>
     * If the environment contains a single Amazon EC2 instance, there are no special requirements.
     * </p>
     * </dd>
     * <dt>ELB load balancers</dt>
     * <dd>
     * <p>
     * Health checking behavior depends on the type of load balancer:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <b>Classic Load Balancers</b>: If you specify an ELB Classic Load Balancer in <code>DNSName</code>, Elastic Load
     * Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. If
     * you set <code>EvaluateTargetHealth</code> to <code>true</code> and either no EC2 instances are healthy or the
     * load balancer itself is unhealthy, Route 53 routes queries to other resources.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Application and Network Load Balancers</b>: If you specify an ELB Application or Network Load Balancer and you
     * set <code>EvaluateTargetHealth</code> to <code>true</code>, Route 53 routes queries to the load balancer based on
     * the health of the target groups that are associated with the load balancer:
     * </p>
     * <ul>
     * <li>
     * <p>
     * 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.
     * </p>
     * </li>
     * <li>
     * <p>
     * A target group that has no registered targets is considered unhealthy.
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * <note>
     * <p>
     * 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.
     * </p>
     * </note></dd>
     * <dt>S3 buckets</dt>
     * <dd>
     * <p>
     * There are no special requirements for setting <code>EvaluateTargetHealth</code> to <code>true</code> when the
     * alias target is an S3 bucket.
     * </p>
     * </dd>
     * <dt>Other records in the same hosted zone</dt>
     * <dd>
     * <p>
     * If the AWS resource that you specify in <code>DNSName</code> 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 <a href=
     * "http://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?</a> in the <i>Amazon Route 53 Developer Guide</i>.
     * </p>
     * </dd>
     * </dl>
     * <p>
     * For more information and examples, see <a
     * href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html">Amazon Route 53 Health Checks
     * and DNS Failover</a> in the <i>Amazon Route 53 Developer Guide</i>.
     * </p>
     * 
     * @param evaluateTargetHealth
     *        <i>Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource
     *        record sets:</i> When <code>EvaluateTargetHealth</code> is <code>true</code>, an alias resource record set
     *        inherits the health of the referenced AWS resource, such as an ELB load balancer or another resource
     *        record set in the hosted zone.</p>
     *        <p>
     *        Note the following:
     *        </p>
     *        <dl>
     *        <dt>CloudFront distributions</dt>
     *        <dd>
     *        <p>
     *        You can't set <code>EvaluateTargetHealth</code> to <code>true</code> when the alias target is a CloudFront
     *        distribution.
     *        </p>
     *        </dd>
     *        <dt>Elastic Beanstalk environments that have regionalized subdomains</dt>
     *        <dd>
     *        <p>
     *        If you specify an Elastic Beanstalk environment in <code>DNSName</code> 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 <code>EvaluateTargetHealth</code> to
     *        <code>true</code> 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.
     *        </p>
     *        <p>
     *        If the environment contains a single Amazon EC2 instance, there are no special requirements.
     *        </p>
     *        </dd>
     *        <dt>ELB load balancers</dt>
     *        <dd>
     *        <p>
     *        Health checking behavior depends on the type of load balancer:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        <b>Classic Load Balancers</b>: If you specify an ELB Classic Load Balancer in <code>DNSName</code>,
     *        Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with
     *        the load balancer. If you set <code>EvaluateTargetHealth</code> to <code>true</code> and either no EC2
     *        instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other
     *        resources.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <b>Application and Network Load Balancers</b>: If you specify an ELB Application or Network Load Balancer
     *        and you set <code>EvaluateTargetHealth</code> to <code>true</code>, Route 53 routes queries to the load
     *        balancer based on the health of the target groups that are associated with the load balancer:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        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.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        A target group that has no registered targets is considered unhealthy.
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        </ul>
     *        <note>
     *        <p>
     *        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.
     *        </p>
     *        </note></dd>
     *        <dt>S3 buckets</dt>
     *        <dd>
     *        <p>
     *        There are no special requirements for setting <code>EvaluateTargetHealth</code> to <code>true</code> when
     *        the alias target is an S3 bucket.
     *        </p>
     *        </dd>
     *        <dt>Other records in the same hosted zone</dt>
     *        <dd>
     *        <p>
     *        If the AWS resource that you specify in <code>DNSName</code> 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 <a href=
     *        "http://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?</a> in the <i>Amazon Route 53 Developer Guide</i>.
     *        </p>
     *        </dd>
     *        </dl>
     *        <p>
     *        For more information and examples, see <a
     *        href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html">Amazon Route 53 Health
     *        Checks and DNS Failover</a> in the <i>Amazon Route 53 Developer Guide</i>.
     */

    public void setEvaluateTargetHealth(Boolean evaluateTargetHealth) {
        this.evaluateTargetHealth = evaluateTargetHealth;
    }

    /**
     * <p>
     * <i>Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record
     * sets:</i> When <code>EvaluateTargetHealth</code> is <code>true</code>, an alias resource record set inherits the
     * health of the referenced AWS resource, such as an ELB load balancer or another resource record set in the hosted
     * zone.
     * </p>
     * <p>
     * Note the following:
     * </p>
     * <dl>
     * <dt>CloudFront distributions</dt>
     * <dd>
     * <p>
     * You can't set <code>EvaluateTargetHealth</code> to <code>true</code> when the alias target is a CloudFront
     * distribution.
     * </p>
     * </dd>
     * <dt>Elastic Beanstalk environments that have regionalized subdomains</dt>
     * <dd>
     * <p>
     * If you specify an Elastic Beanstalk environment in <code>DNSName</code> 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 <code>EvaluateTargetHealth</code> to <code>true</code> 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.
     * </p>
     * <p>
     * If the environment contains a single Amazon EC2 instance, there are no special requirements.
     * </p>
     * </dd>
     * <dt>ELB load balancers</dt>
     * <dd>
     * <p>
     * Health checking behavior depends on the type of load balancer:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <b>Classic Load Balancers</b>: If you specify an ELB Classic Load Balancer in <code>DNSName</code>, Elastic Load
     * Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. If
     * you set <code>EvaluateTargetHealth</code> to <code>true</code> and either no EC2 instances are healthy or the
     * load balancer itself is unhealthy, Route 53 routes queries to other resources.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Application and Network Load Balancers</b>: If you specify an ELB Application or Network Load Balancer and you
     * set <code>EvaluateTargetHealth</code> to <code>true</code>, Route 53 routes queries to the load balancer based on
     * the health of the target groups that are associated with the load balancer:
     * </p>
     * <ul>
     * <li>
     * <p>
     * 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.
     * </p>
     * </li>
     * <li>
     * <p>
     * A target group that has no registered targets is considered unhealthy.
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * <note>
     * <p>
     * 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.
     * </p>
     * </note></dd>
     * <dt>S3 buckets</dt>
     * <dd>
     * <p>
     * There are no special requirements for setting <code>EvaluateTargetHealth</code> to <code>true</code> when the
     * alias target is an S3 bucket.
     * </p>
     * </dd>
     * <dt>Other records in the same hosted zone</dt>
     * <dd>
     * <p>
     * If the AWS resource that you specify in <code>DNSName</code> 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 <a href=
     * "http://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?</a> in the <i>Amazon Route 53 Developer Guide</i>.
     * </p>
     * </dd>
     * </dl>
     * <p>
     * For more information and examples, see <a
     * href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html">Amazon Route 53 Health Checks
     * and DNS Failover</a> in the <i>Amazon Route 53 Developer Guide</i>.
     * </p>
     * 
     * @return <i>Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource
     *         record sets:</i> When <code>EvaluateTargetHealth</code> is <code>true</code>, an alias resource record
     *         set inherits the health of the referenced AWS resource, such as an ELB load balancer or another resource
     *         record set in the hosted zone.</p>
     *         <p>
     *         Note the following:
     *         </p>
     *         <dl>
     *         <dt>CloudFront distributions</dt>
     *         <dd>
     *         <p>
     *         You can't set <code>EvaluateTargetHealth</code> to <code>true</code> when the alias target is a
     *         CloudFront distribution.
     *         </p>
     *         </dd>
     *         <dt>Elastic Beanstalk environments that have regionalized subdomains</dt>
     *         <dd>
     *         <p>
     *         If you specify an Elastic Beanstalk environment in <code>DNSName</code> 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 <code>EvaluateTargetHealth</code> to
     *         <code>true</code> 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.
     *         </p>
     *         <p>
     *         If the environment contains a single Amazon EC2 instance, there are no special requirements.
     *         </p>
     *         </dd>
     *         <dt>ELB load balancers</dt>
     *         <dd>
     *         <p>
     *         Health checking behavior depends on the type of load balancer:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         <b>Classic Load Balancers</b>: If you specify an ELB Classic Load Balancer in <code>DNSName</code>,
     *         Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with
     *         the load balancer. If you set <code>EvaluateTargetHealth</code> to <code>true</code> and either no EC2
     *         instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other
     *         resources.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         <b>Application and Network Load Balancers</b>: If you specify an ELB Application or Network Load Balancer
     *         and you set <code>EvaluateTargetHealth</code> to <code>true</code>, Route 53 routes queries to the load
     *         balancer based on the health of the target groups that are associated with the load balancer:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         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.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         A target group that has no registered targets is considered unhealthy.
     *         </p>
     *         </li>
     *         </ul>
     *         </li>
     *         </ul>
     *         <note>
     *         <p>
     *         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.
     *         </p>
     *         </note></dd>
     *         <dt>S3 buckets</dt>
     *         <dd>
     *         <p>
     *         There are no special requirements for setting <code>EvaluateTargetHealth</code> to <code>true</code> when
     *         the alias target is an S3 bucket.
     *         </p>
     *         </dd>
     *         <dt>Other records in the same hosted zone</dt>
     *         <dd>
     *         <p>
     *         If the AWS resource that you specify in <code>DNSName</code> 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 <a href=
     *         "http://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?</a> in the <i>Amazon Route 53 Developer Guide</i>.
     *         </p>
     *         </dd>
     *         </dl>
     *         <p>
     *         For more information and examples, see <a
     *         href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html">Amazon Route 53 Health
     *         Checks and DNS Failover</a> in the <i>Amazon Route 53 Developer Guide</i>.
     */

    public Boolean getEvaluateTargetHealth() {
        return this.evaluateTargetHealth;
    }

    /**
     * <p>
     * <i>Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record
     * sets:</i> When <code>EvaluateTargetHealth</code> is <code>true</code>, an alias resource record set inherits the
     * health of the referenced AWS resource, such as an ELB load balancer or another resource record set in the hosted
     * zone.
     * </p>
     * <p>
     * Note the following:
     * </p>
     * <dl>
     * <dt>CloudFront distributions</dt>
     * <dd>
     * <p>
     * You can't set <code>EvaluateTargetHealth</code> to <code>true</code> when the alias target is a CloudFront
     * distribution.
     * </p>
     * </dd>
     * <dt>Elastic Beanstalk environments that have regionalized subdomains</dt>
     * <dd>
     * <p>
     * If you specify an Elastic Beanstalk environment in <code>DNSName</code> 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 <code>EvaluateTargetHealth</code> to <code>true</code> 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.
     * </p>
     * <p>
     * If the environment contains a single Amazon EC2 instance, there are no special requirements.
     * </p>
     * </dd>
     * <dt>ELB load balancers</dt>
     * <dd>
     * <p>
     * Health checking behavior depends on the type of load balancer:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <b>Classic Load Balancers</b>: If you specify an ELB Classic Load Balancer in <code>DNSName</code>, Elastic Load
     * Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. If
     * you set <code>EvaluateTargetHealth</code> to <code>true</code> and either no EC2 instances are healthy or the
     * load balancer itself is unhealthy, Route 53 routes queries to other resources.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Application and Network Load Balancers</b>: If you specify an ELB Application or Network Load Balancer and you
     * set <code>EvaluateTargetHealth</code> to <code>true</code>, Route 53 routes queries to the load balancer based on
     * the health of the target groups that are associated with the load balancer:
     * </p>
     * <ul>
     * <li>
     * <p>
     * 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.
     * </p>
     * </li>
     * <li>
     * <p>
     * A target group that has no registered targets is considered unhealthy.
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * <note>
     * <p>
     * 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.
     * </p>
     * </note></dd>
     * <dt>S3 buckets</dt>
     * <dd>
     * <p>
     * There are no special requirements for setting <code>EvaluateTargetHealth</code> to <code>true</code> when the
     * alias target is an S3 bucket.
     * </p>
     * </dd>
     * <dt>Other records in the same hosted zone</dt>
     * <dd>
     * <p>
     * If the AWS resource that you specify in <code>DNSName</code> 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 <a href=
     * "http://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?</a> in the <i>Amazon Route 53 Developer Guide</i>.
     * </p>
     * </dd>
     * </dl>
     * <p>
     * For more information and examples, see <a
     * href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html">Amazon Route 53 Health Checks
     * and DNS Failover</a> in the <i>Amazon Route 53 Developer Guide</i>.
     * </p>
     * 
     * @param evaluateTargetHealth
     *        <i>Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource
     *        record sets:</i> When <code>EvaluateTargetHealth</code> is <code>true</code>, an alias resource record set
     *        inherits the health of the referenced AWS resource, such as an ELB load balancer or another resource
     *        record set in the hosted zone.</p>
     *        <p>
     *        Note the following:
     *        </p>
     *        <dl>
     *        <dt>CloudFront distributions</dt>
     *        <dd>
     *        <p>
     *        You can't set <code>EvaluateTargetHealth</code> to <code>true</code> when the alias target is a CloudFront
     *        distribution.
     *        </p>
     *        </dd>
     *        <dt>Elastic Beanstalk environments that have regionalized subdomains</dt>
     *        <dd>
     *        <p>
     *        If you specify an Elastic Beanstalk environment in <code>DNSName</code> 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 <code>EvaluateTargetHealth</code> to
     *        <code>true</code> 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.
     *        </p>
     *        <p>
     *        If the environment contains a single Amazon EC2 instance, there are no special requirements.
     *        </p>
     *        </dd>
     *        <dt>ELB load balancers</dt>
     *        <dd>
     *        <p>
     *        Health checking behavior depends on the type of load balancer:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        <b>Classic Load Balancers</b>: If you specify an ELB Classic Load Balancer in <code>DNSName</code>,
     *        Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with
     *        the load balancer. If you set <code>EvaluateTargetHealth</code> to <code>true</code> and either no EC2
     *        instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other
     *        resources.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        <b>Application and Network Load Balancers</b>: If you specify an ELB Application or Network Load Balancer
     *        and you set <code>EvaluateTargetHealth</code> to <code>true</code>, Route 53 routes queries to the load
     *        balancer based on the health of the target groups that are associated with the load balancer:
     *        </p>
     *        <ul>
     *        <li>
     *        <p>
     *        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.
     *        </p>
     *        </li>
     *        <li>
     *        <p>
     *        A target group that has no registered targets is considered unhealthy.
     *        </p>
     *        </li>
     *        </ul>
     *        </li>
     *        </ul>
     *        <note>
     *        <p>
     *        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.
     *        </p>
     *        </note></dd>
     *        <dt>S3 buckets</dt>
     *        <dd>
     *        <p>
     *        There are no special requirements for setting <code>EvaluateTargetHealth</code> to <code>true</code> when
     *        the alias target is an S3 bucket.
     *        </p>
     *        </dd>
     *        <dt>Other records in the same hosted zone</dt>
     *        <dd>
     *        <p>
     *        If the AWS resource that you specify in <code>DNSName</code> 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 <a href=
     *        "http://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?</a> in the <i>Amazon Route 53 Developer Guide</i>.
     *        </p>
     *        </dd>
     *        </dl>
     *        <p>
     *        For more information and examples, see <a
     *        href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html">Amazon Route 53 Health
     *        Checks and DNS Failover</a> in the <i>Amazon Route 53 Developer Guide</i>.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public AliasTarget withEvaluateTargetHealth(Boolean evaluateTargetHealth) {
        setEvaluateTargetHealth(evaluateTargetHealth);
        return this;
    }

    /**
     * <p>
     * <i>Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record
     * sets:</i> When <code>EvaluateTargetHealth</code> is <code>true</code>, an alias resource record set inherits the
     * health of the referenced AWS resource, such as an ELB load balancer or another resource record set in the hosted
     * zone.
     * </p>
     * <p>
     * Note the following:
     * </p>
     * <dl>
     * <dt>CloudFront distributions</dt>
     * <dd>
     * <p>
     * You can't set <code>EvaluateTargetHealth</code> to <code>true</code> when the alias target is a CloudFront
     * distribution.
     * </p>
     * </dd>
     * <dt>Elastic Beanstalk environments that have regionalized subdomains</dt>
     * <dd>
     * <p>
     * If you specify an Elastic Beanstalk environment in <code>DNSName</code> 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 <code>EvaluateTargetHealth</code> to <code>true</code> 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.
     * </p>
     * <p>
     * If the environment contains a single Amazon EC2 instance, there are no special requirements.
     * </p>
     * </dd>
     * <dt>ELB load balancers</dt>
     * <dd>
     * <p>
     * Health checking behavior depends on the type of load balancer:
     * </p>
     * <ul>
     * <li>
     * <p>
     * <b>Classic Load Balancers</b>: If you specify an ELB Classic Load Balancer in <code>DNSName</code>, Elastic Load
     * Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. If
     * you set <code>EvaluateTargetHealth</code> to <code>true</code> and either no EC2 instances are healthy or the
     * load balancer itself is unhealthy, Route 53 routes queries to other resources.
     * </p>
     * </li>
     * <li>
     * <p>
     * <b>Application and Network Load Balancers</b>: If you specify an ELB Application or Network Load Balancer and you
     * set <code>EvaluateTargetHealth</code> to <code>true</code>, Route 53 routes queries to the load balancer based on
     * the health of the target groups that are associated with the load balancer:
     * </p>
     * <ul>
     * <li>
     * <p>
     * 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.
     * </p>
     * </li>
     * <li>
     * <p>
     * A target group that has no registered targets is considered unhealthy.
     * </p>
     * </li>
     * </ul>
     * </li>
     * </ul>
     * <note>
     * <p>
     * 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.
     * </p>
     * </note></dd>
     * <dt>S3 buckets</dt>
     * <dd>
     * <p>
     * There are no special requirements for setting <code>EvaluateTargetHealth</code> to <code>true</code> when the
     * alias target is an S3 bucket.
     * </p>
     * </dd>
     * <dt>Other records in the same hosted zone</dt>
     * <dd>
     * <p>
     * If the AWS resource that you specify in <code>DNSName</code> 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 <a href=
     * "http://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?</a> in the <i>Amazon Route 53 Developer Guide</i>.
     * </p>
     * </dd>
     * </dl>
     * <p>
     * For more information and examples, see <a
     * href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html">Amazon Route 53 Health Checks
     * and DNS Failover</a> in the <i>Amazon Route 53 Developer Guide</i>.
     * </p>
     * 
     * @return <i>Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource
     *         record sets:</i> When <code>EvaluateTargetHealth</code> is <code>true</code>, an alias resource record
     *         set inherits the health of the referenced AWS resource, such as an ELB load balancer or another resource
     *         record set in the hosted zone.</p>
     *         <p>
     *         Note the following:
     *         </p>
     *         <dl>
     *         <dt>CloudFront distributions</dt>
     *         <dd>
     *         <p>
     *         You can't set <code>EvaluateTargetHealth</code> to <code>true</code> when the alias target is a
     *         CloudFront distribution.
     *         </p>
     *         </dd>
     *         <dt>Elastic Beanstalk environments that have regionalized subdomains</dt>
     *         <dd>
     *         <p>
     *         If you specify an Elastic Beanstalk environment in <code>DNSName</code> 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 <code>EvaluateTargetHealth</code> to
     *         <code>true</code> 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.
     *         </p>
     *         <p>
     *         If the environment contains a single Amazon EC2 instance, there are no special requirements.
     *         </p>
     *         </dd>
     *         <dt>ELB load balancers</dt>
     *         <dd>
     *         <p>
     *         Health checking behavior depends on the type of load balancer:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         <b>Classic Load Balancers</b>: If you specify an ELB Classic Load Balancer in <code>DNSName</code>,
     *         Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with
     *         the load balancer. If you set <code>EvaluateTargetHealth</code> to <code>true</code> and either no EC2
     *         instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other
     *         resources.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         <b>Application and Network Load Balancers</b>: If you specify an ELB Application or Network Load Balancer
     *         and you set <code>EvaluateTargetHealth</code> to <code>true</code>, Route 53 routes queries to the load
     *         balancer based on the health of the target groups that are associated with the load balancer:
     *         </p>
     *         <ul>
     *         <li>
     *         <p>
     *         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.
     *         </p>
     *         </li>
     *         <li>
     *         <p>
     *         A target group that has no registered targets is considered unhealthy.
     *         </p>
     *         </li>
     *         </ul>
     *         </li>
     *         </ul>
     *         <note>
     *         <p>
     *         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.
     *         </p>
     *         </note></dd>
     *         <dt>S3 buckets</dt>
     *         <dd>
     *         <p>
     *         There are no special requirements for setting <code>EvaluateTargetHealth</code> to <code>true</code> when
     *         the alias target is an S3 bucket.
     *         </p>
     *         </dd>
     *         <dt>Other records in the same hosted zone</dt>
     *         <dd>
     *         <p>
     *         If the AWS resource that you specify in <code>DNSName</code> 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 <a href=
     *         "http://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?</a> in the <i>Amazon Route 53 Developer Guide</i>.
     *         </p>
     *         </dd>
     *         </dl>
     *         <p>
     *         For more information and examples, see <a
     *         href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html">Amazon Route 53 Health
     *         Checks and DNS Failover</a> in the <i>Amazon Route 53 Developer Guide</i>.
     */

    public Boolean isEvaluateTargetHealth() {
        return this.evaluateTargetHealth;
    }

    /**
     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
     * redacted from this string using a placeholder value.
     *
     * @return A string representation of this object.
     *
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getHostedZoneId() != null)
            sb.append("HostedZoneId: ").append(getHostedZoneId()).append(",");
        if (getDNSName() != null)
            sb.append("DNSName: ").append(getDNSName()).append(",");
        if (getEvaluateTargetHealth() != null)
            sb.append("EvaluateTargetHealth: ").append(getEvaluateTargetHealth());
        sb.append("}");
        return sb.toString();
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;

        if (obj instanceof AliasTarget == false)
            return false;
        AliasTarget other = (AliasTarget) obj;
        if (other.getHostedZoneId() == null ^ this.getHostedZoneId() == null)
            return false;
        if (other.getHostedZoneId() != null && other.getHostedZoneId().equals(this.getHostedZoneId()) == false)
            return false;
        if (other.getDNSName() == null ^ this.getDNSName() == null)
            return false;
        if (other.getDNSName() != null && other.getDNSName().equals(this.getDNSName()) == false)
            return false;
        if (other.getEvaluateTargetHealth() == null ^ this.getEvaluateTargetHealth() == null)
            return false;
        if (other.getEvaluateTargetHealth() != null
                && other.getEvaluateTargetHealth().equals(this.getEvaluateTargetHealth()) == false)
            return false;
        return true;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;

        hashCode = prime * hashCode + ((getHostedZoneId() == null) ? 0 : getHostedZoneId().hashCode());
        hashCode = prime * hashCode + ((getDNSName() == null) ? 0 : getDNSName().hashCode());
        hashCode = prime * hashCode
                + ((getEvaluateTargetHealth() == null) ? 0 : getEvaluateTargetHealth().hashCode());
        return hashCode;
    }

    @Override
    public AliasTarget clone() {
        try {
            return (AliasTarget) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new IllegalStateException(
                    "Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
        }
    }

}