/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #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 specified * service.

See Also:

AWS * API Reference

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

The ID that Cloud Map assigned to the service when you created it.

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

The ID that Cloud Map assigned to the service when you created it.

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

The ID that Cloud Map assigned to the service when you created it.

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

The ID that Cloud Map assigned to the service when you created it.

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

The ID that Cloud Map assigned to the service when you created it.

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

The ID that Cloud Map assigned to the service when you created it.

*/ inline Service& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

The ID that Cloud Map assigned to the service when you created it.

*/ inline Service& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

The ID that Cloud Map assigned to the service when you created it.

*/ inline Service& WithId(const char* value) { SetId(value); return *this;} /** *

The Amazon Resource Name (ARN) that Cloud Map assigns to the service when you * create it.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The Amazon Resource Name (ARN) that Cloud Map assigns to the service when you * create it.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The Amazon Resource Name (ARN) that Cloud Map assigns to the service when you * create it.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The Amazon Resource Name (ARN) that Cloud Map assigns to the service when you * create it.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The Amazon Resource Name (ARN) that Cloud Map assigns to the service when you * create it.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The Amazon Resource Name (ARN) that Cloud Map assigns to the service when you * create it.

*/ inline Service& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The Amazon Resource Name (ARN) that Cloud Map assigns to the service when you * create it.

*/ inline Service& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) that Cloud Map assigns to the service when you * create it.

*/ inline Service& WithArn(const char* value) { SetArn(value); return *this;} /** *

The name of the service.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the service.

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

The name of the service.

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

The name of the service.

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

The name of the service.

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

The name of the service.

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

The name of the service.

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

The name of the service.

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

The ID of the namespace that was used to create the service.

*/ inline const Aws::String& GetNamespaceId() const{ return m_namespaceId; } /** *

The ID of the namespace that was used to create the service.

*/ inline bool NamespaceIdHasBeenSet() const { return m_namespaceIdHasBeenSet; } /** *

The ID of the namespace that was used to create the service.

*/ inline void SetNamespaceId(const Aws::String& value) { m_namespaceIdHasBeenSet = true; m_namespaceId = value; } /** *

The ID of the namespace that was used to create the service.

*/ inline void SetNamespaceId(Aws::String&& value) { m_namespaceIdHasBeenSet = true; m_namespaceId = std::move(value); } /** *

The ID of the namespace that was used to create the service.

*/ inline void SetNamespaceId(const char* value) { m_namespaceIdHasBeenSet = true; m_namespaceId.assign(value); } /** *

The ID of the namespace that was used to create the service.

*/ inline Service& WithNamespaceId(const Aws::String& value) { SetNamespaceId(value); return *this;} /** *

The ID of the namespace that was used to create the service.

*/ inline Service& WithNamespaceId(Aws::String&& value) { SetNamespaceId(std::move(value)); return *this;} /** *

The ID of the namespace that was used to create the service.

*/ inline Service& WithNamespaceId(const char* value) { SetNamespaceId(value); return *this;} /** *

The description of the service.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description of the service.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description of the service.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description of the service.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description of the service.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description of the service.

*/ inline Service& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the service.

*/ inline Service& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description of the service.

*/ inline Service& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The number of instances that are currently associated with the service. * Instances that were previously associated with the service but that are deleted * aren't included in the count. The count might not reflect pending registrations * and deregistrations.

