com.amazonaws.services.route53.model.AliasTarget Maven / Gradle / Ivy
Show all versions of aws-java-sdk-osgi Show documentation
/*
 * Copyright 2010-2016 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;
/**
 * 
 * Alias resource record sets only: Information about the CloudFront
 * distribution, ELB load balancer, Amazon S3 bucket, or Amazon Route 53
 * resource record set to which you are routing traffic.
 * 
 * 
 * If you're creating resource record sets for a private hosted zone, note the
 * following:
 * 
 * 
 * - You can create alias resource record sets only for Amazon Route 53
 * resource record sets in the same private hosted zone. Creating alias resource
 * record sets for CloudFront distributions, ELB load balancers, and Amazon S3
 * buckets is not supported.
 
 * - You can't create alias resource record sets for failover, geolocation, or
 * latency resource record sets in a private hosted zone.
 
 * 
 * 
 * For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon Route 53
 * API Reference.
 * 
 */
public class AliasTarget implements Serializable, Cloneable {
    /**
     * 
     * Alias resource record sets only: The value you use depends on
     * where you want to route queries:
     * 
     * 
     * - A CloudFront distribution: Specify 
Z2FDTNDATAQYW2
     * . 
     * - An ELB load balancer: Specify the value of the hosted zone ID for the
     * load balancer. You can get the hosted zone ID by using the AWS Management
     * Console, the ELB API, or the AWS CLI. Use the same method to get values
     * for 
HostedZoneId and DNSName. If you get one
     * value from the console and the other value from the API or the CLI,
     * creating the resource record set will fail. 
     * - An Amazon S3 bucket that is configured as a static website:
     * Specify the hosted zone ID for the Amazon S3 website endpoint in which
     * you created the bucket. For more information about valid values, see the
     * table Amazon Simple Storage Service (S3) Website Endpoints in the
     * Amazon Web Services General Reference.
 
     * - Another Amazon Route 53 resource record set in your hosted
     * zone: Specify the hosted zone ID of your hosted zone. (An alias
     * resource record set cannot reference a resource record set in a different
     * hosted zone.)
 
     * 
     * 
     * For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon Route
     * 53 API Reference.
     * 
     */
    private String hostedZoneId;
    /**
     * 
     * Alias resource record sets only: The external DNS name associated
     * with the AWS Resource. The value that you specify depends on where you
     * want to route queries:
     * 
     * 
     * - A CloudFront distribution: Specify the domain name that
     * CloudFront assigned when you created your distribution. Your CloudFront
     * distribution must include an alternate domain name that matches the name
     * of the resource record set. For example, if the name of the resource
     * record set is 
acme.example.com, your CloudFront distribution
     * must include acme.example.com as one of the alternate domain
     * names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon CloudFront
     * Developer Guide. 
     * - An ELB load balancer: Specify the DNS name associated with the
     * load balancer. You can get the DNS name by using the AWS Management
     * Console, the ELB API, or the AWS CLI. Use the same method to get values
     * for 
HostedZoneId and DNSName. If you get one
     * value from the console and the other value from the API or the CLI,
     * creating the resource record set will fail. 
     * - An Elastic Beanstalk environment: Specify the CNAME attribute
     * for the environment. (The environment must have a regionalized domain
     * name.)
 
     * - An Amazon S3 bucket that is configured as a static website:
     * Specify the domain name of the Amazon S3 website endpoint in which you
     * created the bucket; for example,
     * 
s3-website-us-east-1.amazonaws.com. For more information
     * about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     * Amazon Web Services General Reference. For more information about
     * using Amazon S3 buckets for websites, see Hosting a Static Website on Amazon S3 in the Amazon Simple
     * Storage Service Developer Guide. 
     * - Another Amazon Route 53 resource record set: Specify the value
     * of the 
Name element for a resource record set in the current
     * hosted zone. 
     * 
     * 
     * For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon Route
     * 53 API Reference.
     * 
     */
    private String dNSName;
    /**
     * 
     * Alias resource record sets only: If you set the value of
     * EvaluateTargetHealth to true for the resource
     * record set or sets in an alias, weighted alias, latency alias, or
     * failover alias resource record set, and if you specify a value for
     * HealthCheckId for every resource record set that is
     * referenced by these alias resource record sets, the alias resource record
     * sets inherit the health of the referenced resource record sets.
     * 
     * 
     * In this configuration, when Amazon Route 53 receives a DNS query for an
     * alias resource record set:
     * 
     * 
     * - Amazon Route 53 looks at the resource record sets that are referenced
     * by the alias resource record sets to determine which health checks
     * they're using.
 
     * - Amazon Route 53 checks the current status of each health check.
     * (Amazon Route 53 periodically checks the health of the endpoint that is
     * specified in a health check; it doesn't perform the health check when the
     * DNS query arrives.)
 
     * - Based on the status of the health checks, Amazon Route 53 determines
     * which resource record sets are healthy. Unhealthy resource record sets
     * are immediately removed from consideration. In addition, if all of the
     * resource record sets that are referenced by an alias resource record set
     * are unhealthy, that alias resource record set also is immediately removed
     * from consideration.
 
     * - Based on the configuration of the alias resource record sets
     * (weighted alias or latency alias, for example) and the configuration of
     * the resource record sets that they reference, Amazon Route 53 chooses a
     * resource record set from the healthy resource record sets, and responds
     * to the query.
 
     * 
     * 
     * Note the following:
     * 
     * 
     * - You cannot set 
EvaluateTargetHealth to true when the
     * alias target is a CloudFront distribution. 
     * - If the AWS resource that you specify in 
AliasTarget is a
     * resource record set or a group of resource record sets (for example, a
     * group of weighted resource record sets), but it is not another alias
     * resource record set, we recommend that you associate a health check with
     * all of the resource record sets in the alias target. For more
     * information, see What Happens When You Omit Health Checks? in the Amazon Route 53
     * Developer Guide. 
     * - If you specify an ELB load balancer in 
AliasTarget,
     * Elastic Load Balancing routes queries only to the healthy Amazon EC2
     * instances that are registered with the load balancer. If no Amazon EC2
     * instances are healthy or if the load balancer itself is unhealthy, and if
     * EvaluateTargetHealth is true for the
     * corresponding alias resource record set, Amazon Route 53 routes queries
     * to other resources. 
     * - When you create a load balancer, you configure settings for Elastic
     * Load Balancing health checks; they're not Amazon Route 53 health checks,
     * but they perform a similar function. Do not create Amazon Route 53 health
     * checks for the Amazon EC2 instances that you register with an ELB load
     * balancer. For more information, see How Health Checks Work in More Complex Amazon Route 53
     * Configurations in the Amazon Route 53 Developer Guide.
 
     * 
     * 
     * We recommend that you set EvaluateTargetHealth to
     * true only when you have enough idle capacity to handle the
     * failure of one or more endpoints.
     * 
     * 
     * For more information and examples, see Amazon Route 53 Health Checks and DNS Failover in the Amazon
     * Route 53 Developer Guide.
     * 
     */
    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
     *        Alias resource record sets only: The value you use depends on
     *        where you want to route queries:
     *        
     *        - A CloudFront distribution: Specify
     *        
Z2FDTNDATAQYW2. 
     *        - An ELB load balancer: Specify the value of the hosted zone ID
     *        for the load balancer. You can get the hosted zone ID by using the
     *        AWS Management Console, the ELB API, or the AWS CLI. Use the same
     *        method to get values for 
HostedZoneId and
     *        DNSName. If you get one value from the console and
     *        the other value from the API or the CLI, creating the resource
     *        record set will fail. 
     *        - An Amazon S3 bucket that is configured as a static
     *        website: Specify the hosted zone ID for the Amazon S3 website
     *        endpoint in which you created the bucket. For more information
     *        about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     *        Amazon Web Services General Reference.
 
