/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the route53-2013-04-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Route53.Model
{
///
/// Container for the parameters to the CreateHostedZone operation.
/// Creates a new public or private hosted zone. You create records in a public hosted
/// zone to define how you want to route traffic on the internet for a domain, such as
/// example.com, and its subdomains (apex.example.com, acme.example.com). You create records
/// in a private hosted zone to define how you want to route traffic for a domain and
/// its subdomains within one or more Amazon Virtual Private Clouds (Amazon VPCs).
///
///
///
/// You can't convert a public hosted zone to a private hosted zone or vice versa. Instead,
/// you must create a new hosted zone with the same name and create new resource record
/// sets.
///
///
///
/// For more information about charges for hosted zones, see Amazon
/// Route 53 Pricing.
///
///
///
/// Note the following:
///
/// -
///
/// You can't create a hosted zone for a top-level domain (TLD) such as .com.
///
///
-
///
/// For public hosted zones, Route 53 automatically creates a default SOA record and four
/// NS records for the zone. For more information about SOA and NS records, see NS
/// and SOA Records that Route 53 Creates for a Hosted Zone in the Amazon Route
/// 53 Developer Guide.
///
///
///
/// If you want to use the same name servers for multiple public hosted zones, you can
/// optionally associate a reusable delegation set with the hosted zone. See the
DelegationSetId
/// element.
///
/// -
///
/// If your domain is registered with a registrar other than Route 53, you must update
/// the name servers with your registrar to make Route 53 the DNS service for the domain.
/// For more information, see Migrating
/// DNS Service for an Existing Domain to Amazon Route 53 in the Amazon Route 53
/// Developer Guide.
///
///
///
/// When you submit a CreateHostedZone
request, the initial status of the
/// hosted zone is PENDING
. For public hosted zones, this means that the
/// NS and SOA records are not yet available on all Route 53 DNS servers. When the NS
/// and SOA records are available, the status of the zone changes to INSYNC
.
///
///
///
/// The CreateHostedZone
request requires the caller to have an ec2:DescribeVpcs
/// permission.
///
///
///
/// When creating private hosted zones, the Amazon VPC must belong to the same partition
/// where the hosted zone is created. A partition is a group of Amazon Web Services Regions.
/// Each Amazon Web Services account is scoped to one partition.
///
///
///
/// The following are the supported partitions:
///
/// -
///
///
aws
- Amazon Web Services Regions
///
/// -
///
///
aws-cn
- China Regions
///
/// -
///
///
aws-us-gov
- Amazon Web Services GovCloud (US) Region
///
///
///
/// For more information, see Access
/// Management in the Amazon Web Services General Reference.
///
///
///
public partial class CreateHostedZoneRequest : AmazonRoute53Request
{
private string _name;
private VPC _vpc;
private string _callerReference;
private HostedZoneConfig _hostedZoneConfig;
private string _delegationSetId;
///
/// Empty constructor used to set properties independently even when a simple constructor is available
///
public CreateHostedZoneRequest() { }
///
/// Instantiates CreateHostedZoneRequest with the parameterized properties
///
/// The name of the domain. Specify a fully qualified domain name, for example, www.example.com. The trailing dot is optional; Amazon Route 53 assumes that the domain name is fully qualified. This means that Route 53 treats www.example.com (without a trailing dot) and www.example.com. (with a trailing dot) as identical. If you're creating a public hosted zone, this is the name you have registered with your DNS registrar. If your domain name is registered with a registrar other than Route 53, change the name servers for your domain to the set of NameServers
that CreateHostedZone
returns in DelegationSet
.
/// A unique string that identifies the request and that allows failed CreateHostedZone
requests to be retried without the risk of executing the operation twice. You must use a unique CallerReference
string every time you submit a CreateHostedZone
request. CallerReference
can be any unique string, for example, a date/time stamp.
public CreateHostedZoneRequest(string name, string callerReference)
{
_name = name;
_callerReference = callerReference;
}
///
/// Gets and sets the property Name.
///
/// The name of the domain. Specify a fully qualified domain name, for example, www.example.com.
/// The trailing dot is optional; Amazon Route 53 assumes that the domain name is fully
/// qualified. This means that Route 53 treats www.example.com (without a trailing
/// dot) and www.example.com. (with a trailing dot) as identical.
///
///
///
/// If you're creating a public hosted zone, this is the name you have registered with
/// your DNS registrar. If your domain name is registered with a registrar other than
/// Route 53, change the name servers for your domain to the set of NameServers
/// that CreateHostedZone
returns in DelegationSet
.
///
///
[AWSProperty(Required=true, Max=1024)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property VPC.
///
/// (Private hosted zones only) A complex type that contains information about the Amazon
/// VPC that you're associating with this hosted zone.
///
///
///
/// You can specify only one Amazon VPC when you create a private hosted zone. If you
/// are associating a VPC with a hosted zone with this request, the paramaters VPCId
/// and VPCRegion
are also required.
///
///
///
/// To associate additional Amazon VPCs with the hosted zone, use AssociateVPCWithHostedZone
/// after you create a hosted zone.
///
///
public VPC VPC
{
get { return this._vpc; }
set { this._vpc = value; }
}
// Check to see if VPC property is set
internal bool IsSetVPC()
{
return this._vpc != null;
}
///
/// Gets and sets the property CallerReference.
///
/// A unique string that identifies the request and that allows failed CreateHostedZone
/// requests to be retried without the risk of executing the operation twice. You must
/// use a unique CallerReference
string every time you submit a CreateHostedZone
/// request. CallerReference
can be any unique string, for example, a date/time
/// stamp.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string CallerReference
{
get { return this._callerReference; }
set { this._callerReference = value; }
}
// Check to see if CallerReference property is set
internal bool IsSetCallerReference()
{
return this._callerReference != null;
}
///
/// Gets and sets the property HostedZoneConfig.
///
/// (Optional) A complex type that contains the following optional values:
///
/// -
///
/// For public and private hosted zones, an optional comment
///
///
-
///
/// For private hosted zones, an optional
PrivateZone
element
///
///
///
/// If you don't specify a comment or the PrivateZone
element, omit HostedZoneConfig
/// and the other elements.
///
///
public HostedZoneConfig HostedZoneConfig
{
get { return this._hostedZoneConfig; }
set { this._hostedZoneConfig = value; }
}
// Check to see if HostedZoneConfig property is set
internal bool IsSetHostedZoneConfig()
{
return this._hostedZoneConfig != null;
}
///
/// Gets and sets the property DelegationSetId.
///
/// If you want to associate a reusable delegation set with this hosted zone, the ID that
/// Amazon Route 53 assigned to the reusable delegation set when you created it. For more
/// information about reusable delegation sets, see CreateReusableDelegationSet.
///
///
///
/// If you are using a reusable delegation set to create a public hosted zone for a subdomain,
/// make sure that the parent hosted zone doesn't use one or more of the same name servers.
/// If you have overlapping nameservers, the operation will cause a ConflictingDomainsExist
/// error.
///
///
[AWSProperty(Max=32)]
public string DelegationSetId
{
get { return this._delegationSetId; }
set { this._delegationSetId = value; }
}
// Check to see if DelegationSetId property is set
internal bool IsSetDelegationSetId()
{
return this._delegationSetId != null;
}
}
}