/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Route53 { namespace Model { /** *

A complex type that contains information about the request to create a public * or private hosted zone.

See Also:

AWS * API Reference

*/ class CreateHostedZoneRequest : public Route53Request { public: AWS_ROUTE53_API CreateHostedZoneRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateHostedZone"; } AWS_ROUTE53_API Aws::String SerializePayload() const override; /** *

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.

*/ inline const Aws::String& GetName() const{ return m_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.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

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.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

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.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

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.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

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.

*/ inline CreateHostedZoneRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

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.

*/ inline CreateHostedZoneRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

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.

*/ inline CreateHostedZoneRequest& WithName(const char* value) { SetName(value); return *this;} /** *

(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.

*/ inline const VPC& GetVPC() const{ return m_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.

*/ inline bool VPCHasBeenSet() const { return m_vPCHasBeenSet; } /** *

(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.

*/ inline void SetVPC(const VPC& value) { m_vPCHasBeenSet = true; m_vPC = value; } /** *

(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.

*/ inline void SetVPC(VPC&& value) { m_vPCHasBeenSet = true; m_vPC = std::move(value); } /** *

(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.

*/ inline CreateHostedZoneRequest& WithVPC(const VPC& value) { SetVPC(value); return *this;} /** *

(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.

*/ inline CreateHostedZoneRequest& WithVPC(VPC&& value) { SetVPC(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::String& GetCallerReference() const{ return m_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.

*/ inline bool CallerReferenceHasBeenSet() const { return m_callerReferenceHasBeenSet; } /** *

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.

*/ inline void SetCallerReference(const Aws::String& value) { m_callerReferenceHasBeenSet = true; m_callerReference = value; } /** *

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.

*/ inline void SetCallerReference(Aws::String&& value) { m_callerReferenceHasBeenSet = true; m_callerReference = std::move(value); } /** *

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.

*/ inline void SetCallerReference(const char* value) { m_callerReferenceHasBeenSet = true; m_callerReference.assign(value); } /** *

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.

*/ inline CreateHostedZoneRequest& WithCallerReference(const Aws::String& value) { SetCallerReference(value); return *this;} /** *

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.

*/ inline CreateHostedZoneRequest& WithCallerReference(Aws::String&& value) { SetCallerReference(std::move(value)); return *this;} /** *

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.

*/ inline CreateHostedZoneRequest& WithCallerReference(const char* value) { SetCallerReference(value); return *this;} /** *

(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.

*/ inline const HostedZoneConfig& GetHostedZoneConfig() const{ return m_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.

*/ inline bool HostedZoneConfigHasBeenSet() const { return m_hostedZoneConfigHasBeenSet; } /** *

(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.

*/ inline void SetHostedZoneConfig(const HostedZoneConfig& value) { m_hostedZoneConfigHasBeenSet = true; m_hostedZoneConfig = value; } /** *

(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.

*/ inline void SetHostedZoneConfig(HostedZoneConfig&& value) { m_hostedZoneConfigHasBeenSet = true; m_hostedZoneConfig = std::move(value); } /** *

(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.

*/ inline CreateHostedZoneRequest& WithHostedZoneConfig(const HostedZoneConfig& value) { SetHostedZoneConfig(value); return *this;} /** *

(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.

*/ inline CreateHostedZoneRequest& WithHostedZoneConfig(HostedZoneConfig&& value) { SetHostedZoneConfig(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::String& GetDelegationSetId() const{ return m_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.

*/ inline bool DelegationSetIdHasBeenSet() const { return m_delegationSetIdHasBeenSet; } /** *

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.

*/ inline void SetDelegationSetId(const Aws::String& value) { m_delegationSetIdHasBeenSet = true; m_delegationSetId = value; } /** *

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.

*/ inline void SetDelegationSetId(Aws::String&& value) { m_delegationSetIdHasBeenSet = true; m_delegationSetId = std::move(value); } /** *

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.

*/ inline void SetDelegationSetId(const char* value) { m_delegationSetIdHasBeenSet = true; m_delegationSetId.assign(value); } /** *

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.

*/ inline CreateHostedZoneRequest& WithDelegationSetId(const Aws::String& value) { SetDelegationSetId(value); return *this;} /** *

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.

*/ inline CreateHostedZoneRequest& WithDelegationSetId(Aws::String&& value) { SetDelegationSetId(std::move(value)); return *this;} /** *

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.

*/ inline CreateHostedZoneRequest& WithDelegationSetId(const char* value) { SetDelegationSetId(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; VPC m_vPC; bool m_vPCHasBeenSet = false; Aws::String m_callerReference; bool m_callerReferenceHasBeenSet = false; HostedZoneConfig m_hostedZoneConfig; bool m_hostedZoneConfigHasBeenSet = false; Aws::String m_delegationSetId; bool m_delegationSetIdHasBeenSet = false; }; } // namespace Model } // namespace Route53 } // namespace Aws