     *        - Another Amazon Route 53 resource record set in your hosted
     *        zone: Specify the hosted zone ID of your hosted zone. (An
     *        alias resource record set cannot reference a resource record set
     *        in a different hosted zone.)
 
     *        
     *        
     *        For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon
     *        Route 53 API Reference
     * @param dNSName
     *        Alias resource record sets only: The external DNS name
     *        associated with the AWS Resource. The value that you specify
     *        depends on where you want to route queries:
     *        
     *        
     *        - A CloudFront distribution: Specify the domain name that
     *        CloudFront assigned when you created your distribution. Your
     *        CloudFront distribution must include an alternate domain name that
     *        matches the name of the resource record set. For example, if the
     *        name of the resource record set is 
acme.example.com,
     *        your CloudFront distribution must include
     *        acme.example.com as one of the alternate domain
     *        names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon
     *        CloudFront Developer Guide. 
     *        - An ELB load balancer: Specify the DNS name associated
     *        with the load balancer. You can get the DNS name by using the AWS
     *        Management Console, the ELB API, or the AWS CLI. Use the same
     *        method to get values for 
HostedZoneId and
     *        DNSName. If you get one value from the console and
     *        the other value from the API or the CLI, creating the resource
     *        record set will fail. 
     *        - An Elastic Beanstalk environment: Specify the CNAME
     *        attribute for the environment. (The environment must have a
     *        regionalized domain name.)
 