*/ inline int GetInstanceCount() const{ return m_instanceCount; } /** *

The number of instances that are currently associated with the service. * Instances that were previously associated with the service but that are deleted * aren't included in the count. The count might not reflect pending registrations * and deregistrations.

*/ inline bool InstanceCountHasBeenSet() const { return m_instanceCountHasBeenSet; } /** *

The number of instances that are currently associated with the service. * Instances that were previously associated with the service but that are deleted * aren't included in the count. The count might not reflect pending registrations * and deregistrations.

*/ inline void SetInstanceCount(int value) { m_instanceCountHasBeenSet = true; m_instanceCount = value; } /** *

The number of instances that are currently associated with the service. * Instances that were previously associated with the service but that are deleted * aren't included in the count. The count might not reflect pending registrations * and deregistrations.

*/ inline Service& WithInstanceCount(int value) { SetInstanceCount(value); return *this;} /** *

A complex type that contains information about the 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.

*/ inline const DnsConfig& GetDnsConfig() const{ return m_dnsConfig; } /** *

A complex type that contains information about the 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.

*/ inline bool DnsConfigHasBeenSet() const { return m_dnsConfigHasBeenSet; } /** *

A complex type that contains information about the 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.

*/ inline void SetDnsConfig(const DnsConfig& value) { m_dnsConfigHasBeenSet = true; m_dnsConfig = value; } /** *

A complex type that contains information about the 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.

*/ inline void SetDnsConfig(DnsConfig&& value) { m_dnsConfigHasBeenSet = true; m_dnsConfig = std::move(value); } /** *

A complex type that contains information about the 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.

*/ inline Service& WithDnsConfig(const DnsConfig& value) { SetDnsConfig(value); return *this;} /** *

A complex type that contains information about the 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.

*/ inline Service& WithDnsConfig(DnsConfig&& value) { SetDnsConfig(std::move(value)); return *this;} /** *

Describes the systems that can be used to discover the service instances.

*
DNS_HTTP

The service instances can be discovered using * either DNS queries or the DiscoverInstances API operation.

*
HTTP

The service instances can only be discovered using * the DiscoverInstances API operation.

DNS
*

Reserved.

*/ inline const ServiceType& GetType() const{ return m_type; } /** *

Describes the systems that can be used to discover the service instances.

*
DNS_HTTP

The service instances can be discovered using * either DNS queries or the DiscoverInstances API operation.

*
HTTP

The service instances can only be discovered using * the DiscoverInstances API operation.

DNS
*

Reserved.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

Describes the systems that can be used to discover the service instances.

*
DNS_HTTP

The service instances can be discovered using * either DNS queries or the DiscoverInstances API operation.

*
HTTP

The service instances can only be discovered using * the DiscoverInstances API operation.

DNS
*

Reserved.

*/ inline void SetType(const ServiceType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

Describes the systems that can be used to discover the service instances.

*
DNS_HTTP

The service instances can be discovered using * either DNS queries or the DiscoverInstances API operation.

*
HTTP

The service instances can only be discovered using * the DiscoverInstances API operation.

DNS
*

Reserved.

*/ inline void SetType(ServiceType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

Describes the systems that can be used to discover the service instances.

*
DNS_HTTP

The service instances can be discovered using * either DNS queries or the DiscoverInstances API operation.

*
HTTP

The service instances can only be discovered using * the DiscoverInstances API operation.

DNS
*

Reserved.

*/ inline Service& WithType(const ServiceType& value) { SetType(value); return *this;} /** *

Describes the systems that can be used to discover the service instances.

*
DNS_HTTP

The service instances can be discovered using * either DNS queries or the DiscoverInstances API operation.

*
HTTP

The service instances can only be discovered using * the DiscoverInstances API operation.

DNS
*

Reserved.

*/ inline Service& WithType(ServiceType&& value) { SetType(std::move(value)); return *this;} /** *

Public DNS and HTTP namespaces only. A complex type that contains * settings for an optional health check. If you specify settings for a health * check, Cloud Map associates the health check with the records that you specify * in DnsConfig.

For information about the charges for health * checks, see Amazon Route 53 * Pricing.

*/ inline const HealthCheckConfig& GetHealthCheckConfig() const{ return m_healthCheckConfig; } /** *

Public DNS and HTTP namespaces only. A complex type that contains * settings for an optional health check. If you specify settings for a health * check, Cloud Map associates the health check with the records that you specify * in DnsConfig.

For information about the charges for health * checks, see Amazon Route 53 * Pricing.

*/ inline bool HealthCheckConfigHasBeenSet() const { return m_healthCheckConfigHasBeenSet; } /** *

Public DNS and HTTP namespaces only. A complex type that contains * settings for an optional health check. If you specify settings for a health * check, Cloud Map associates the health check with the records that you specify * in DnsConfig.

For information about the charges for health * checks, see Amazon Route 53 * Pricing.

*/ inline void SetHealthCheckConfig(const HealthCheckConfig& value) { m_healthCheckConfigHasBeenSet = true; m_healthCheckConfig = value; } /** *

Public DNS and HTTP namespaces only. A complex type that contains * settings for an optional health check. If you specify settings for a health * check, Cloud Map associates the health check with the records that you specify * in DnsConfig.

For information about the charges for health * checks, see Amazon Route 53 * Pricing.

*/ inline void SetHealthCheckConfig(HealthCheckConfig&& value) { m_healthCheckConfigHasBeenSet = true; m_healthCheckConfig = std::move(value); } /** *

Public DNS and HTTP namespaces only. A complex type that contains * settings for an optional health check. If you specify settings for a health * check, Cloud Map associates the health check with the records that you specify * in DnsConfig.

For information about the charges for health * checks, see Amazon Route 53 * Pricing.

*/ inline Service& WithHealthCheckConfig(const HealthCheckConfig& value) { SetHealthCheckConfig(value); return *this;} /** *

Public DNS and HTTP namespaces only. A complex type that contains * settings for an optional health check. If you specify settings for a health * check, Cloud Map associates the health check with the records that you specify * in DnsConfig.

For information about the charges for health * checks, see Amazon Route 53 * Pricing.

*/ inline Service& WithHealthCheckConfig(HealthCheckConfig&& value) { SetHealthCheckConfig(std::move(value)); return *this;} /** *

A complex type that contains information about an optional custom health * check.

If you specify a health check configuration, you can * specify either HealthCheckCustomConfig or * HealthCheckConfig but not both.

*/ inline const HealthCheckCustomConfig& GetHealthCheckCustomConfig() const{ return m_healthCheckCustomConfig; } /** *

A complex type that contains information about an optional custom health * check.

If you specify a health check configuration, you can * specify either HealthCheckCustomConfig or * HealthCheckConfig but not both.

*/ inline bool HealthCheckCustomConfigHasBeenSet() const { return m_healthCheckCustomConfigHasBeenSet; } /** *

A complex type that contains information about an optional custom health * check.

If you specify a health check configuration, you can * specify either HealthCheckCustomConfig or * HealthCheckConfig but not both.

*/ inline void SetHealthCheckCustomConfig(const HealthCheckCustomConfig& value) { m_healthCheckCustomConfigHasBeenSet = true; m_healthCheckCustomConfig = value; } /** *

A complex type that contains information about an optional custom health * check.

If you specify a health check configuration, you can * specify either HealthCheckCustomConfig or * HealthCheckConfig but not both.

*/ inline void SetHealthCheckCustomConfig(HealthCheckCustomConfig&& value) { m_healthCheckCustomConfigHasBeenSet = true; m_healthCheckCustomConfig = std::move(value); } /** *

A complex type that contains information about an optional custom health * check.

If you specify a health check configuration, you can * specify either HealthCheckCustomConfig or * HealthCheckConfig but not both.

*/ inline Service& WithHealthCheckCustomConfig(const HealthCheckCustomConfig& value) { SetHealthCheckCustomConfig(value); return *this;} /** *

A complex type that contains information about an optional custom health * check.

If you specify a health check configuration, you can * specify either HealthCheckCustomConfig or * HealthCheckConfig but not both.

*/ inline Service& WithHealthCheckCustomConfig(HealthCheckCustomConfig&& value) { SetHealthCheckCustomConfig(std::move(value)); return *this;} /** *

The date and time that the service was created, in Unix format and * Coordinated Universal Time (UTC). The value of CreateDate is * accurate to milliseconds. For example, the value 1516925490.087 * represents Friday, January 26, 2018 12:11:30.087 AM.

*/ inline const Aws::Utils::DateTime& GetCreateDate() const{ return m_createDate; } /** *

The date and time that the service was created, in Unix format and * Coordinated Universal Time (UTC). The value of CreateDate is * accurate to milliseconds. For example, the value 1516925490.087 * represents Friday, January 26, 2018 12:11:30.087 AM.

*/ inline bool CreateDateHasBeenSet() const { return m_createDateHasBeenSet; } /** *

The date and time that the service was created, in Unix format and * Coordinated Universal Time (UTC). The value of CreateDate is * accurate to milliseconds. For example, the value 1516925490.087 * represents Friday, January 26, 2018 12:11:30.087 AM.

*/ inline void SetCreateDate(const Aws::Utils::DateTime& value) { m_createDateHasBeenSet = true; m_createDate = value; } /** *

The date and time that the service was created, in Unix format and * Coordinated Universal Time (UTC). The value of CreateDate is * accurate to milliseconds. For example, the value 1516925490.087 * represents Friday, January 26, 2018 12:11:30.087 AM.

*/ inline void SetCreateDate(Aws::Utils::DateTime&& value) { m_createDateHasBeenSet = true; m_createDate = std::move(value); } /** *

The date and time that the service was created, in Unix format and * Coordinated Universal Time (UTC). The value of CreateDate is * accurate to milliseconds. For example, the value 1516925490.087 * represents Friday, January 26, 2018 12:11:30.087 AM.

*/ inline Service& WithCreateDate(const Aws::Utils::DateTime& value) { SetCreateDate(value); return *this;} /** *

The date and time that the service was created, in Unix format and * Coordinated Universal Time (UTC). The value of CreateDate is * accurate to milliseconds. For example, the value 1516925490.087 * represents Friday, January 26, 2018 12:11:30.087 AM.

*/ inline Service& WithCreateDate(Aws::Utils::DateTime&& value) { SetCreateDate(std::move(value)); return *this;} /** *

A unique string that identifies the request and that allows failed requests * to be retried without the risk of running the operation twice. * CreatorRequestId can be any unique string (for example, a * date/timestamp).

*/ inline const Aws::String& GetCreatorRequestId() const{ return m_creatorRequestId; } /** *

A unique string that identifies the request and that allows failed requests * to be retried without the risk of running the operation twice. * CreatorRequestId can be any unique string (for example, a * date/timestamp).

*/ inline bool CreatorRequestIdHasBeenSet() const { return m_creatorRequestIdHasBeenSet; } /** *

A unique string that identifies the request and that allows failed requests * to be retried without the risk of running the operation twice. * CreatorRequestId can be any unique string (for example, a * date/timestamp).

*/ inline void SetCreatorRequestId(const Aws::String& value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId = value; } /** *

A unique string that identifies the request and that allows failed requests * to be retried without the risk of running the operation twice. * CreatorRequestId can be any unique string (for example, a * date/timestamp).

*/ inline void SetCreatorRequestId(Aws::String&& value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId = std::move(value); } /** *

A unique string that identifies the request and that allows failed requests * to be retried without the risk of running the operation twice. * CreatorRequestId can be any unique string (for example, a * date/timestamp).

*/ inline void SetCreatorRequestId(const char* value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId.assign(value); } /** *

A unique string that identifies the request and that allows failed requests * to be retried without the risk of running the operation twice. * CreatorRequestId can be any unique string (for example, a * date/timestamp).

*/ inline Service& WithCreatorRequestId(const Aws::String& value) { SetCreatorRequestId(value); return *this;} /** *

A unique string that identifies the request and that allows failed requests * to be retried without the risk of running the operation twice. * CreatorRequestId can be any unique string (for example, a * date/timestamp).

*/ inline Service& WithCreatorRequestId(Aws::String&& value) { SetCreatorRequestId(std::move(value)); return *this;} /** *

A unique string that identifies the request and that allows failed requests * to be retried without the risk of running the operation twice. * CreatorRequestId can be any unique string (for example, a * date/timestamp).

*/ inline Service& WithCreatorRequestId(const char* value) { SetCreatorRequestId(value); return *this;} private: Aws::String m_id; bool m_idHasBeenSet = false; Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_namespaceId; bool m_namespaceIdHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; int m_instanceCount; bool m_instanceCountHasBeenSet = false; DnsConfig m_dnsConfig; bool m_dnsConfigHasBeenSet = false; ServiceType m_type; bool m_typeHasBeenSet = false; HealthCheckConfig m_healthCheckConfig; bool m_healthCheckConfigHasBeenSet = false; HealthCheckCustomConfig m_healthCheckCustomConfig; bool m_healthCheckCustomConfigHasBeenSet = false; Aws::Utils::DateTime m_createDate; bool m_createDateHasBeenSet = false; Aws::String m_creatorRequestId; bool m_creatorRequestIdHasBeenSet = false; }; } // namespace Model } // namespace ServiceDiscovery } // namespace Aws