/** * 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 Cloud Map to create when you register an instance.

*

The record types of a service can only be changed by deleting the * service and recreating it with a new Dnsconfig.

*

See Also:

AWS * API Reference

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

The routing policy that you want to apply to all Route 53 DNS records that * 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 that the service includes configurations for one A * record and a health check. 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 that * the service includes configurations for one A record and a health * check. 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 * 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 that the service includes configurations for one A * record and a health check. 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 that * the service includes configurations for one A record and a health * check. 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 * 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 that the service includes configurations for one A * record and a health check. 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 that * the service includes configurations for one A record and a health * check. 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 * 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 that the service includes configurations for one A * record and a health check. 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 that * the service includes configurations for one A record and a health * check. 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 * 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 that the service includes configurations for one A * record and a health check. 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 that * the service includes configurations for one A record and a health * check. 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 * 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 that the service includes configurations for one A * record and a health check. 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 that * the service includes configurations for one A record and a health * check. 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 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 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 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 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 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 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 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 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 = false; Aws::Vector m_dnsRecords; bool m_dnsRecordsHasBeenSet = false; }; } // namespace Model } // namespace ServiceDiscovery } // namespace Aws