     *        - An Amazon S3 bucket that is configured as a static
     *        website: Specify the domain name of the Amazon S3 website
     *        endpoint in which you created the bucket; for example,
     *        
s3-website-us-east-1.amazonaws.com. For more
     *        information about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     *        Amazon Web Services General Reference. For more information
     *        about using Amazon S3 buckets for websites, see Hosting a Static Website on Amazon S3 in the Amazon Simple
     *        Storage Service Developer Guide. 
     *        - Another Amazon Route 53 resource record set: Specify
     *        the value of the 
Name element for a resource record
     *        set in the current hosted zone. 
     *        
     *        
     *        For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon
     *        Route 53 API Reference
     */
    public AliasTarget(String hostedZoneId, String dNSName) {
        setHostedZoneId(hostedZoneId);
        setDNSName(dNSName);
    }
    /**
     * 
     * Alias resource record sets only: The value you use depends on
     * where you want to route queries:
     * 
     * 
     * - A CloudFront distribution: Specify 
Z2FDTNDATAQYW2
     * . 
     * - An ELB load balancer: Specify the value of the hosted zone ID for the
     * load balancer. You can get the hosted zone ID by using the AWS Management
     * Console, the ELB API, or the AWS CLI. Use the same method to get values
     * for 
HostedZoneId and DNSName. If you get one
     * value from the console and the other value from the API or the CLI,
     * creating the resource record set will fail. 
     * - An Amazon S3 bucket that is configured as a static website:
     * Specify the hosted zone ID for the Amazon S3 website endpoint in which
     * you created the bucket. For more information about valid values, see the
     * table Amazon Simple Storage Service (S3) Website Endpoints in the
     * Amazon Web Services General Reference.
 
     * - Another Amazon Route 53 resource record set in your hosted
     * zone: Specify the hosted zone ID of your hosted zone. (An alias
     * resource record set cannot reference a resource record set in a different
     * hosted zone.)
 
     * 
     * 
     * For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon Route
     * 53 API Reference.
     * 
     * 
     * @param hostedZoneId
     *        Alias resource record sets only: The value you use depends on
     *        where you want to route queries:
     *        
     *        - A CloudFront distribution: Specify
     *        
Z2FDTNDATAQYW2. 
     *        - An ELB load balancer: Specify the value of the hosted zone ID
     *        for the load balancer. You can get the hosted zone ID by using the
     *        AWS Management Console, the ELB API, or the AWS CLI. Use the same
     *        method to get values for 
HostedZoneId and
     *        DNSName. If you get one value from the console and
     *        the other value from the API or the CLI, creating the resource
     *        record set will fail. 
     *        - An Amazon S3 bucket that is configured as a static
     *        website: Specify the hosted zone ID for the Amazon S3 website
     *        endpoint in which you created the bucket. For more information
     *        about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     *        Amazon Web Services General Reference.
 
     *        - Another Amazon Route 53 resource record set in your hosted
     *        zone: Specify the hosted zone ID of your hosted zone. (An
     *        alias resource record set cannot reference a resource record set
     *        in a different hosted zone.)
 
     *        
     *        
     *        For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon
     *        Route 53 API Reference
     */
    public void setHostedZoneId(String hostedZoneId) {
        this.hostedZoneId = hostedZoneId;
    }
    /**
     * 
     * Alias resource record sets only: The value you use depends on
     * where you want to route queries:
     * 
     * 
     * - A CloudFront distribution: Specify 
Z2FDTNDATAQYW2
     * . 
     * - An ELB load balancer: Specify the value of the hosted zone ID for the
     * load balancer. You can get the hosted zone ID by using the AWS Management
     * Console, the ELB API, or the AWS CLI. Use the same method to get values
     * for 
HostedZoneId and DNSName. If you get one
     * value from the console and the other value from the API or the CLI,
     * creating the resource record set will fail. 
     * - An Amazon S3 bucket that is configured as a static website:
     * Specify the hosted zone ID for the Amazon S3 website endpoint in which
     * you created the bucket. For more information about valid values, see the
     * table Amazon Simple Storage Service (S3) Website Endpoints in the
     * Amazon Web Services General Reference.
 
     * - Another Amazon Route 53 resource record set in your hosted
     * zone: Specify the hosted zone ID of your hosted zone. (An alias
     * resource record set cannot reference a resource record set in a different
     * hosted zone.)
 
     * 
     * 
     * For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon Route
     * 53 API Reference.
     * 
     * 
     * @return Alias resource record sets only: The value you use depends on
     *         where you want to route queries:
     *         
     *         - A CloudFront distribution: Specify
     *         
Z2FDTNDATAQYW2. 
     *         - An ELB load balancer: Specify the value of the hosted zone ID
     *         for the load balancer. You can get the hosted zone ID by using
     *         the AWS Management Console, the ELB API, or the AWS CLI. Use the
     *         same method to get values for 
HostedZoneId and
     *         DNSName. If you get one value from the console and
     *         the other value from the API or the CLI, creating the resource
     *         record set will fail. 
     *         - An Amazon S3 bucket that is configured as a static
     *         website: Specify the hosted zone ID for the Amazon S3 website
     *         endpoint in which you created the bucket. For more information
     *         about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     *         Amazon Web Services General Reference.
 
     *         - Another Amazon Route 53 resource record set in your hosted
     *         zone: Specify the hosted zone ID of your hosted zone. (An
     *         alias resource record set cannot reference a resource record set
     *         in a different hosted zone.)
 
     *         
     *         
     *         For more information and an example, see Example: Creating Alias Resource Record Sets in the
     *         Amazon Route 53 API Reference
     */
    public String getHostedZoneId() {
        return this.hostedZoneId;
    }
    /**
     * 
     * Alias resource record sets only: The value you use depends on
     * where you want to route queries:
     * 
     * 
     * - A CloudFront distribution: Specify 
Z2FDTNDATAQYW2
     * . 
     * - An ELB load balancer: Specify the value of the hosted zone ID for the
     * load balancer. You can get the hosted zone ID by using the AWS Management
     * Console, the ELB API, or the AWS CLI. Use the same method to get values
     * for 
HostedZoneId and DNSName. If you get one
     * value from the console and the other value from the API or the CLI,
     * creating the resource record set will fail. 
     * - An Amazon S3 bucket that is configured as a static website:
     * Specify the hosted zone ID for the Amazon S3 website endpoint in which
     * you created the bucket. For more information about valid values, see the
     * table Amazon Simple Storage Service (S3) Website Endpoints in the
     * Amazon Web Services General Reference.
 
     * - Another Amazon Route 53 resource record set in your hosted
     * zone: Specify the hosted zone ID of your hosted zone. (An alias
     * resource record set cannot reference a resource record set in a different
     * hosted zone.)
 
     * 
     * 
     * For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon Route
     * 53 API Reference.
     * 
     * 
     * @param hostedZoneId
     *        Alias resource record sets only: The value you use depends on
     *        where you want to route queries:
     *        
     *        - A CloudFront distribution: Specify
     *        
Z2FDTNDATAQYW2. 
     *        - An ELB load balancer: Specify the value of the hosted zone ID
     *        for the load balancer. You can get the hosted zone ID by using the
     *        AWS Management Console, the ELB API, or the AWS CLI. Use the same
     *        method to get values for 
HostedZoneId and
     *        DNSName. If you get one value from the console and
     *        the other value from the API or the CLI, creating the resource
     *        record set will fail. 
     *        - An Amazon S3 bucket that is configured as a static
     *        website: Specify the hosted zone ID for the Amazon S3 website
     *        endpoint in which you created the bucket. For more information
     *        about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     *        Amazon Web Services General Reference.
 
     *        - Another Amazon Route 53 resource record set in your hosted
     *        zone: Specify the hosted zone ID of your hosted zone. (An
     *        alias resource record set cannot reference a resource record set
     *        in a different hosted zone.)
 
     *        
     *        
     *        For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon
     *        Route 53 API Reference
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public AliasTarget withHostedZoneId(String hostedZoneId) {
        setHostedZoneId(hostedZoneId);
        return this;
    }
    /**
     * 
     * Alias resource record sets only: The external DNS name associated
     * with the AWS Resource. The value that you specify depends on where you
     * want to route queries:
     * 
     * 
     * - A CloudFront distribution: Specify the domain name that
     * CloudFront assigned when you created your distribution. Your CloudFront
     * distribution must include an alternate domain name that matches the name
     * of the resource record set. For example, if the name of the resource
     * record set is 
acme.example.com, your CloudFront distribution
     * must include acme.example.com as one of the alternate domain
     * names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon CloudFront
     * Developer Guide. 
     * - An ELB load balancer: Specify the DNS name associated with the
     * load balancer. You can get the DNS name by using the AWS Management
     * Console, the ELB API, or the AWS CLI. Use the same method to get values
     * for 
HostedZoneId and DNSName. If you get one
     * value from the console and the other value from the API or the CLI,
     * creating the resource record set will fail. 
     * - An Elastic Beanstalk environment: Specify the CNAME attribute
     * for the environment. (The environment must have a regionalized domain
     * name.)
 
     * - An Amazon S3 bucket that is configured as a static website:
     * Specify the domain name of the Amazon S3 website endpoint in which you
     * created the bucket; for example,
     * 
s3-website-us-east-1.amazonaws.com. For more information
     * about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     * Amazon Web Services General Reference. For more information about
     * using Amazon S3 buckets for websites, see Hosting a Static Website on Amazon S3 in the Amazon Simple
     * Storage Service Developer Guide. 
     * - Another Amazon Route 53 resource record set: Specify the value
     * of the 
Name element for a resource record set in the current
     * hosted zone. 
     * 
     * 
     * For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon Route
     * 53 API Reference.
     * 
     * 
     * @param dNSName
     *        Alias resource record sets only: The external DNS name
     *        associated with the AWS Resource. The value that you specify
     *        depends on where you want to route queries:
     *        
     *        - A CloudFront distribution: Specify the domain name that
     *        CloudFront assigned when you created your distribution. Your
     *        CloudFront distribution must include an alternate domain name that
     *        matches the name of the resource record set. For example, if the
     *        name of the resource record set is 
acme.example.com,
     *        your CloudFront distribution must include
     *        acme.example.com as one of the alternate domain
     *        names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon
     *        CloudFront Developer Guide. 
     *        - An ELB load balancer: Specify the DNS name associated
     *        with the load balancer. You can get the DNS name by using the AWS
     *        Management Console, the ELB API, or the AWS CLI. Use the same
     *        method to get values for 
HostedZoneId and
     *        DNSName. If you get one value from the console and
     *        the other value from the API or the CLI, creating the resource
     *        record set will fail. 
     *        - An Elastic Beanstalk environment: Specify the CNAME
     *        attribute for the environment. (The environment must have a
     *        regionalized domain name.)
 
     *        - An Amazon S3 bucket that is configured as a static
     *        website: Specify the domain name of the Amazon S3 website
     *        endpoint in which you created the bucket; for example,
     *        
s3-website-us-east-1.amazonaws.com. For more
     *        information about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     *        Amazon Web Services General Reference. For more information
     *        about using Amazon S3 buckets for websites, see Hosting a Static Website on Amazon S3 in the Amazon Simple
     *        Storage Service Developer Guide. 
     *        - Another Amazon Route 53 resource record set: Specify
     *        the value of the 
Name element for a resource record
     *        set in the current hosted zone. 
     *        
     *        
     *        For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon
     *        Route 53 API Reference
     */
    public void setDNSName(String dNSName) {
        this.dNSName = dNSName;
    }
    /**
     * 
     * Alias resource record sets only: The external DNS name associated
     * with the AWS Resource. The value that you specify depends on where you
     * want to route queries:
     * 
     * 
     * - A CloudFront distribution: Specify the domain name that
     * CloudFront assigned when you created your distribution. Your CloudFront
     * distribution must include an alternate domain name that matches the name
     * of the resource record set. For example, if the name of the resource
     * record set is 
acme.example.com, your CloudFront distribution
     * must include acme.example.com as one of the alternate domain
     * names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon CloudFront
     * Developer Guide. 
     * - An ELB load balancer: Specify the DNS name associated with the
     * load balancer. You can get the DNS name by using the AWS Management
     * Console, the ELB API, or the AWS CLI. Use the same method to get values
     * for 
HostedZoneId and DNSName. If you get one
     * value from the console and the other value from the API or the CLI,
     * creating the resource record set will fail. 
     * - An Elastic Beanstalk environment: Specify the CNAME attribute
     * for the environment. (The environment must have a regionalized domain
     * name.)
 
     * - An Amazon S3 bucket that is configured as a static website:
     * Specify the domain name of the Amazon S3 website endpoint in which you
     * created the bucket; for example,
     * 
s3-website-us-east-1.amazonaws.com. For more information
     * about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     * Amazon Web Services General Reference. For more information about
     * using Amazon S3 buckets for websites, see Hosting a Static Website on Amazon S3 in the Amazon Simple
     * Storage Service Developer Guide. 
     * - Another Amazon Route 53 resource record set: Specify the value
     * of the 
Name element for a resource record set in the current
     * hosted zone. 
     * 
     * 
     * For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon Route
     * 53 API Reference.
     * 
     * 
     * @return Alias resource record sets only: The external DNS name
     *         associated with the AWS Resource. The value that you specify
     *         depends on where you want to route queries:
     *         
     *         - A CloudFront distribution: Specify the domain name
     *         that CloudFront assigned when you created your distribution. Your
     *         CloudFront distribution must include an alternate domain name
     *         that matches the name of the resource record set. For example, if
     *         the name of the resource record set is
     *         
acme.example.com, your CloudFront distribution must
     *         include acme.example.com as one of the alternate
     *         domain names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon
     *         CloudFront Developer Guide. 
     *         - An ELB load balancer: Specify the DNS name associated
     *         with the load balancer. You can get the DNS name by using the AWS
     *         Management Console, the ELB API, or the AWS CLI. Use the same
     *         method to get values for 
HostedZoneId and
     *         DNSName. If you get one value from the console and
     *         the other value from the API or the CLI, creating the resource
     *         record set will fail. 
     *         - An Elastic Beanstalk environment: Specify the CNAME
     *         attribute for the environment. (The environment must have a
     *         regionalized domain name.)
 
     *         - An Amazon S3 bucket that is configured as a static
     *         website: Specify the domain name of the Amazon S3 website
     *         endpoint in which you created the bucket; for example,
     *         
s3-website-us-east-1.amazonaws.com. For more
     *         information about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     *         Amazon Web Services General Reference. For more
     *         information about using Amazon S3 buckets for websites, see Hosting a Static Website on Amazon S3 in the Amazon
     *         Simple Storage Service Developer Guide. 
     *         - Another Amazon Route 53 resource record set: Specify
     *         the value of the 
Name element for a resource record
     *         set in the current hosted zone. 
     *         
     *         
     *         For more information and an example, see Example: Creating Alias Resource Record Sets in the
     *         Amazon Route 53 API Reference
     */
    public String getDNSName() {
        return this.dNSName;
    }
    /**
     * 
     * Alias resource record sets only: The external DNS name associated
     * with the AWS Resource. The value that you specify depends on where you
     * want to route queries:
     * 
     * 
     * - A CloudFront distribution: Specify the domain name that
     * CloudFront assigned when you created your distribution. Your CloudFront
     * distribution must include an alternate domain name that matches the name
     * of the resource record set. For example, if the name of the resource
     * record set is 
acme.example.com, your CloudFront distribution
     * must include acme.example.com as one of the alternate domain
     * names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon CloudFront
     * Developer Guide. 
     * - An ELB load balancer: Specify the DNS name associated with the
     * load balancer. You can get the DNS name by using the AWS Management
     * Console, the ELB API, or the AWS CLI. Use the same method to get values
     * for 
HostedZoneId and DNSName. If you get one
     * value from the console and the other value from the API or the CLI,
     * creating the resource record set will fail. 
     * - An Elastic Beanstalk environment: Specify the CNAME attribute
     * for the environment. (The environment must have a regionalized domain
     * name.)
 
     * - An Amazon S3 bucket that is configured as a static website:
     * Specify the domain name of the Amazon S3 website endpoint in which you
     * created the bucket; for example,
     * 
s3-website-us-east-1.amazonaws.com. For more information
     * about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     * Amazon Web Services General Reference. For more information about
     * using Amazon S3 buckets for websites, see Hosting a Static Website on Amazon S3 in the Amazon Simple
     * Storage Service Developer Guide. 
     * - Another Amazon Route 53 resource record set: Specify the value
     * of the 
Name element for a resource record set in the current
     * hosted zone. 
     * 
     * 
     * For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon Route
     * 53 API Reference.
     * 
     * 
     * @param dNSName
     *        Alias resource record sets only: The external DNS name
     *        associated with the AWS Resource. The value that you specify
     *        depends on where you want to route queries:
     *        
     *        - A CloudFront distribution: Specify the domain name that
     *        CloudFront assigned when you created your distribution. Your
     *        CloudFront distribution must include an alternate domain name that
     *        matches the name of the resource record set. For example, if the
     *        name of the resource record set is 
acme.example.com,
     *        your CloudFront distribution must include
     *        acme.example.com as one of the alternate domain
     *        names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon
     *        CloudFront Developer Guide. 
     *        - An ELB load balancer: Specify the DNS name associated
     *        with the load balancer. You can get the DNS name by using the AWS
     *        Management Console, the ELB API, or the AWS CLI. Use the same
     *        method to get values for 
HostedZoneId and
     *        DNSName. If you get one value from the console and
     *        the other value from the API or the CLI, creating the resource
     *        record set will fail. 
     *        - An Elastic Beanstalk environment: Specify the CNAME
     *        attribute for the environment. (The environment must have a
     *        regionalized domain name.)
 
     *        - An Amazon S3 bucket that is configured as a static
     *        website: Specify the domain name of the Amazon S3 website
     *        endpoint in which you created the bucket; for example,
     *        
s3-website-us-east-1.amazonaws.com. For more
     *        information about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the
     *        Amazon Web Services General Reference. For more information
     *        about using Amazon S3 buckets for websites, see Hosting a Static Website on Amazon S3 in the Amazon Simple
     *        Storage Service Developer Guide. 
     *        - Another Amazon Route 53 resource record set: Specify
     *        the value of the 
Name element for a resource record
     *        set in the current hosted zone. 
     *        
     *        
     *        For more information and an example, see Example: Creating Alias Resource Record Sets in the Amazon
     *        Route 53 API Reference
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public AliasTarget withDNSName(String dNSName) {
        setDNSName(dNSName);
        return this;
    }
    /**
     * 
     * Alias resource record sets only: If you set the value of
     * EvaluateTargetHealth to true for the resource
     * record set or sets in an alias, weighted alias, latency alias, or
     * failover alias resource record set, and if you specify a value for
     * HealthCheckId for every resource record set that is
     * referenced by these alias resource record sets, the alias resource record
     * sets inherit the health of the referenced resource record sets.
     * 
     * 
     * In this configuration, when Amazon Route 53 receives a DNS query for an
     * alias resource record set:
     * 
     * 
     * - Amazon Route 53 looks at the resource record sets that are referenced
     * by the alias resource record sets to determine which health checks
     * they're using.
 
     * - Amazon Route 53 checks the current status of each health check.
     * (Amazon Route 53 periodically checks the health of the endpoint that is
     * specified in a health check; it doesn't perform the health check when the
     * DNS query arrives.)
 
     * - Based on the status of the health checks, Amazon Route 53 determines
     * which resource record sets are healthy. Unhealthy resource record sets
     * are immediately removed from consideration. In addition, if all of the
     * resource record sets that are referenced by an alias resource record set
     * are unhealthy, that alias resource record set also is immediately removed
     * from consideration.
 
     * - Based on the configuration of the alias resource record sets
     * (weighted alias or latency alias, for example) and the configuration of
     * the resource record sets that they reference, Amazon Route 53 chooses a
     * resource record set from the healthy resource record sets, and responds
     * to the query.
 
     * 
     * 
     * Note the following:
     * 
     * 
     * - You cannot set 
EvaluateTargetHealth to true when the
     * alias target is a CloudFront distribution. 
     * - If the AWS resource that you specify in 
AliasTarget is a
     * resource record set or a group of resource record sets (for example, a
     * group of weighted resource record sets), but it is not another alias
     * resource record set, we recommend that you associate a health check with
     * all of the resource record sets in the alias target. For more
     * information, see What Happens When You Omit Health Checks? in the Amazon Route 53
     * Developer Guide. 
     * - If you specify an ELB load balancer in 
AliasTarget,
     * Elastic Load Balancing routes queries only to the healthy Amazon EC2
     * instances that are registered with the load balancer. If no Amazon EC2
     * instances are healthy or if the load balancer itself is unhealthy, and if
     * EvaluateTargetHealth is true for the
     * corresponding alias resource record set, Amazon Route 53 routes queries
     * to other resources. 
     * - When you create a load balancer, you configure settings for Elastic
     * Load Balancing health checks; they're not Amazon Route 53 health checks,
     * but they perform a similar function. Do not create Amazon Route 53 health
     * checks for the Amazon EC2 instances that you register with an ELB load
     * balancer. For more information, see How Health Checks Work in More Complex Amazon Route 53
     * Configurations in the Amazon Route 53 Developer Guide.
 
     * 
     * 
     * We recommend that you set EvaluateTargetHealth to
     * true only when you have enough idle capacity to handle the
     * failure of one or more endpoints.
     * 
     * 
     * For more information and examples, see Amazon Route 53 Health Checks and DNS Failover in the Amazon
     * Route 53 Developer Guide.
     * 
     * 
     * @param evaluateTargetHealth
     *        Alias resource record sets only: If you set the value of
     *        EvaluateTargetHealth to true for the
     *        resource record set or sets in an alias, weighted alias, latency
     *        alias, or failover alias resource record set, and if you specify a
     *        value for HealthCheckId for every resource record set
     *        that is referenced by these alias resource record sets, the alias
     *        resource record sets inherit the health of the referenced resource
     *        record sets.
     *        
     *        In this configuration, when Amazon Route 53 receives a DNS query
     *        for an alias resource record set:
     *        
     *        
     *        - Amazon Route 53 looks at the resource record sets that are
     *        referenced by the alias resource record sets to determine which
     *        health checks they're using.
 
     *        - Amazon Route 53 checks the current status of each health
     *        check. (Amazon Route 53 periodically checks the health of the
     *        endpoint that is specified in a health check; it doesn't perform
     *        the health check when the DNS query arrives.)
 
     *        - Based on the status of the health checks, Amazon Route 53
     *        determines which resource record sets are healthy. Unhealthy
     *        resource record sets are immediately removed from consideration.
     *        In addition, if all of the resource record sets that are
     *        referenced by an alias resource record set are unhealthy, that
     *        alias resource record set also is immediately removed from
     *        consideration.
 
     *        - Based on the configuration of the alias resource record sets
     *        (weighted alias or latency alias, for example) and the
     *        configuration of the resource record sets that they reference,
     *        Amazon Route 53 chooses a resource record set from the healthy
     *        resource record sets, and responds to the query.
 
     *        
     *        
     *        Note the following:
     *        
     *        
     *        - You cannot set 
EvaluateTargetHealth to true when
     *        the alias target is a CloudFront distribution. 
     *        - If the AWS resource that you specify in
     *        
AliasTarget is a resource record set or a group of
     *        resource record sets (for example, a group of weighted resource
     *        record sets), but it is not another alias resource record set, we
     *        recommend that you associate a health check with all of the
     *        resource record sets in the alias target. For more information,
     *        see What Happens When You Omit Health Checks? in the Amazon
     *        Route 53 Developer Guide. 
     *        - If you specify an ELB load balancer in
     *        
AliasTarget, Elastic Load Balancing routes queries
     *        only to the healthy Amazon EC2 instances that are registered with
     *        the load balancer. If no Amazon EC2 instances are healthy or if
     *        the load balancer itself is unhealthy, and if
     *        EvaluateTargetHealth is true for the
     *        corresponding alias resource record set, Amazon Route 53 routes
     *        queries to other resources. 
     *        - When you create a load balancer, you configure settings for
     *        Elastic Load Balancing health checks; they're not Amazon Route 53
     *        health checks, but they perform a similar function. Do not create
     *        Amazon Route 53 health checks for the Amazon EC2 instances that
     *        you register with an ELB load balancer. For more information, see
     *        How Health Checks Work in More Complex Amazon Route 53
     *        Configurations in the Amazon Route 53 Developer Guide.
 
     *        
     *        
     *        We recommend that you set EvaluateTargetHealth to
     *        true only when you have enough idle capacity to
     *        handle the failure of one or more endpoints.
     *        
     *        
     *        For more information and examples, see Amazon Route 53 Health Checks and DNS Failover in the
     *        Amazon Route 53 Developer Guide
     */
    public void setEvaluateTargetHealth(Boolean evaluateTargetHealth) {
        this.evaluateTargetHealth = evaluateTargetHealth;
    }
    /**
     * 
     * Alias resource record sets only: If you set the value of
     * EvaluateTargetHealth to true for the resource
     * record set or sets in an alias, weighted alias, latency alias, or
     * failover alias resource record set, and if you specify a value for
     * HealthCheckId for every resource record set that is
     * referenced by these alias resource record sets, the alias resource record
     * sets inherit the health of the referenced resource record sets.
     * 
     * 
     * In this configuration, when Amazon Route 53 receives a DNS query for an
     * alias resource record set:
     * 
     * 
     * - Amazon Route 53 looks at the resource record sets that are referenced
     * by the alias resource record sets to determine which health checks
     * they're using.
 
     * - Amazon Route 53 checks the current status of each health check.
     * (Amazon Route 53 periodically checks the health of the endpoint that is
     * specified in a health check; it doesn't perform the health check when the
     * DNS query arrives.)
 
     * - Based on the status of the health checks, Amazon Route 53 determines
     * which resource record sets are healthy. Unhealthy resource record sets
     * are immediately removed from consideration. In addition, if all of the
     * resource record sets that are referenced by an alias resource record set
     * are unhealthy, that alias resource record set also is immediately removed
     * from consideration.
 
     * - Based on the configuration of the alias resource record sets
     * (weighted alias or latency alias, for example) and the configuration of
     * the resource record sets that they reference, Amazon Route 53 chooses a
     * resource record set from the healthy resource record sets, and responds
     * to the query.
 
     * 
     * 
     * Note the following:
     * 
     * 
     * - You cannot set 
EvaluateTargetHealth to true when the
     * alias target is a CloudFront distribution. 
     * - If the AWS resource that you specify in 
AliasTarget is a
     * resource record set or a group of resource record sets (for example, a
     * group of weighted resource record sets), but it is not another alias
     * resource record set, we recommend that you associate a health check with
     * all of the resource record sets in the alias target. For more
     * information, see What Happens When You Omit Health Checks? in the Amazon Route 53
     * Developer Guide. 
     * - If you specify an ELB load balancer in 
AliasTarget,
     * Elastic Load Balancing routes queries only to the healthy Amazon EC2
     * instances that are registered with the load balancer. If no Amazon EC2
     * instances are healthy or if the load balancer itself is unhealthy, and if
     * EvaluateTargetHealth is true for the
     * corresponding alias resource record set, Amazon Route 53 routes queries
     * to other resources. 
     * - When you create a load balancer, you configure settings for Elastic
     * Load Balancing health checks; they're not Amazon Route 53 health checks,
     * but they perform a similar function. Do not create Amazon Route 53 health
     * checks for the Amazon EC2 instances that you register with an ELB load
     * balancer. For more information, see How Health Checks Work in More Complex Amazon Route 53
     * Configurations in the Amazon Route 53 Developer Guide.
 
     * 
     * 
     * We recommend that you set EvaluateTargetHealth to
     * true only when you have enough idle capacity to handle the
     * failure of one or more endpoints.
     * 
     * 
     * For more information and examples, see Amazon Route 53 Health Checks and DNS Failover in the Amazon
     * Route 53 Developer Guide.
     * 
     * 
     * @return Alias resource record sets only: If you set the value of
     *         EvaluateTargetHealth to true for the
     *         resource record set or sets in an alias, weighted alias, latency
     *         alias, or failover alias resource record set, and if you specify
     *         a value for HealthCheckId for every resource record
     *         set that is referenced by these alias resource record sets, the
     *         alias resource record sets inherit the health of the referenced
     *         resource record sets.
     *         
     *         In this configuration, when Amazon Route 53 receives a DNS query
     *         for an alias resource record set:
     *         
     *         
     *         - Amazon Route 53 looks at the resource record sets that are
     *         referenced by the alias resource record sets to determine which
     *         health checks they're using.
 
     *         - Amazon Route 53 checks the current status of each health
     *         check. (Amazon Route 53 periodically checks the health of the
     *         endpoint that is specified in a health check; it doesn't perform
     *         the health check when the DNS query arrives.)
 
     *         - Based on the status of the health checks, Amazon Route 53
     *         determines which resource record sets are healthy. Unhealthy
     *         resource record sets are immediately removed from consideration.
     *         In addition, if all of the resource record sets that are
     *         referenced by an alias resource record set are unhealthy, that
     *         alias resource record set also is immediately removed from
     *         consideration.
 
     *         - Based on the configuration of the alias resource record sets
     *         (weighted alias or latency alias, for example) and the
     *         configuration of the resource record sets that they reference,
     *         Amazon Route 53 chooses a resource record set from the healthy
     *         resource record sets, and responds to the query.
 
     *         
     *         
     *         Note the following:
     *         
     *         
     *         - You cannot set 
EvaluateTargetHealth to true when
     *         the alias target is a CloudFront distribution. 
     *         - If the AWS resource that you specify in
     *         
AliasTarget is a resource record set or a group of
     *         resource record sets (for example, a group of weighted resource
     *         record sets), but it is not another alias resource record set, we
     *         recommend that you associate a health check with all of the
     *         resource record sets in the alias target. For more information,
     *         see What Happens When You Omit Health Checks? in the Amazon
     *         Route 53 Developer Guide. 
     *         - If you specify an ELB load balancer in
     *         
AliasTarget, Elastic Load Balancing routes queries
     *         only to the healthy Amazon EC2 instances that are registered with
     *         the load balancer. If no Amazon EC2 instances are healthy or if
     *         the load balancer itself is unhealthy, and if
     *         EvaluateTargetHealth is true for the
     *         corresponding alias resource record set, Amazon Route 53 routes
     *         queries to other resources. 
     *         - When you create a load balancer, you configure settings for
     *         Elastic Load Balancing health checks; they're not Amazon Route 53
     *         health checks, but they perform a similar function. Do not create
     *         Amazon Route 53 health checks for the Amazon EC2 instances that
     *         you register with an ELB load balancer. For more information, see
     *         How Health Checks Work in More Complex Amazon Route 53
     *         Configurations in the Amazon Route 53 Developer Guide.
     *         
 
     *         
     *         
     *         We recommend that you set EvaluateTargetHealth to
     *         true only when you have enough idle capacity to
     *         handle the failure of one or more endpoints.
     *         
     *         
     *         For more information and examples, see Amazon Route 53 Health Checks and DNS Failover in the
     *         Amazon Route 53 Developer Guide
     */
    public Boolean getEvaluateTargetHealth() {
        return this.evaluateTargetHealth;
    }
    /**
     * 
     * Alias resource record sets only: If you set the value of
     * EvaluateTargetHealth to true for the resource
     * record set or sets in an alias, weighted alias, latency alias, or
     * failover alias resource record set, and if you specify a value for
     * HealthCheckId for every resource record set that is
     * referenced by these alias resource record sets, the alias resource record
     * sets inherit the health of the referenced resource record sets.
     * 
     * 
     * In this configuration, when Amazon Route 53 receives a DNS query for an
     * alias resource record set:
     * 
     * 
     * - Amazon Route 53 looks at the resource record sets that are referenced
     * by the alias resource record sets to determine which health checks
     * they're using.
 
     * - Amazon Route 53 checks the current status of each health check.
     * (Amazon Route 53 periodically checks the health of the endpoint that is
     * specified in a health check; it doesn't perform the health check when the
     * DNS query arrives.)
 
     * - Based on the status of the health checks, Amazon Route 53 determines
     * which resource record sets are healthy. Unhealthy resource record sets
     * are immediately removed from consideration. In addition, if all of the
     * resource record sets that are referenced by an alias resource record set
     * are unhealthy, that alias resource record set also is immediately removed
     * from consideration.
 
     * - Based on the configuration of the alias resource record sets
     * (weighted alias or latency alias, for example) and the configuration of
     * the resource record sets that they reference, Amazon Route 53 chooses a
     * resource record set from the healthy resource record sets, and responds
     * to the query.
 
     * 
     * 
     * Note the following:
     * 
     * 
     * - You cannot set 
EvaluateTargetHealth to true when the
     * alias target is a CloudFront distribution. 
     * - If the AWS resource that you specify in 
AliasTarget is a
     * resource record set or a group of resource record sets (for example, a
     * group of weighted resource record sets), but it is not another alias
     * resource record set, we recommend that you associate a health check with
     * all of the resource record sets in the alias target. For more
     * information, see What Happens When You Omit Health Checks? in the Amazon Route 53
     * Developer Guide. 
     * - If you specify an ELB load balancer in 
AliasTarget,
     * Elastic Load Balancing routes queries only to the healthy Amazon EC2
     * instances that are registered with the load balancer. If no Amazon EC2
     * instances are healthy or if the load balancer itself is unhealthy, and if
     * EvaluateTargetHealth is true for the
     * corresponding alias resource record set, Amazon Route 53 routes queries
     * to other resources. 
     * - When you create a load balancer, you configure settings for Elastic
     * Load Balancing health checks; they're not Amazon Route 53 health checks,
     * but they perform a similar function. Do not create Amazon Route 53 health
     * checks for the Amazon EC2 instances that you register with an ELB load
     * balancer. For more information, see How Health Checks Work in More Complex Amazon Route 53
     * Configurations in the Amazon Route 53 Developer Guide.
 
     * 
     * 
     * We recommend that you set EvaluateTargetHealth to
     * true only when you have enough idle capacity to handle the
     * failure of one or more endpoints.
     * 
     * 
     * For more information and examples, see Amazon Route 53 Health Checks and DNS Failover in the Amazon
     * Route 53 Developer Guide.
     * 
     * 
     * @param evaluateTargetHealth
     *        Alias resource record sets only: If you set the value of
     *        EvaluateTargetHealth to true for the
     *        resource record set or sets in an alias, weighted alias, latency
     *        alias, or failover alias resource record set, and if you specify a
     *        value for HealthCheckId for every resource record set
     *        that is referenced by these alias resource record sets, the alias
     *        resource record sets inherit the health of the referenced resource
     *        record sets.
     *        
     *        In this configuration, when Amazon Route 53 receives a DNS query
     *        for an alias resource record set:
     *        
     *        
     *        - Amazon Route 53 looks at the resource record sets that are
     *        referenced by the alias resource record sets to determine which
     *        health checks they're using.
 
     *        - Amazon Route 53 checks the current status of each health
     *        check. (Amazon Route 53 periodically checks the health of the
     *        endpoint that is specified in a health check; it doesn't perform
     *        the health check when the DNS query arrives.)
 
     *        - Based on the status of the health checks, Amazon Route 53
     *        determines which resource record sets are healthy. Unhealthy
     *        resource record sets are immediately removed from consideration.
     *        In addition, if all of the resource record sets that are
     *        referenced by an alias resource record set are unhealthy, that
     *        alias resource record set also is immediately removed from
     *        consideration.
 
     *        - Based on the configuration of the alias resource record sets
     *        (weighted alias or latency alias, for example) and the
     *        configuration of the resource record sets that they reference,
     *        Amazon Route 53 chooses a resource record set from the healthy
     *        resource record sets, and responds to the query.
 
     *        
     *        
     *        Note the following:
     *        
     *        
     *        - You cannot set 
EvaluateTargetHealth to true when
     *        the alias target is a CloudFront distribution. 
     *        - If the AWS resource that you specify in
     *        
AliasTarget is a resource record set or a group of
     *        resource record sets (for example, a group of weighted resource
     *        record sets), but it is not another alias resource record set, we
     *        recommend that you associate a health check with all of the
     *        resource record sets in the alias target. For more information,
     *        see What Happens When You Omit Health Checks? in the Amazon
     *        Route 53 Developer Guide. 
     *        - If you specify an ELB load balancer in
     *        
AliasTarget, Elastic Load Balancing routes queries
     *        only to the healthy Amazon EC2 instances that are registered with
     *        the load balancer. If no Amazon EC2 instances are healthy or if
     *        the load balancer itself is unhealthy, and if
     *        EvaluateTargetHealth is true for the
     *        corresponding alias resource record set, Amazon Route 53 routes
     *        queries to other resources. 
     *        - When you create a load balancer, you configure settings for
     *        Elastic Load Balancing health checks; they're not Amazon Route 53
     *        health checks, but they perform a similar function. Do not create
     *        Amazon Route 53 health checks for the Amazon EC2 instances that
     *        you register with an ELB load balancer. For more information, see
     *        How Health Checks Work in More Complex Amazon Route 53
     *        Configurations in the Amazon Route 53 Developer Guide.
 
     *        
     *        
     *        We recommend that you set EvaluateTargetHealth to
     *        true only when you have enough idle capacity to
     *        handle the failure of one or more endpoints.
     *        
     *        
     *        For more information and examples, see Amazon Route 53 Health Checks and DNS Failover in the
     *        Amazon Route 53 Developer Guide
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public AliasTarget withEvaluateTargetHealth(Boolean evaluateTargetHealth) {
        setEvaluateTargetHealth(evaluateTargetHealth);
        return this;
    }
    /**
     * 
     * Alias resource record sets only: If you set the value of
     * EvaluateTargetHealth to true for the resource
     * record set or sets in an alias, weighted alias, latency alias, or
     * failover alias resource record set, and if you specify a value for
     * HealthCheckId for every resource record set that is
     * referenced by these alias resource record sets, the alias resource record
     * sets inherit the health of the referenced resource record sets.
     * 
     * 
     * In this configuration, when Amazon Route 53 receives a DNS query for an
     * alias resource record set:
     * 
     * 
     * - Amazon Route 53 looks at the resource record sets that are referenced
     * by the alias resource record sets to determine which health checks
     * they're using.
 
     * - Amazon Route 53 checks the current status of each health check.
     * (Amazon Route 53 periodically checks the health of the endpoint that is
     * specified in a health check; it doesn't perform the health check when the
     * DNS query arrives.)
 
     * - Based on the status of the health checks, Amazon Route 53 determines
     * which resource record sets are healthy. Unhealthy resource record sets
     * are immediately removed from consideration. In addition, if all of the
     * resource record sets that are referenced by an alias resource record set
     * are unhealthy, that alias resource record set also is immediately removed
     * from consideration.
 
     * - Based on the configuration of the alias resource record sets
     * (weighted alias or latency alias, for example) and the configuration of
     * the resource record sets that they reference, Amazon Route 53 chooses a
     * resource record set from the healthy resource record sets, and responds
     * to the query.
 
     * 
     * 
     * Note the following:
     * 
     * 
     * - You cannot set 
EvaluateTargetHealth to true when the
     * alias target is a CloudFront distribution. 
     * - If the AWS resource that you specify in 
AliasTarget is a
     * resource record set or a group of resource record sets (for example, a
     * group of weighted resource record sets), but it is not another alias
     * resource record set, we recommend that you associate a health check with
     * all of the resource record sets in the alias target. For more
     * information, see What Happens When You Omit Health Checks? in the Amazon Route 53
     * Developer Guide. 
     * - If you specify an ELB load balancer in 
AliasTarget,
     * Elastic Load Balancing routes queries only to the healthy Amazon EC2
     * instances that are registered with the load balancer. If no Amazon EC2
     * instances are healthy or if the load balancer itself is unhealthy, and if
     * EvaluateTargetHealth is true for the
     * corresponding alias resource record set, Amazon Route 53 routes queries
     * to other resources. 
     * - When you create a load balancer, you configure settings for Elastic
     * Load Balancing health checks; they're not Amazon Route 53 health checks,
     * but they perform a similar function. Do not create Amazon Route 53 health
     * checks for the Amazon EC2 instances that you register with an ELB load
     * balancer. For more information, see How Health Checks Work in More Complex Amazon Route 53
     * Configurations in the Amazon Route 53 Developer Guide.
 
     * 
     * 
     * We recommend that you set EvaluateTargetHealth to
     * true only when you have enough idle capacity to handle the
     * failure of one or more endpoints.
     * 
     * 
     * For more information and examples, see Amazon Route 53 Health Checks and DNS Failover in the Amazon
     * Route 53 Developer Guide.
     * 
     * 
     * @return Alias resource record sets only: If you set the value of
     *         EvaluateTargetHealth to true for the
     *         resource record set or sets in an alias, weighted alias, latency
     *         alias, or failover alias resource record set, and if you specify
     *         a value for HealthCheckId for every resource record
     *         set that is referenced by these alias resource record sets, the
     *         alias resource record sets inherit the health of the referenced
     *         resource record sets.
     *         
     *         In this configuration, when Amazon Route 53 receives a DNS query
     *         for an alias resource record set:
     *         
     *         
     *         - Amazon Route 53 looks at the resource record sets that are
     *         referenced by the alias resource record sets to determine which
     *         health checks they're using.
 
     *         - Amazon Route 53 checks the current status of each health
     *         check. (Amazon Route 53 periodically checks the health of the
     *         endpoint that is specified in a health check; it doesn't perform
     *         the health check when the DNS query arrives.)
 
     *         - Based on the status of the health checks, Amazon Route 53
     *         determines which resource record sets are healthy. Unhealthy
     *         resource record sets are immediately removed from consideration.
     *         In addition, if all of the resource record sets that are
     *         referenced by an alias resource record set are unhealthy, that
     *         alias resource record set also is immediately removed from
     *         consideration.
 
     *         - Based on the configuration of the alias resource record sets
     *         (weighted alias or latency alias, for example) and the
     *         configuration of the resource record sets that they reference,
     *         Amazon Route 53 chooses a resource record set from the healthy
     *         resource record sets, and responds to the query.
 
     *         
     *         
     *         Note the following:
     *         
     *         
     *         - You cannot set 
EvaluateTargetHealth to true when
     *         the alias target is a CloudFront distribution. 
     *         - If the AWS resource that you specify in
     *         
AliasTarget is a resource record set or a group of
     *         resource record sets (for example, a group of weighted resource
     *         record sets), but it is not another alias resource record set, we
     *         recommend that you associate a health check with all of the
     *         resource record sets in the alias target. For more information,
     *         see What Happens When You Omit Health Checks? in the Amazon
     *         Route 53 Developer Guide. 
     *         - If you specify an ELB load balancer in
     *         
AliasTarget, Elastic Load Balancing routes queries
     *         only to the healthy Amazon EC2 instances that are registered with
     *         the load balancer. If no Amazon EC2 instances are healthy or if
     *         the load balancer itself is unhealthy, and if
     *         EvaluateTargetHealth is true for the
     *         corresponding alias resource record set, Amazon Route 53 routes
     *         queries to other resources. 
     *         - When you create a load balancer, you configure settings for
     *         Elastic Load Balancing health checks; they're not Amazon Route 53
     *         health checks, but they perform a similar function. Do not create
     *         Amazon Route 53 health checks for the Amazon EC2 instances that
     *         you register with an ELB load balancer. For more information, see
     *         How Health Checks Work in More Complex Amazon Route 53
     *         Configurations in the Amazon Route 53 Developer Guide.
     *         
 
     *         
     *         
     *         We recommend that you set EvaluateTargetHealth to
     *         true only when you have enough idle capacity to
     *         handle the failure of one or more endpoints.
     *         
     *         
     *         For more information and examples, see Amazon Route 53 Health Checks and DNS Failover in the
     *         Amazon Route 53 Developer Guide
     */
    public Boolean isEvaluateTargetHealth() {
        return this.evaluateTargetHealth;
    }
    /**
     * Returns a string representation of this object; useful for testing and
     * debugging.
     *
     * @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: " + getHostedZoneId() + ",");
        if (getDNSName() != null)
            sb.append("DNSName: " + getDNSName() + ",");
        if (getEvaluateTargetHealth() != null)
            sb.append("EvaluateTargetHealth: " + 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);
        }
    }
}