/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ServiceDiscovery { namespace Model { /** *

A complex type that contains information about the Amazon Route 53 DNS * records that you want AWS Cloud Map to create when you register an * instance.

See Also:

AWS * API Reference

*/ class AWS_SERVICEDISCOVERY_API DnsConfig { public: DnsConfig(); DnsConfig(Aws::Utils::Json::JsonView jsonValue); DnsConfig& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

The routing policy that you want to apply to all Route 53 DNS records that * AWS Cloud Map creates when you register an instance and specify this * service.

If you want to use this service to register instances * that create alias records, specify WEIGHTED for the routing * policy.

You can specify the following values:

* MULTIVALUE

If you define a health check for the service and the * health check is healthy, Route 53 returns the applicable value for up to eight * instances.

For example, suppose the service includes configurations for * one A record and a health check, and you use the service to * register 10 instances. Route 53 responds to DNS queries with IP addresses for up * to eight healthy instances. If fewer than eight instances are healthy, Route 53 * responds to every DNS query with the IP addresses for all of the healthy * instances.

If you don't define a health check for the service, Route 53 * assumes that all instances are healthy and returns the values for up to eight * instances.

For more information about the multivalue routing policy, see * Multivalue * Answer Routing in the Route 53 Developer Guide.

* WEIGHTED

Route 53 returns the applicable value from one randomly * selected instance from among the instances that you registered using the same * service. Currently, all records have the same weight, so you can't route more or * less traffic to any instances.

For example, suppose the service includes * configurations for one A record and a health check, and you use the * service to register 10 instances. Route 53 responds to DNS queries with the IP * address for one randomly selected instance from among the healthy instances. If * no instances are healthy, Route 53 responds to DNS queries as if all of the * instances were healthy.

If you don't define a health check for the * service, Route 53 assumes that all instances are healthy and returns the * applicable value for one randomly selected instance.

For more information * about the weighted routing policy, see Weighted * Routing in the Route 53 Developer Guide.

*/ inline const RoutingPolicy& GetRoutingPolicy() const{ return m_routingPolicy; } /** *

The routing policy that you want to apply to all Route 53 DNS records that * AWS Cloud Map creates when you register an instance and specify this * service.

If you want to use this service to register instances * that create alias records, specify WEIGHTED for the routing * policy.

You can specify the following values:

* MULTIVALUE

If you define a health check for the service and the * health check is healthy, Route 53 returns the applicable value for up to eight * instances.

For example, suppose the service includes configurations for * one A record and a health check, and you use the service to * register 10 instances. Route 53 responds to DNS queries with IP addresses for up * to eight healthy instances. If fewer than eight instances are healthy, Route 53 * responds to every DNS query with the IP addresses for all of the healthy * instances.

If you don't define a health check for the service, Route 53 * assumes that all instances are healthy and returns the values for up to eight * instances.

For more information about the multivalue routing policy, see * Multivalue * Answer Routing in the Route 53 Developer Guide.

* WEIGHTED

Route 53 returns the applicable value from one randomly * selected instance from among the instances that you registered using the same * service. Currently, all records have the same weight, so you can't route more or * less traffic to any instances.

For example, suppose the service includes * configurations for one A record and a health check, and you use the * service to register 10 instances. Route 53 responds to DNS queries with the IP * address for one randomly selected instance from among the healthy instances. If * no instances are healthy, Route 53 responds to DNS queries as if all of the * instances were healthy.

If you don't define a health check for the * service, Route 53 assumes that all instances are healthy and returns the * applicable value for one randomly selected instance.

For more information * about the weighted routing policy, see Weighted * Routing in the Route 53 Developer Guide.

*/ inline bool RoutingPolicyHasBeenSet() const { return m_routingPolicyHasBeenSet; } /** *

The routing policy that you want to apply to all Route 53 DNS records that * AWS Cloud Map creates when you register an instance and specify this * service.

If you want to use this service to register instances * that create alias records, specify WEIGHTED for the routing * policy.

You can specify the following values:

* MULTIVALUE

If you define a health check for the service and the * health check is healthy, Route 53 returns the applicable value for up to eight * instances.

For example, suppose the service includes configurations for * one A record and a health check, and you use the service to * register 10 instances. Route 53 responds to DNS queries with IP addresses for up * to eight healthy instances. If fewer than eight instances are healthy, Route 53 * responds to every DNS query with the IP addresses for all of the healthy * instances.

If you don't define a health check for the service, Route 53 * assumes that all instances are healthy and returns the values for up to eight * instances.

For more information about the multivalue routing policy, see * Multivalue * Answer Routing in the Route 53 Developer Guide.

* WEIGHTED

Route 53 returns the applicable value from one randomly * selected instance from among the instances that you registered using the same * service. Currently, all records have the same weight, so you can't route more or * less traffic to any instances.

For example, suppose the service includes * configurations for one A record and a health check, and you use the * service to register 10 instances. Route 53 responds to DNS queries with the IP * address for one randomly selected instance from among the healthy instances. If * no instances are healthy, Route 53 responds to DNS queries as if all of the * instances were healthy.

If you don't define a health check for the * service, Route 53 assumes that all instances are healthy and returns the * applicable value for one randomly selected instance.

For more information * about the weighted routing policy, see Weighted * Routing in the Route 53 Developer Guide.

*/ inline void SetRoutingPolicy(const RoutingPolicy& value) { m_routingPolicyHasBeenSet = true; m_routingPolicy = value; } /** *

The routing policy that you want to apply to all Route 53 DNS records that * AWS Cloud Map creates when you register an instance and specify this * service.

If you want to use this service to register instances * that create alias records, specify WEIGHTED for the routing * policy.

You can specify the following values:

* MULTIVALUE

If you define a health check for the service and the * health check is healthy, Route 53 returns the applicable value for up to eight * instances.

For example, suppose the service includes configurations for * one A record and a health check, and you use the service to * register 10 instances. Route 53 responds to DNS queries with IP addresses for up * to eight healthy instances. If fewer than eight instances are healthy, Route 53 * responds to every DNS query with the IP addresses for all of the healthy * instances.

If you don't define a health check for the service, Route 53 * assumes that all instances are healthy and returns the values for up to eight * instances.

For more information about the multivalue routing policy, see * Multivalue * Answer Routing in the Route 53 Developer Guide.

* WEIGHTED

Route 53 returns the applicable value from one randomly * selected instance from among the instances that you registered using the same * service. Currently, all records have the same weight, so you can't route more or * less traffic to any instances.

For example, suppose the service includes * configurations for one A record and a health check, and you use the * service to register 10 instances. Route 53 responds to DNS queries with the IP * address for one randomly selected instance from among the healthy instances. If * no instances are healthy, Route 53 responds to DNS queries as if all of the * instances were healthy.

If you don't define a health check for the * service, Route 53 assumes that all instances are healthy and returns the * applicable value for one randomly selected instance.

For more information * about the weighted routing policy, see Weighted * Routing in the Route 53 Developer Guide.

*/ inline void SetRoutingPolicy(RoutingPolicy&& value) { m_routingPolicyHasBeenSet = true; m_routingPolicy = std::move(value); } /** *

The routing policy that you want to apply to all Route 53 DNS records that * AWS Cloud Map creates when you register an instance and specify this * service.

If you want to use this service to register instances * that create alias records, specify WEIGHTED for the routing * policy.

You can specify the following values:

* MULTIVALUE

If you define a health check for the service and the * health check is healthy, Route 53 returns the applicable value for up to eight * instances.

For example, suppose the service includes configurations for * one A record and a health check, and you use the service to * register 10 instances. Route 53 responds to DNS queries with IP addresses for up * to eight healthy instances. If fewer than eight instances are healthy, Route 53 * responds to every DNS query with the IP addresses for all of the healthy * instances.

If you don't define a health check for the service, Route 53 * assumes that all instances are healthy and returns the values for up to eight * instances.

For more information about the multivalue routing policy, see * Multivalue * Answer Routing in the Route 53 Developer Guide.

* WEIGHTED

Route 53 returns the applicable value from one randomly * selected instance from among the instances that you registered using the same * service. Currently, all records have the same weight, so you can't route more or * less traffic to any instances.

For example, suppose the service includes * configurations for one A record and a health check, and you use the * service to register 10 instances. Route 53 responds to DNS queries with the IP * address for one randomly selected instance from among the healthy instances. If * no instances are healthy, Route 53 responds to DNS queries as if all of the * instances were healthy.

If you don't define a health check for the * service, Route 53 assumes that all instances are healthy and returns the * applicable value for one randomly selected instance.

For more information * about the weighted routing policy, see Weighted * Routing in the Route 53 Developer Guide.

*/ inline DnsConfig& WithRoutingPolicy(const RoutingPolicy& value) { SetRoutingPolicy(value); return *this;} /** *

The routing policy that you want to apply to all Route 53 DNS records that * AWS Cloud Map creates when you register an instance and specify this * service.

If you want to use this service to register instances * that create alias records, specify WEIGHTED for the routing * policy.

You can specify the following values:

* MULTIVALUE

If you define a health check for the service and the * health check is healthy, Route 53 returns the applicable value for up to eight * instances.

For example, suppose the service includes configurations for * one A record and a health check, and you use the service to * register 10 instances. Route 53 responds to DNS queries with IP addresses for up * to eight healthy instances. If fewer than eight instances are healthy, Route 53 * responds to every DNS query with the IP addresses for all of the healthy * instances.

If you don't define a health check for the service, Route 53 * assumes that all instances are healthy and returns the values for up to eight * instances.

For more information about the multivalue routing policy, see * Multivalue * Answer Routing in the Route 53 Developer Guide.

* WEIGHTED

Route 53 returns the applicable value from one randomly * selected instance from among the instances that you registered using the same * service. Currently, all records have the same weight, so you can't route more or * less traffic to any instances.

For example, suppose the service includes * configurations for one A record and a health check, and you use the * service to register 10 instances. Route 53 responds to DNS queries with the IP * address for one randomly selected instance from among the healthy instances. If * no instances are healthy, Route 53 responds to DNS queries as if all of the * instances were healthy.

If you don't define a health check for the * service, Route 53 assumes that all instances are healthy and returns the * applicable value for one randomly selected instance.

For more information * about the weighted routing policy, see Weighted * Routing in the Route 53 Developer Guide.

*/ inline DnsConfig& WithRoutingPolicy(RoutingPolicy&& value) { SetRoutingPolicy(std::move(value)); return *this;} /** *

An array that contains one DnsRecord object for each Route 53 * DNS record that you want AWS Cloud Map to create when you register an * instance.

*/ inline const Aws::Vector& GetDnsRecords() const{ return m_dnsRecords; } /** *

An array that contains one DnsRecord object for each Route 53 * DNS record that you want AWS Cloud Map to create when you register an * instance.

*/ inline bool DnsRecordsHasBeenSet() const { return m_dnsRecordsHasBeenSet; } /** *

An array that contains one DnsRecord object for each Route 53 * DNS record that you want AWS Cloud Map to create when you register an * instance.

*/ inline void SetDnsRecords(const Aws::Vector& value) { m_dnsRecordsHasBeenSet = true; m_dnsRecords = value; } /** *

An array that contains one DnsRecord object for each Route 53 * DNS record that you want AWS Cloud Map to create when you register an * instance.

*/ inline void SetDnsRecords(Aws::Vector&& value) { m_dnsRecordsHasBeenSet = true; m_dnsRecords = std::move(value); } /** *

An array that contains one DnsRecord object for each Route 53 * DNS record that you want AWS Cloud Map to create when you register an * instance.

*/ inline DnsConfig& WithDnsRecords(const Aws::Vector& value) { SetDnsRecords(value); return *this;} /** *

An array that contains one DnsRecord object for each Route 53 * DNS record that you want AWS Cloud Map to create when you register an * instance.

*/ inline DnsConfig& WithDnsRecords(Aws::Vector&& value) { SetDnsRecords(std::move(value)); return *this;} /** *

An array that contains one DnsRecord object for each Route 53 * DNS record that you want AWS Cloud Map to create when you register an * instance.

*/ inline DnsConfig& AddDnsRecords(const DnsRecord& value) { m_dnsRecordsHasBeenSet = true; m_dnsRecords.push_back(value); return *this; } /** *

An array that contains one DnsRecord object for each Route 53 * DNS record that you want AWS Cloud Map to create when you register an * instance.

*/ inline DnsConfig& AddDnsRecords(DnsRecord&& value) { m_dnsRecordsHasBeenSet = true; m_dnsRecords.push_back(std::move(value)); return *this; } private: RoutingPolicy m_routingPolicy; bool m_routingPolicyHasBeenSet; Aws::Vector m_dnsRecords; bool m_dnsRecordsHasBeenSet; }; } // namespace Model } // namespace ServiceDiscovery } // namespace Aws