329 lines
20 KiB
C
329 lines
20 KiB
C
|
|
/**
|
|||
|
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|||
|
|
* SPDX-License-Identifier: Apache-2.0.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#pragma once
|
|||
|
|
#include <aws/servicediscovery/ServiceDiscovery_EXPORTS.h>
|
|||
|
|
#include <aws/servicediscovery/model/RoutingPolicy.h>
|
|||
|
|
#include <aws/core/utils/memory/stl/AWSVector.h>
|
|||
|
|
#include <aws/servicediscovery/model/DnsRecord.h>
|
|||
|
|
#include <utility>
|
|||
|
|
|
|||
|
|
namespace Aws
|
|||
|
|
{
|
|||
|
|
namespace Utils
|
|||
|
|
{
|
|||
|
|
namespace Json
|
|||
|
|
{
|
|||
|
|
class JsonValue;
|
|||
|
|
class JsonView;
|
|||
|
|
} // namespace Json
|
|||
|
|
} // namespace Utils
|
|||
|
|
namespace ServiceDiscovery
|
|||
|
|
{
|
|||
|
|
namespace Model
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>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.</p><p><h3>See Also:</h3> <a
|
|||
|
|
* href="http://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DnsConfig">AWS
|
|||
|
|
* API Reference</a></p>
|
|||
|
|
*/
|
|||
|
|
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;
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>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.</p> <p>If you want to use this service to register instances
|
|||
|
|
* that create alias records, specify <code>WEIGHTED</code> for the routing
|
|||
|
|
* policy.</p> <p>You can specify the following values:</p> <p>
|
|||
|
|
* <b>MULTIVALUE</b> </p> <p>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.</p> <p>For example, suppose the service includes configurations for
|
|||
|
|
* one <code>A</code> 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.</p> <p>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.</p> <p>For more information about the multivalue routing policy, see
|
|||
|
|
* <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue">Multivalue
|
|||
|
|
* Answer Routing</a> in the <i>Route 53 Developer Guide</i>.</p> <p>
|
|||
|
|
* <b>WEIGHTED</b> </p> <p>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.</p> <p>For example, suppose the service includes
|
|||
|
|
* configurations for one <code>A</code> 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.</p> <p>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.</p> <p>For more information
|
|||
|
|
* about the weighted routing policy, see <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted">Weighted
|
|||
|
|
* Routing</a> in the <i>Route 53 Developer Guide</i>.</p>
|
|||
|
|
*/
|
|||
|
|
inline const RoutingPolicy& GetRoutingPolicy() const{ return m_routingPolicy; }
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>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.</p> <p>If you want to use this service to register instances
|
|||
|
|
* that create alias records, specify <code>WEIGHTED</code> for the routing
|
|||
|
|
* policy.</p> <p>You can specify the following values:</p> <p>
|
|||
|
|
* <b>MULTIVALUE</b> </p> <p>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.</p> <p>For example, suppose the service includes configurations for
|
|||
|
|
* one <code>A</code> 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.</p> <p>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.</p> <p>For more information about the multivalue routing policy, see
|
|||
|
|
* <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue">Multivalue
|
|||
|
|
* Answer Routing</a> in the <i>Route 53 Developer Guide</i>.</p> <p>
|
|||
|
|
* <b>WEIGHTED</b> </p> <p>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.</p> <p>For example, suppose the service includes
|
|||
|
|
* configurations for one <code>A</code> 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.</p> <p>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.</p> <p>For more information
|
|||
|
|
* about the weighted routing policy, see <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted">Weighted
|
|||
|
|
* Routing</a> in the <i>Route 53 Developer Guide</i>.</p>
|
|||
|
|
*/
|
|||
|
|
inline bool RoutingPolicyHasBeenSet() const { return m_routingPolicyHasBeenSet; }
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>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.</p> <p>If you want to use this service to register instances
|
|||
|
|
* that create alias records, specify <code>WEIGHTED</code> for the routing
|
|||
|
|
* policy.</p> <p>You can specify the following values:</p> <p>
|
|||
|
|
* <b>MULTIVALUE</b> </p> <p>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.</p> <p>For example, suppose the service includes configurations for
|
|||
|
|
* one <code>A</code> 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.</p> <p>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.</p> <p>For more information about the multivalue routing policy, see
|
|||
|
|
* <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue">Multivalue
|
|||
|
|
* Answer Routing</a> in the <i>Route 53 Developer Guide</i>.</p> <p>
|
|||
|
|
* <b>WEIGHTED</b> </p> <p>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.</p> <p>For example, suppose the service includes
|
|||
|
|
* configurations for one <code>A</code> 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.</p> <p>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.</p> <p>For more information
|
|||
|
|
* about the weighted routing policy, see <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted">Weighted
|
|||
|
|
* Routing</a> in the <i>Route 53 Developer Guide</i>.</p>
|
|||
|
|
*/
|
|||
|
|
inline void SetRoutingPolicy(const RoutingPolicy& value) { m_routingPolicyHasBeenSet = true; m_routingPolicy = value; }
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>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.</p> <p>If you want to use this service to register instances
|
|||
|
|
* that create alias records, specify <code>WEIGHTED</code> for the routing
|
|||
|
|
* policy.</p> <p>You can specify the following values:</p> <p>
|
|||
|
|
* <b>MULTIVALUE</b> </p> <p>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.</p> <p>For example, suppose the service includes configurations for
|
|||
|
|
* one <code>A</code> 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.</p> <p>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.</p> <p>For more information about the multivalue routing policy, see
|
|||
|
|
* <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue">Multivalue
|
|||
|
|
* Answer Routing</a> in the <i>Route 53 Developer Guide</i>.</p> <p>
|
|||
|
|
* <b>WEIGHTED</b> </p> <p>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.</p> <p>For example, suppose the service includes
|
|||
|
|
* configurations for one <code>A</code> 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.</p> <p>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.</p> <p>For more information
|
|||
|
|
* about the weighted routing policy, see <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted">Weighted
|
|||
|
|
* Routing</a> in the <i>Route 53 Developer Guide</i>.</p>
|
|||
|
|
*/
|
|||
|
|
inline void SetRoutingPolicy(RoutingPolicy&& value) { m_routingPolicyHasBeenSet = true; m_routingPolicy = std::move(value); }
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>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.</p> <p>If you want to use this service to register instances
|
|||
|
|
* that create alias records, specify <code>WEIGHTED</code> for the routing
|
|||
|
|
* policy.</p> <p>You can specify the following values:</p> <p>
|
|||
|
|
* <b>MULTIVALUE</b> </p> <p>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.</p> <p>For example, suppose the service includes configurations for
|
|||
|
|
* one <code>A</code> 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.</p> <p>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.</p> <p>For more information about the multivalue routing policy, see
|
|||
|
|
* <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue">Multivalue
|
|||
|
|
* Answer Routing</a> in the <i>Route 53 Developer Guide</i>.</p> <p>
|
|||
|
|
* <b>WEIGHTED</b> </p> <p>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.</p> <p>For example, suppose the service includes
|
|||
|
|
* configurations for one <code>A</code> 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.</p> <p>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.</p> <p>For more information
|
|||
|
|
* about the weighted routing policy, see <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted">Weighted
|
|||
|
|
* Routing</a> in the <i>Route 53 Developer Guide</i>.</p>
|
|||
|
|
*/
|
|||
|
|
inline DnsConfig& WithRoutingPolicy(const RoutingPolicy& value) { SetRoutingPolicy(value); return *this;}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>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.</p> <p>If you want to use this service to register instances
|
|||
|
|
* that create alias records, specify <code>WEIGHTED</code> for the routing
|
|||
|
|
* policy.</p> <p>You can specify the following values:</p> <p>
|
|||
|
|
* <b>MULTIVALUE</b> </p> <p>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.</p> <p>For example, suppose the service includes configurations for
|
|||
|
|
* one <code>A</code> 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.</p> <p>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.</p> <p>For more information about the multivalue routing policy, see
|
|||
|
|
* <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue">Multivalue
|
|||
|
|
* Answer Routing</a> in the <i>Route 53 Developer Guide</i>.</p> <p>
|
|||
|
|
* <b>WEIGHTED</b> </p> <p>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.</p> <p>For example, suppose the service includes
|
|||
|
|
* configurations for one <code>A</code> 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.</p> <p>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.</p> <p>For more information
|
|||
|
|
* about the weighted routing policy, see <a
|
|||
|
|
* href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted">Weighted
|
|||
|
|
* Routing</a> in the <i>Route 53 Developer Guide</i>.</p>
|
|||
|
|
*/
|
|||
|
|
inline DnsConfig& WithRoutingPolicy(RoutingPolicy&& value) { SetRoutingPolicy(std::move(value)); return *this;}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>An array that contains one <code>DnsRecord</code> object for each Route 53
|
|||
|
|
* DNS record that you want AWS Cloud Map to create when you register an
|
|||
|
|
* instance.</p>
|
|||
|
|
*/
|
|||
|
|
inline const Aws::Vector<DnsRecord>& GetDnsRecords() const{ return m_dnsRecords; }
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>An array that contains one <code>DnsRecord</code> object for each Route 53
|
|||
|
|
* DNS record that you want AWS Cloud Map to create when you register an
|
|||
|
|
* instance.</p>
|
|||
|
|
*/
|
|||
|
|
inline bool DnsRecordsHasBeenSet() const { return m_dnsRecordsHasBeenSet; }
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>An array that contains one <code>DnsRecord</code> object for each Route 53
|
|||
|
|
* DNS record that you want AWS Cloud Map to create when you register an
|
|||
|
|
* instance.</p>
|
|||
|
|
*/
|
|||
|
|
inline void SetDnsRecords(const Aws::Vector<DnsRecord>& value) { m_dnsRecordsHasBeenSet = true; m_dnsRecords = value; }
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>An array that contains one <code>DnsRecord</code> object for each Route 53
|
|||
|
|
* DNS record that you want AWS Cloud Map to create when you register an
|
|||
|
|
* instance.</p>
|
|||
|
|
*/
|
|||
|
|
inline void SetDnsRecords(Aws::Vector<DnsRecord>&& value) { m_dnsRecordsHasBeenSet = true; m_dnsRecords = std::move(value); }
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>An array that contains one <code>DnsRecord</code> object for each Route 53
|
|||
|
|
* DNS record that you want AWS Cloud Map to create when you register an
|
|||
|
|
* instance.</p>
|
|||
|
|
*/
|
|||
|
|
inline DnsConfig& WithDnsRecords(const Aws::Vector<DnsRecord>& value) { SetDnsRecords(value); return *this;}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>An array that contains one <code>DnsRecord</code> object for each Route 53
|
|||
|
|
* DNS record that you want AWS Cloud Map to create when you register an
|
|||
|
|
* instance.</p>
|
|||
|
|
*/
|
|||
|
|
inline DnsConfig& WithDnsRecords(Aws::Vector<DnsRecord>&& value) { SetDnsRecords(std::move(value)); return *this;}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>An array that contains one <code>DnsRecord</code> object for each Route 53
|
|||
|
|
* DNS record that you want AWS Cloud Map to create when you register an
|
|||
|
|
* instance.</p>
|
|||
|
|
*/
|
|||
|
|
inline DnsConfig& AddDnsRecords(const DnsRecord& value) { m_dnsRecordsHasBeenSet = true; m_dnsRecords.push_back(value); return *this; }
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <p>An array that contains one <code>DnsRecord</code> object for each Route 53
|
|||
|
|
* DNS record that you want AWS Cloud Map to create when you register an
|
|||
|
|
* instance.</p>
|
|||
|
|
*/
|
|||
|
|
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<DnsRecord> m_dnsRecords;
|
|||
|
|
bool m_dnsRecordsHasBeenSet;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
} // namespace Model
|
|||
|
|
} // namespace ServiceDiscovery
|
|||
|
|
} // namespace Aws
|