/** * 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 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace ServiceDiscovery { namespace Model { class CreateHttpNamespaceRequest; class CreatePrivateDnsNamespaceRequest; class CreatePublicDnsNamespaceRequest; class CreateServiceRequest; class DeleteNamespaceRequest; class DeleteServiceRequest; class DeregisterInstanceRequest; class DiscoverInstancesRequest; class GetInstanceRequest; class GetInstancesHealthStatusRequest; class GetNamespaceRequest; class GetOperationRequest; class GetServiceRequest; class ListInstancesRequest; class ListNamespacesRequest; class ListOperationsRequest; class ListServicesRequest; class ListTagsForResourceRequest; class RegisterInstanceRequest; class TagResourceRequest; class UntagResourceRequest; class UpdateInstanceCustomHealthStatusRequest; class UpdateServiceRequest; typedef Aws::Utils::Outcome CreateHttpNamespaceOutcome; typedef Aws::Utils::Outcome CreatePrivateDnsNamespaceOutcome; typedef Aws::Utils::Outcome CreatePublicDnsNamespaceOutcome; typedef Aws::Utils::Outcome CreateServiceOutcome; typedef Aws::Utils::Outcome DeleteNamespaceOutcome; typedef Aws::Utils::Outcome DeleteServiceOutcome; typedef Aws::Utils::Outcome DeregisterInstanceOutcome; typedef Aws::Utils::Outcome DiscoverInstancesOutcome; typedef Aws::Utils::Outcome GetInstanceOutcome; typedef Aws::Utils::Outcome GetInstancesHealthStatusOutcome; typedef Aws::Utils::Outcome GetNamespaceOutcome; typedef Aws::Utils::Outcome GetOperationOutcome; typedef Aws::Utils::Outcome GetServiceOutcome; typedef Aws::Utils::Outcome ListInstancesOutcome; typedef Aws::Utils::Outcome ListNamespacesOutcome; typedef Aws::Utils::Outcome ListOperationsOutcome; typedef Aws::Utils::Outcome ListServicesOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome RegisterInstanceOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef Aws::Utils::Outcome UpdateInstanceCustomHealthStatusOutcome; typedef Aws::Utils::Outcome UpdateServiceOutcome; typedef std::future CreateHttpNamespaceOutcomeCallable; typedef std::future CreatePrivateDnsNamespaceOutcomeCallable; typedef std::future CreatePublicDnsNamespaceOutcomeCallable; typedef std::future CreateServiceOutcomeCallable; typedef std::future DeleteNamespaceOutcomeCallable; typedef std::future DeleteServiceOutcomeCallable; typedef std::future DeregisterInstanceOutcomeCallable; typedef std::future DiscoverInstancesOutcomeCallable; typedef std::future GetInstanceOutcomeCallable; typedef std::future GetInstancesHealthStatusOutcomeCallable; typedef std::future GetNamespaceOutcomeCallable; typedef std::future GetOperationOutcomeCallable; typedef std::future GetServiceOutcomeCallable; typedef std::future ListInstancesOutcomeCallable; typedef std::future ListNamespacesOutcomeCallable; typedef std::future ListOperationsOutcomeCallable; typedef std::future ListServicesOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future RegisterInstanceOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; typedef std::future UpdateInstanceCustomHealthStatusOutcomeCallable; typedef std::future UpdateServiceOutcomeCallable; } // namespace Model class ServiceDiscoveryClient; typedef std::function&) > CreateHttpNamespaceResponseReceivedHandler; typedef std::function&) > CreatePrivateDnsNamespaceResponseReceivedHandler; typedef std::function&) > CreatePublicDnsNamespaceResponseReceivedHandler; typedef std::function&) > CreateServiceResponseReceivedHandler; typedef std::function&) > DeleteNamespaceResponseReceivedHandler; typedef std::function&) > DeleteServiceResponseReceivedHandler; typedef std::function&) > DeregisterInstanceResponseReceivedHandler; typedef std::function&) > DiscoverInstancesResponseReceivedHandler; typedef std::function&) > GetInstanceResponseReceivedHandler; typedef std::function&) > GetInstancesHealthStatusResponseReceivedHandler; typedef std::function&) > GetNamespaceResponseReceivedHandler; typedef std::function&) > GetOperationResponseReceivedHandler; typedef std::function&) > GetServiceResponseReceivedHandler; typedef std::function&) > ListInstancesResponseReceivedHandler; typedef std::function&) > ListNamespacesResponseReceivedHandler; typedef std::function&) > ListOperationsResponseReceivedHandler; typedef std::function&) > ListServicesResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > RegisterInstanceResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; typedef std::function&) > UpdateInstanceCustomHealthStatusResponseReceivedHandler; typedef std::function&) > UpdateServiceResponseReceivedHandler; /** *

AWS Cloud Map lets you configure public DNS, private DNS, or HTTP namespaces * that your microservice applications run in. When an instance of the service * becomes available, you can call the AWS Cloud Map API to register the instance * with AWS Cloud Map. For public or private DNS namespaces, AWS Cloud Map * automatically creates DNS records and an optional health check. Clients that * submit public or private DNS queries, or HTTP requests, for the service receive * an answer that contains up to eight healthy records.

*/ class AWS_SERVICEDISCOVERY_API ServiceDiscoveryClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ServiceDiscoveryClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ServiceDiscoveryClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ ServiceDiscoveryClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~ServiceDiscoveryClient(); /** *

Creates an HTTP namespace. Service instances that you register using an HTTP * namespace can be discovered using a DiscoverInstances request but * can't be discovered using DNS.

For the current quota on the number of * namespaces that you can create using the same AWS account, see AWS * Cloud Map quotas in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateHttpNamespaceOutcome CreateHttpNamespace(const Model::CreateHttpNamespaceRequest& request) const; /** *

Creates an HTTP namespace. Service instances that you register using an HTTP * namespace can be discovered using a DiscoverInstances request but * can't be discovered using DNS.

For the current quota on the number of * namespaces that you can create using the same AWS account, see AWS * Cloud Map quotas in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateHttpNamespaceOutcomeCallable CreateHttpNamespaceCallable(const Model::CreateHttpNamespaceRequest& request) const; /** *

Creates an HTTP namespace. Service instances that you register using an HTTP * namespace can be discovered using a DiscoverInstances request but * can't be discovered using DNS.

For the current quota on the number of * namespaces that you can create using the same AWS account, see AWS * Cloud Map quotas in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateHttpNamespaceAsync(const Model::CreateHttpNamespaceRequest& request, const CreateHttpNamespaceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a private namespace based on DNS, which will be visible only inside a * specified Amazon VPC. The namespace defines your service naming scheme. For * example, if you name your namespace example.com and name your * service backend, the resulting DNS name for the service will be * backend.example.com. For the current quota on the number of * namespaces that you can create using the same AWS account, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreatePrivateDnsNamespaceOutcome CreatePrivateDnsNamespace(const Model::CreatePrivateDnsNamespaceRequest& request) const; /** *

Creates a private namespace based on DNS, which will be visible only inside a * specified Amazon VPC. The namespace defines your service naming scheme. For * example, if you name your namespace example.com and name your * service backend, the resulting DNS name for the service will be * backend.example.com. For the current quota on the number of * namespaces that you can create using the same AWS account, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreatePrivateDnsNamespaceOutcomeCallable CreatePrivateDnsNamespaceCallable(const Model::CreatePrivateDnsNamespaceRequest& request) const; /** *

Creates a private namespace based on DNS, which will be visible only inside a * specified Amazon VPC. The namespace defines your service naming scheme. For * example, if you name your namespace example.com and name your * service backend, the resulting DNS name for the service will be * backend.example.com. For the current quota on the number of * namespaces that you can create using the same AWS account, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreatePrivateDnsNamespaceAsync(const Model::CreatePrivateDnsNamespaceRequest& request, const CreatePrivateDnsNamespaceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a public namespace based on DNS, which will be visible on the * internet. The namespace defines your service naming scheme. For example, if you * name your namespace example.com and name your service * backend, the resulting DNS name for the service will be * backend.example.com. For the current quota on the number of * namespaces that you can create using the same AWS account, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreatePublicDnsNamespaceOutcome CreatePublicDnsNamespace(const Model::CreatePublicDnsNamespaceRequest& request) const; /** *

Creates a public namespace based on DNS, which will be visible on the * internet. The namespace defines your service naming scheme. For example, if you * name your namespace example.com and name your service * backend, the resulting DNS name for the service will be * backend.example.com. For the current quota on the number of * namespaces that you can create using the same AWS account, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreatePublicDnsNamespaceOutcomeCallable CreatePublicDnsNamespaceCallable(const Model::CreatePublicDnsNamespaceRequest& request) const; /** *

Creates a public namespace based on DNS, which will be visible on the * internet. The namespace defines your service naming scheme. For example, if you * name your namespace example.com and name your service * backend, the resulting DNS name for the service will be * backend.example.com. For the current quota on the number of * namespaces that you can create using the same AWS account, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreatePublicDnsNamespaceAsync(const Model::CreatePublicDnsNamespaceRequest& request, const CreatePublicDnsNamespaceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a service, which defines the configuration for the following * entities:

  • For public and private DNS namespaces, one of the * following combinations of DNS records in Amazon Route 53:

    • * A

    • AAAA

    • * A and AAAA

    • SRV

      *
    • CNAME

  • Optionally, a * health check

After you create the service, you can submit a * RegisterInstance * request, and AWS Cloud Map uses the values in the configuration to create the * specified entities.

For the current quota on the number of instances that * you can register using the same namespace and using the same service, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateServiceOutcome CreateService(const Model::CreateServiceRequest& request) const; /** *

Creates a service, which defines the configuration for the following * entities:

  • For public and private DNS namespaces, one of the * following combinations of DNS records in Amazon Route 53:

    • * A

    • AAAA

    • * A and AAAA

    • SRV

      *
    • CNAME

  • Optionally, a * health check

After you create the service, you can submit a * RegisterInstance * request, and AWS Cloud Map uses the values in the configuration to create the * specified entities.

For the current quota on the number of instances that * you can register using the same namespace and using the same service, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateServiceOutcomeCallable CreateServiceCallable(const Model::CreateServiceRequest& request) const; /** *

Creates a service, which defines the configuration for the following * entities:

  • For public and private DNS namespaces, one of the * following combinations of DNS records in Amazon Route 53:

    • * A

    • AAAA

    • * A and AAAA

    • SRV

      *
    • CNAME

  • Optionally, a * health check

After you create the service, you can submit a * RegisterInstance * request, and AWS Cloud Map uses the values in the configuration to create the * specified entities.

For the current quota on the number of instances that * you can register using the same namespace and using the same service, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateServiceAsync(const Model::CreateServiceRequest& request, const CreateServiceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a namespace from the current account. If the namespace still contains * one or more services, the request fails.

See Also:

AWS * API Reference

*/ virtual Model::DeleteNamespaceOutcome DeleteNamespace(const Model::DeleteNamespaceRequest& request) const; /** *

Deletes a namespace from the current account. If the namespace still contains * one or more services, the request fails.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteNamespaceOutcomeCallable DeleteNamespaceCallable(const Model::DeleteNamespaceRequest& request) const; /** *

Deletes a namespace from the current account. If the namespace still contains * one or more services, the request fails.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteNamespaceAsync(const Model::DeleteNamespaceRequest& request, const DeleteNamespaceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a specified service. If the service still contains one or more * registered instances, the request fails.

See Also:

AWS * API Reference

*/ virtual Model::DeleteServiceOutcome DeleteService(const Model::DeleteServiceRequest& request) const; /** *

Deletes a specified service. If the service still contains one or more * registered instances, the request fails.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteServiceOutcomeCallable DeleteServiceCallable(const Model::DeleteServiceRequest& request) const; /** *

Deletes a specified service. If the service still contains one or more * registered instances, the request fails.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteServiceAsync(const Model::DeleteServiceRequest& request, const DeleteServiceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the Amazon Route 53 DNS records and health check, if any, that AWS * Cloud Map created for the specified instance.

See Also:

AWS * API Reference

*/ virtual Model::DeregisterInstanceOutcome DeregisterInstance(const Model::DeregisterInstanceRequest& request) const; /** *

Deletes the Amazon Route 53 DNS records and health check, if any, that AWS * Cloud Map created for the specified instance.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeregisterInstanceOutcomeCallable DeregisterInstanceCallable(const Model::DeregisterInstanceRequest& request) const; /** *

Deletes the Amazon Route 53 DNS records and health check, if any, that AWS * Cloud Map created for the specified instance.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeregisterInstanceAsync(const Model::DeregisterInstanceRequest& request, const DeregisterInstanceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Discovers registered instances for a specified namespace and service. You can * use DiscoverInstances to discover instances for any type of * namespace. For public and private DNS namespaces, you can also use DNS queries * to discover instances.

See Also:

AWS * API Reference

*/ virtual Model::DiscoverInstancesOutcome DiscoverInstances(const Model::DiscoverInstancesRequest& request) const; /** *

Discovers registered instances for a specified namespace and service. You can * use DiscoverInstances to discover instances for any type of * namespace. For public and private DNS namespaces, you can also use DNS queries * to discover instances.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DiscoverInstancesOutcomeCallable DiscoverInstancesCallable(const Model::DiscoverInstancesRequest& request) const; /** *

Discovers registered instances for a specified namespace and service. You can * use DiscoverInstances to discover instances for any type of * namespace. For public and private DNS namespaces, you can also use DNS queries * to discover instances.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DiscoverInstancesAsync(const Model::DiscoverInstancesRequest& request, const DiscoverInstancesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Gets information about a specified instance.

See Also:

AWS * API Reference

*/ virtual Model::GetInstanceOutcome GetInstance(const Model::GetInstanceRequest& request) const; /** *

Gets information about a specified instance.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetInstanceOutcomeCallable GetInstanceCallable(const Model::GetInstanceRequest& request) const; /** *

Gets information about a specified instance.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetInstanceAsync(const Model::GetInstanceRequest& request, const GetInstanceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Gets the current health status (Healthy, Unhealthy, * or Unknown) of one or more instances that are associated with a * specified service.

There is a brief delay between when you * register an instance and when the health status for the instance is available. *

See Also:

AWS * API Reference

*/ virtual Model::GetInstancesHealthStatusOutcome GetInstancesHealthStatus(const Model::GetInstancesHealthStatusRequest& request) const; /** *

Gets the current health status (Healthy, Unhealthy, * or Unknown) of one or more instances that are associated with a * specified service.

There is a brief delay between when you * register an instance and when the health status for the instance is available. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetInstancesHealthStatusOutcomeCallable GetInstancesHealthStatusCallable(const Model::GetInstancesHealthStatusRequest& request) const; /** *

Gets the current health status (Healthy, Unhealthy, * or Unknown) of one or more instances that are associated with a * specified service.

There is a brief delay between when you * register an instance and when the health status for the instance is available. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetInstancesHealthStatusAsync(const Model::GetInstancesHealthStatusRequest& request, const GetInstancesHealthStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Gets information about a namespace.

See Also:

AWS * API Reference

*/ virtual Model::GetNamespaceOutcome GetNamespace(const Model::GetNamespaceRequest& request) const; /** *

Gets information about a namespace.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetNamespaceOutcomeCallable GetNamespaceCallable(const Model::GetNamespaceRequest& request) const; /** *

Gets information about a namespace.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetNamespaceAsync(const Model::GetNamespaceRequest& request, const GetNamespaceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Gets information about any operation that returns an operation ID in the * response, such as a CreateService request.

To get a * list of operations that match specified criteria, see ListOperations.

*

See Also:

AWS * API Reference

*/ virtual Model::GetOperationOutcome GetOperation(const Model::GetOperationRequest& request) const; /** *

Gets information about any operation that returns an operation ID in the * response, such as a CreateService request.

To get a * list of operations that match specified criteria, see ListOperations.

*

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetOperationOutcomeCallable GetOperationCallable(const Model::GetOperationRequest& request) const; /** *

Gets information about any operation that returns an operation ID in the * response, such as a CreateService request.

To get a * list of operations that match specified criteria, see ListOperations.

*

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetOperationAsync(const Model::GetOperationRequest& request, const GetOperationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Gets the settings for a specified service.

See Also:

AWS * API Reference

*/ virtual Model::GetServiceOutcome GetService(const Model::GetServiceRequest& request) const; /** *

Gets the settings for a specified service.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetServiceOutcomeCallable GetServiceCallable(const Model::GetServiceRequest& request) const; /** *

Gets the settings for a specified service.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetServiceAsync(const Model::GetServiceRequest& request, const GetServiceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists summary information about the instances that you registered by using a * specified service.

See Also:

AWS * API Reference

*/ virtual Model::ListInstancesOutcome ListInstances(const Model::ListInstancesRequest& request) const; /** *

Lists summary information about the instances that you registered by using a * specified service.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListInstancesOutcomeCallable ListInstancesCallable(const Model::ListInstancesRequest& request) const; /** *

Lists summary information about the instances that you registered by using a * specified service.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListInstancesAsync(const Model::ListInstancesRequest& request, const ListInstancesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists summary information about the namespaces that were created by the * current AWS account.

See Also:

AWS * API Reference

*/ virtual Model::ListNamespacesOutcome ListNamespaces(const Model::ListNamespacesRequest& request) const; /** *

Lists summary information about the namespaces that were created by the * current AWS account.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListNamespacesOutcomeCallable ListNamespacesCallable(const Model::ListNamespacesRequest& request) const; /** *

Lists summary information about the namespaces that were created by the * current AWS account.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListNamespacesAsync(const Model::ListNamespacesRequest& request, const ListNamespacesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists operations that match the criteria that you specify.

See * Also:

AWS * API Reference

*/ virtual Model::ListOperationsOutcome ListOperations(const Model::ListOperationsRequest& request) const; /** *

Lists operations that match the criteria that you specify.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListOperationsOutcomeCallable ListOperationsCallable(const Model::ListOperationsRequest& request) const; /** *

Lists operations that match the criteria that you specify.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListOperationsAsync(const Model::ListOperationsRequest& request, const ListOperationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists summary information for all the services that are associated with one * or more specified namespaces.

See Also:

AWS * API Reference

*/ virtual Model::ListServicesOutcome ListServices(const Model::ListServicesRequest& request) const; /** *

Lists summary information for all the services that are associated with one * or more specified namespaces.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListServicesOutcomeCallable ListServicesCallable(const Model::ListServicesRequest& request) const; /** *

Lists summary information for all the services that are associated with one * or more specified namespaces.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListServicesAsync(const Model::ListServicesRequest& request, const ListServicesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists tags for the specified resource.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** *

Lists tags for the specified resource.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; /** *

Lists tags for the specified resource.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates or updates one or more records and, optionally, creates a health * check based on the settings in a specified service. When you submit a * RegisterInstance request, the following occurs:

  • *

    For each DNS record that you define in the service that is specified by * ServiceId, a record is created or updated in the hosted zone that * is associated with the corresponding namespace.

  • If the service * includes HealthCheckConfig, a health check is created based on the * settings in the health check configuration.

  • The health check, * if any, is associated with each of the new or updated records.

*

One RegisterInstance request must complete before * you can submit another request and specify the same service ID and instance * ID.

For more information, see CreateService.

*

When AWS Cloud Map receives a DNS query for the specified DNS name, it * returns the applicable value:

  • If the health check is * healthy: returns all the records

  • If the health check * is unhealthy: returns the applicable value for the last healthy instance

    *
  • If you didn't specify a health check configuration: * returns all the records

For the current quota on the number * of instances that you can register using the same namespace and using the same * service, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::RegisterInstanceOutcome RegisterInstance(const Model::RegisterInstanceRequest& request) const; /** *

Creates or updates one or more records and, optionally, creates a health * check based on the settings in a specified service. When you submit a * RegisterInstance request, the following occurs:

  • *

    For each DNS record that you define in the service that is specified by * ServiceId, a record is created or updated in the hosted zone that * is associated with the corresponding namespace.

  • If the service * includes HealthCheckConfig, a health check is created based on the * settings in the health check configuration.

  • The health check, * if any, is associated with each of the new or updated records.

*

One RegisterInstance request must complete before * you can submit another request and specify the same service ID and instance * ID.

For more information, see CreateService.

*

When AWS Cloud Map receives a DNS query for the specified DNS name, it * returns the applicable value:

  • If the health check is * healthy: returns all the records

  • If the health check * is unhealthy: returns the applicable value for the last healthy instance

    *
  • If you didn't specify a health check configuration: * returns all the records

For the current quota on the number * of instances that you can register using the same namespace and using the same * service, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RegisterInstanceOutcomeCallable RegisterInstanceCallable(const Model::RegisterInstanceRequest& request) const; /** *

Creates or updates one or more records and, optionally, creates a health * check based on the settings in a specified service. When you submit a * RegisterInstance request, the following occurs:

  • *

    For each DNS record that you define in the service that is specified by * ServiceId, a record is created or updated in the hosted zone that * is associated with the corresponding namespace.

  • If the service * includes HealthCheckConfig, a health check is created based on the * settings in the health check configuration.

  • The health check, * if any, is associated with each of the new or updated records.

*

One RegisterInstance request must complete before * you can submit another request and specify the same service ID and instance * ID.

For more information, see CreateService.

*

When AWS Cloud Map receives a DNS query for the specified DNS name, it * returns the applicable value:

  • If the health check is * healthy: returns all the records

  • If the health check * is unhealthy: returns the applicable value for the last healthy instance

    *
  • If you didn't specify a health check configuration: * returns all the records

For the current quota on the number * of instances that you can register using the same namespace and using the same * service, see AWS * Cloud Map Limits in the AWS Cloud Map Developer Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RegisterInstanceAsync(const Model::RegisterInstanceRequest& request, const RegisterInstanceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds one or more tags to the specified resource.

See Also:

* AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** *

Adds one or more tags to the specified resource.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; /** *

Adds one or more tags to the specified resource.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes one or more tags from the specified resource.

See * Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** *

Removes one or more tags from the specified resource.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; /** *

Removes one or more tags from the specified resource.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Submits a request to change the health status of a custom health check to * healthy or unhealthy.

You can use * UpdateInstanceCustomHealthStatus to change the status only for * custom health checks, which you define using * HealthCheckCustomConfig when you create a service. You can't use it * to change the status for Route 53 health checks, which you define using * HealthCheckConfig.

For more information, see HealthCheckCustomConfig.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateInstanceCustomHealthStatusOutcome UpdateInstanceCustomHealthStatus(const Model::UpdateInstanceCustomHealthStatusRequest& request) const; /** *

Submits a request to change the health status of a custom health check to * healthy or unhealthy.

You can use * UpdateInstanceCustomHealthStatus to change the status only for * custom health checks, which you define using * HealthCheckCustomConfig when you create a service. You can't use it * to change the status for Route 53 health checks, which you define using * HealthCheckConfig.

For more information, see HealthCheckCustomConfig.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateInstanceCustomHealthStatusOutcomeCallable UpdateInstanceCustomHealthStatusCallable(const Model::UpdateInstanceCustomHealthStatusRequest& request) const; /** *

Submits a request to change the health status of a custom health check to * healthy or unhealthy.

You can use * UpdateInstanceCustomHealthStatus to change the status only for * custom health checks, which you define using * HealthCheckCustomConfig when you create a service. You can't use it * to change the status for Route 53 health checks, which you define using * HealthCheckConfig.

For more information, see HealthCheckCustomConfig.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateInstanceCustomHealthStatusAsync(const Model::UpdateInstanceCustomHealthStatusRequest& request, const UpdateInstanceCustomHealthStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Submits a request to perform the following operations:

  • *

    Update the TTL setting for existing DnsRecords * configurations

  • Add, update, or delete * HealthCheckConfig for a specified service

    You can't * add, update, or delete a HealthCheckCustomConfig configuration.

    *

For public and private DNS namespaces, note the * following:

  • If you omit any existing DnsRecords or * HealthCheckConfig configurations from an UpdateService * request, the configurations are deleted from the service.

  • If * you omit an existing HealthCheckCustomConfig configuration from an * UpdateService request, the configuration is not deleted from the * service.

When you update settings for a service, AWS Cloud * Map also updates the corresponding settings in all the records and health checks * that were created by using the specified service.

See Also:

AWS * API Reference

*/ virtual Model::UpdateServiceOutcome UpdateService(const Model::UpdateServiceRequest& request) const; /** *

Submits a request to perform the following operations:

  • *

    Update the TTL setting for existing DnsRecords * configurations

  • Add, update, or delete * HealthCheckConfig for a specified service

    You can't * add, update, or delete a HealthCheckCustomConfig configuration.

    *

For public and private DNS namespaces, note the * following:

  • If you omit any existing DnsRecords or * HealthCheckConfig configurations from an UpdateService * request, the configurations are deleted from the service.

  • If * you omit an existing HealthCheckCustomConfig configuration from an * UpdateService request, the configuration is not deleted from the * service.

When you update settings for a service, AWS Cloud * Map also updates the corresponding settings in all the records and health checks * that were created by using the specified service.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateServiceOutcomeCallable UpdateServiceCallable(const Model::UpdateServiceRequest& request) const; /** *

Submits a request to perform the following operations:

  • *

    Update the TTL setting for existing DnsRecords * configurations

  • Add, update, or delete * HealthCheckConfig for a specified service

    You can't * add, update, or delete a HealthCheckCustomConfig configuration.

    *

For public and private DNS namespaces, note the * following:

  • If you omit any existing DnsRecords or * HealthCheckConfig configurations from an UpdateService * request, the configurations are deleted from the service.

  • If * you omit an existing HealthCheckCustomConfig configuration from an * UpdateService request, the configuration is not deleted from the * service.

When you update settings for a service, AWS Cloud * Map also updates the corresponding settings in all the records and health checks * that were created by using the specified service.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateServiceAsync(const Model::UpdateServiceRequest& request, const UpdateServiceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void CreateHttpNamespaceAsyncHelper(const Model::CreateHttpNamespaceRequest& request, const CreateHttpNamespaceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreatePrivateDnsNamespaceAsyncHelper(const Model::CreatePrivateDnsNamespaceRequest& request, const CreatePrivateDnsNamespaceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreatePublicDnsNamespaceAsyncHelper(const Model::CreatePublicDnsNamespaceRequest& request, const CreatePublicDnsNamespaceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateServiceAsyncHelper(const Model::CreateServiceRequest& request, const CreateServiceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteNamespaceAsyncHelper(const Model::DeleteNamespaceRequest& request, const DeleteNamespaceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteServiceAsyncHelper(const Model::DeleteServiceRequest& request, const DeleteServiceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeregisterInstanceAsyncHelper(const Model::DeregisterInstanceRequest& request, const DeregisterInstanceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DiscoverInstancesAsyncHelper(const Model::DiscoverInstancesRequest& request, const DiscoverInstancesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetInstanceAsyncHelper(const Model::GetInstanceRequest& request, const GetInstanceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetInstancesHealthStatusAsyncHelper(const Model::GetInstancesHealthStatusRequest& request, const GetInstancesHealthStatusResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetNamespaceAsyncHelper(const Model::GetNamespaceRequest& request, const GetNamespaceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetOperationAsyncHelper(const Model::GetOperationRequest& request, const GetOperationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetServiceAsyncHelper(const Model::GetServiceRequest& request, const GetServiceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListInstancesAsyncHelper(const Model::ListInstancesRequest& request, const ListInstancesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListNamespacesAsyncHelper(const Model::ListNamespacesRequest& request, const ListNamespacesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListOperationsAsyncHelper(const Model::ListOperationsRequest& request, const ListOperationsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListServicesAsyncHelper(const Model::ListServicesRequest& request, const ListServicesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RegisterInstanceAsyncHelper(const Model::RegisterInstanceRequest& request, const RegisterInstanceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateInstanceCustomHealthStatusAsyncHelper(const Model::UpdateInstanceCustomHealthStatusRequest& request, const UpdateInstanceCustomHealthStatusResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateServiceAsyncHelper(const Model::UpdateServiceRequest& request, const UpdateServiceResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_baseUri; Aws::String m_scheme; bool m_enableHostPrefixInjection; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace ServiceDiscovery } // namespace Aws