/** * 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 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 Route53Resolver { namespace Model { class AssociateResolverEndpointIpAddressRequest; class AssociateResolverRuleRequest; class CreateResolverEndpointRequest; class CreateResolverRuleRequest; class DeleteResolverEndpointRequest; class DeleteResolverRuleRequest; class DisassociateResolverEndpointIpAddressRequest; class DisassociateResolverRuleRequest; class GetResolverEndpointRequest; class GetResolverRuleRequest; class GetResolverRuleAssociationRequest; class GetResolverRulePolicyRequest; class ListResolverEndpointIpAddressesRequest; class ListResolverEndpointsRequest; class ListResolverRuleAssociationsRequest; class ListResolverRulesRequest; class ListTagsForResourceRequest; class PutResolverRulePolicyRequest; class TagResourceRequest; class UntagResourceRequest; class UpdateResolverEndpointRequest; class UpdateResolverRuleRequest; typedef Aws::Utils::Outcome AssociateResolverEndpointIpAddressOutcome; typedef Aws::Utils::Outcome AssociateResolverRuleOutcome; typedef Aws::Utils::Outcome CreateResolverEndpointOutcome; typedef Aws::Utils::Outcome CreateResolverRuleOutcome; typedef Aws::Utils::Outcome DeleteResolverEndpointOutcome; typedef Aws::Utils::Outcome DeleteResolverRuleOutcome; typedef Aws::Utils::Outcome DisassociateResolverEndpointIpAddressOutcome; typedef Aws::Utils::Outcome DisassociateResolverRuleOutcome; typedef Aws::Utils::Outcome GetResolverEndpointOutcome; typedef Aws::Utils::Outcome GetResolverRuleOutcome; typedef Aws::Utils::Outcome GetResolverRuleAssociationOutcome; typedef Aws::Utils::Outcome GetResolverRulePolicyOutcome; typedef Aws::Utils::Outcome ListResolverEndpointIpAddressesOutcome; typedef Aws::Utils::Outcome ListResolverEndpointsOutcome; typedef Aws::Utils::Outcome ListResolverRuleAssociationsOutcome; typedef Aws::Utils::Outcome ListResolverRulesOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome PutResolverRulePolicyOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef Aws::Utils::Outcome UpdateResolverEndpointOutcome; typedef Aws::Utils::Outcome UpdateResolverRuleOutcome; typedef std::future AssociateResolverEndpointIpAddressOutcomeCallable; typedef std::future AssociateResolverRuleOutcomeCallable; typedef std::future CreateResolverEndpointOutcomeCallable; typedef std::future CreateResolverRuleOutcomeCallable; typedef std::future DeleteResolverEndpointOutcomeCallable; typedef std::future DeleteResolverRuleOutcomeCallable; typedef std::future DisassociateResolverEndpointIpAddressOutcomeCallable; typedef std::future DisassociateResolverRuleOutcomeCallable; typedef std::future GetResolverEndpointOutcomeCallable; typedef std::future GetResolverRuleOutcomeCallable; typedef std::future GetResolverRuleAssociationOutcomeCallable; typedef std::future GetResolverRulePolicyOutcomeCallable; typedef std::future ListResolverEndpointIpAddressesOutcomeCallable; typedef std::future ListResolverEndpointsOutcomeCallable; typedef std::future ListResolverRuleAssociationsOutcomeCallable; typedef std::future ListResolverRulesOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future PutResolverRulePolicyOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; typedef std::future UpdateResolverEndpointOutcomeCallable; typedef std::future UpdateResolverRuleOutcomeCallable; } // namespace Model class Route53ResolverClient; typedef std::function&) > AssociateResolverEndpointIpAddressResponseReceivedHandler; typedef std::function&) > AssociateResolverRuleResponseReceivedHandler; typedef std::function&) > CreateResolverEndpointResponseReceivedHandler; typedef std::function&) > CreateResolverRuleResponseReceivedHandler; typedef std::function&) > DeleteResolverEndpointResponseReceivedHandler; typedef std::function&) > DeleteResolverRuleResponseReceivedHandler; typedef std::function&) > DisassociateResolverEndpointIpAddressResponseReceivedHandler; typedef std::function&) > DisassociateResolverRuleResponseReceivedHandler; typedef std::function&) > GetResolverEndpointResponseReceivedHandler; typedef std::function&) > GetResolverRuleResponseReceivedHandler; typedef std::function&) > GetResolverRuleAssociationResponseReceivedHandler; typedef std::function&) > GetResolverRulePolicyResponseReceivedHandler; typedef std::function&) > ListResolverEndpointIpAddressesResponseReceivedHandler; typedef std::function&) > ListResolverEndpointsResponseReceivedHandler; typedef std::function&) > ListResolverRuleAssociationsResponseReceivedHandler; typedef std::function&) > ListResolverRulesResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > PutResolverRulePolicyResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; typedef std::function&) > UpdateResolverEndpointResponseReceivedHandler; typedef std::function&) > UpdateResolverRuleResponseReceivedHandler; /** *

Here's how you set up to query an Amazon Route 53 private hosted zone from * your network:

  1. Connect your network to a VPC using AWS Direct * Connect or a VPN.

  2. Run the following AWS CLI command to create * a Resolver endpoint:

    create-resolver-endpoint --name * [endpoint_name] --direction INBOUND --creator-request-id [unique_string] * --security-group-ids [security_group_with_inbound_rules] --ip-addresses * SubnetId=[subnet_id] SubnetId=[subnet_id_in_different_AZ]

    Note * the resolver endpoint ID that appears in the response. You'll use it in step * 3.

  3. Get the IP addresses for the Resolver endpoints:

    * get-resolver-endpoint --resolver-endpoint-id [resolver_endpoint_id] *

  4. In your network configuration, define the IP addresses that * you got in step 3 as DNS servers.

    You can now query instance names in * your VPCs and the names of records in your private hosted zone.

*

You can also perform the following operations using the AWS CLI:

    *
  • list-resolver-endpoints: List all endpoints. The syntax * includes options for pagination and filtering.

  • * update-resolver-endpoints: Add IP addresses to an endpoint or * remove IP addresses from an endpoint.

To delete an endpoint, * use the following AWS CLI command:

delete-resolver-endpoint * --resolver-endpoint-id [resolver_endpoint_id]

*/ class AWS_ROUTE53RESOLVER_API Route53ResolverClient : 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. */ Route53ResolverClient(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. */ Route53ResolverClient(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 */ Route53ResolverClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~Route53ResolverClient(); /** *

Adds IP addresses to an inbound or an outbound resolver endpoint. If you want * to adding more than one IP address, submit one * AssociateResolverEndpointIpAddress request for each IP address.

*

To remove an IP address from an endpoint, see * DisassociateResolverEndpointIpAddress.

See Also:

AWS * API Reference

*/ virtual Model::AssociateResolverEndpointIpAddressOutcome AssociateResolverEndpointIpAddress(const Model::AssociateResolverEndpointIpAddressRequest& request) const; /** *

Adds IP addresses to an inbound or an outbound resolver endpoint. If you want * to adding more than one IP address, submit one * AssociateResolverEndpointIpAddress request for each IP address.

*

To remove an IP address from an endpoint, see * DisassociateResolverEndpointIpAddress.

See Also:

AWS * API Reference

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

Adds IP addresses to an inbound or an outbound resolver endpoint. If you want * to adding more than one IP address, submit one * AssociateResolverEndpointIpAddress request for each IP address.

*

To remove an IP address from an endpoint, see * DisassociateResolverEndpointIpAddress.

See Also:

AWS * API Reference

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

Associates a resolver rule with a VPC. When you associate a rule with a VPC, * Resolver forwards all DNS queries for the domain name that is specified in the * rule and that originate in the VPC. The queries are forwarded to the IP * addresses for the DNS resolvers that are specified in the rule. For more * information about rules, see CreateResolverRule.

See * Also:

AWS * API Reference

*/ virtual Model::AssociateResolverRuleOutcome AssociateResolverRule(const Model::AssociateResolverRuleRequest& request) const; /** *

Associates a resolver rule with a VPC. When you associate a rule with a VPC, * Resolver forwards all DNS queries for the domain name that is specified in the * rule and that originate in the VPC. The queries are forwarded to the IP * addresses for the DNS resolvers that are specified in the rule. For more * information about rules, see CreateResolverRule.

See * Also:

AWS * API Reference

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

Associates a resolver rule with a VPC. When you associate a rule with a VPC, * Resolver forwards all DNS queries for the domain name that is specified in the * rule and that originate in the VPC. The queries are forwarded to the IP * addresses for the DNS resolvers that are specified in the rule. For more * information about rules, see CreateResolverRule.

See * Also:

AWS * API Reference

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

Creates a resolver endpoint. There are two types of resolver endpoints, * inbound and outbound:

  • An inbound resolver endpoint * forwards DNS queries to the DNS service for a VPC from your network or another * VPC.

  • An outbound resolver endpoint forwards DNS queries * from the DNS service for a VPC to your network or another VPC.

  • *

See Also:

AWS * API Reference

*/ virtual Model::CreateResolverEndpointOutcome CreateResolverEndpoint(const Model::CreateResolverEndpointRequest& request) const; /** *

Creates a resolver endpoint. There are two types of resolver endpoints, * inbound and outbound:

  • An inbound resolver endpoint * forwards DNS queries to the DNS service for a VPC from your network or another * VPC.

  • An outbound resolver endpoint forwards DNS queries * from the DNS service for a VPC to your network or another VPC.

  • *

See Also:

AWS * API Reference

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

Creates a resolver endpoint. There are two types of resolver endpoints, * inbound and outbound:

  • An inbound resolver endpoint * forwards DNS queries to the DNS service for a VPC from your network or another * VPC.

  • An outbound resolver endpoint forwards DNS queries * from the DNS service for a VPC to your network or another VPC.

  • *

See Also:

AWS * API Reference

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

For DNS queries that originate in your VPCs, specifies which resolver * endpoint the queries pass through, one domain name that you want to forward to * your network, and the IP addresses of the DNS resolvers in your * network.

See Also:

AWS * API Reference

*/ virtual Model::CreateResolverRuleOutcome CreateResolverRule(const Model::CreateResolverRuleRequest& request) const; /** *

For DNS queries that originate in your VPCs, specifies which resolver * endpoint the queries pass through, one domain name that you want to forward to * your network, and the IP addresses of the DNS resolvers in your * network.

See Also:

AWS * API Reference

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

For DNS queries that originate in your VPCs, specifies which resolver * endpoint the queries pass through, one domain name that you want to forward to * your network, and the IP addresses of the DNS resolvers in your * network.

See Also:

AWS * API Reference

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

Deletes a resolver endpoint. The effect of deleting a resolver endpoint * depends on whether it's an inbound or an outbound resolver endpoint:

    *
  • Inbound: DNS queries from your network or another VPC are no * longer routed to the DNS service for the specified VPC.

  • * Outbound: DNS queries from a VPC are no longer routed to your network or * to another VPC.

See Also:

AWS * API Reference

*/ virtual Model::DeleteResolverEndpointOutcome DeleteResolverEndpoint(const Model::DeleteResolverEndpointRequest& request) const; /** *

Deletes a resolver endpoint. The effect of deleting a resolver endpoint * depends on whether it's an inbound or an outbound resolver endpoint:

    *
  • Inbound: DNS queries from your network or another VPC are no * longer routed to the DNS service for the specified VPC.

  • * Outbound: DNS queries from a VPC are no longer routed to your network or * to another VPC.

See Also:

AWS * API Reference

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

Deletes a resolver endpoint. The effect of deleting a resolver endpoint * depends on whether it's an inbound or an outbound resolver endpoint:

    *
  • Inbound: DNS queries from your network or another VPC are no * longer routed to the DNS service for the specified VPC.

  • * Outbound: DNS queries from a VPC are no longer routed to your network or * to another VPC.

See Also:

AWS * API Reference

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

Deletes a resolver rule. Before you can delete a resolver rule, you must * disassociate it from all the VPCs that you associated the resolver rule with. * For more infomation, see DisassociateResolverRule.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteResolverRuleOutcome DeleteResolverRule(const Model::DeleteResolverRuleRequest& request) const; /** *

Deletes a resolver rule. Before you can delete a resolver rule, you must * disassociate it from all the VPCs that you associated the resolver rule with. * For more infomation, see DisassociateResolverRule.

See * Also:

AWS * API Reference

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

Deletes a resolver rule. Before you can delete a resolver rule, you must * disassociate it from all the VPCs that you associated the resolver rule with. * For more infomation, see DisassociateResolverRule.

See * Also:

AWS * API Reference

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

Removes IP addresses from an inbound or an outbound resolver endpoint. If you * want to remove more than one IP address, submit one * DisassociateResolverEndpointIpAddress request for each IP * address.

To add an IP address to an endpoint, see * AssociateResolverEndpointIpAddress.

See Also:

AWS * API Reference

*/ virtual Model::DisassociateResolverEndpointIpAddressOutcome DisassociateResolverEndpointIpAddress(const Model::DisassociateResolverEndpointIpAddressRequest& request) const; /** *

Removes IP addresses from an inbound or an outbound resolver endpoint. If you * want to remove more than one IP address, submit one * DisassociateResolverEndpointIpAddress request for each IP * address.

To add an IP address to an endpoint, see * AssociateResolverEndpointIpAddress.

See Also:

AWS * API Reference

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

Removes IP addresses from an inbound or an outbound resolver endpoint. If you * want to remove more than one IP address, submit one * DisassociateResolverEndpointIpAddress request for each IP * address.

To add an IP address to an endpoint, see * AssociateResolverEndpointIpAddress.

See Also:

AWS * API Reference

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

Removes the association between a specified resolver rule and a specified * VPC.

If you disassociate a resolver rule from a VPC, Resolver * stops forwarding DNS queries for the domain name that you specified in the * resolver rule.

See Also:

AWS * API Reference

*/ virtual Model::DisassociateResolverRuleOutcome DisassociateResolverRule(const Model::DisassociateResolverRuleRequest& request) const; /** *

Removes the association between a specified resolver rule and a specified * VPC.

If you disassociate a resolver rule from a VPC, Resolver * stops forwarding DNS queries for the domain name that you specified in the * resolver rule.

See Also:

AWS * API Reference

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

Removes the association between a specified resolver rule and a specified * VPC.

If you disassociate a resolver rule from a VPC, Resolver * stops forwarding DNS queries for the domain name that you specified in the * resolver rule.

See Also:

AWS * API Reference

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

Gets information about a specified resolver endpoint, such as whether it's an * inbound or an outbound resolver endpoint, and the current status of the * endpoint.

See Also:

AWS * API Reference

*/ virtual Model::GetResolverEndpointOutcome GetResolverEndpoint(const Model::GetResolverEndpointRequest& request) const; /** *

Gets information about a specified resolver endpoint, such as whether it's an * inbound or an outbound resolver endpoint, and the current status of the * endpoint.

See Also:

AWS * API Reference

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

Gets information about a specified resolver endpoint, such as whether it's an * inbound or an outbound resolver endpoint, and the current status of the * endpoint.

See Also:

AWS * API Reference

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

Gets information about a specified resolver rule, such as the domain name * that the rule forwards DNS queries for and the ID of the outbound resolver * endpoint that the rule is associated with.

See Also:

AWS * API Reference

*/ virtual Model::GetResolverRuleOutcome GetResolverRule(const Model::GetResolverRuleRequest& request) const; /** *

Gets information about a specified resolver rule, such as the domain name * that the rule forwards DNS queries for and the ID of the outbound resolver * endpoint that the rule is associated with.

See Also:

AWS * API Reference

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

Gets information about a specified resolver rule, such as the domain name * that the rule forwards DNS queries for and the ID of the outbound resolver * endpoint that the rule is associated with.

See Also:

AWS * API Reference

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

Gets information about an association between a specified resolver rule and a * VPC. You associate a resolver rule and a VPC using AssociateResolverRule. *

See Also:

AWS * API Reference

*/ virtual Model::GetResolverRuleAssociationOutcome GetResolverRuleAssociation(const Model::GetResolverRuleAssociationRequest& request) const; /** *

Gets information about an association between a specified resolver rule and a * VPC. You associate a resolver rule and a VPC using AssociateResolverRule. *

See Also:

AWS * API Reference

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

Gets information about an association between a specified resolver rule and a * VPC. You associate a resolver rule and a VPC using AssociateResolverRule. *

See Also:

AWS * API Reference

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

Gets information about a resolver rule policy. A resolver rule policy * specifies the Resolver operations and resources that you want to allow another * AWS account to be able to use.

See Also:

AWS * API Reference

*/ virtual Model::GetResolverRulePolicyOutcome GetResolverRulePolicy(const Model::GetResolverRulePolicyRequest& request) const; /** *

Gets information about a resolver rule policy. A resolver rule policy * specifies the Resolver operations and resources that you want to allow another * AWS account to be able to use.

See Also:

AWS * API Reference

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

Gets information about a resolver rule policy. A resolver rule policy * specifies the Resolver operations and resources that you want to allow another * AWS account to be able to use.

See Also:

AWS * API Reference

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

Gets the IP addresses for a specified resolver endpoint.

See * Also:

AWS * API Reference

*/ virtual Model::ListResolverEndpointIpAddressesOutcome ListResolverEndpointIpAddresses(const Model::ListResolverEndpointIpAddressesRequest& request) const; /** *

Gets the IP addresses for a specified resolver endpoint.

See * Also:

AWS * API Reference

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

Gets the IP addresses for a specified resolver endpoint.

See * Also:

AWS * API Reference

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

Lists all the resolver endpoints that were created using the current AWS * account.

See Also:

AWS * API Reference

*/ virtual Model::ListResolverEndpointsOutcome ListResolverEndpoints(const Model::ListResolverEndpointsRequest& request) const; /** *

Lists all the resolver endpoints that were created using 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::ListResolverEndpointsOutcomeCallable ListResolverEndpointsCallable(const Model::ListResolverEndpointsRequest& request) const; /** *

Lists all the resolver endpoints that were created using 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 ListResolverEndpointsAsync(const Model::ListResolverEndpointsRequest& request, const ListResolverEndpointsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the associations that were created between resolver rules and VPCs * using the current AWS account.

See Also:

AWS * API Reference

*/ virtual Model::ListResolverRuleAssociationsOutcome ListResolverRuleAssociations(const Model::ListResolverRuleAssociationsRequest& request) const; /** *

Lists the associations that were created between resolver rules and VPCs * using 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::ListResolverRuleAssociationsOutcomeCallable ListResolverRuleAssociationsCallable(const Model::ListResolverRuleAssociationsRequest& request) const; /** *

Lists the associations that were created between resolver rules and VPCs * using 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 ListResolverRuleAssociationsAsync(const Model::ListResolverRuleAssociationsRequest& request, const ListResolverRuleAssociationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the resolver rules that were created using the current AWS * account.

See Also:

AWS * API Reference

*/ virtual Model::ListResolverRulesOutcome ListResolverRules(const Model::ListResolverRulesRequest& request) const; /** *

Lists the resolver rules that were created using 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::ListResolverRulesOutcomeCallable ListResolverRulesCallable(const Model::ListResolverRulesRequest& request) const; /** *

Lists the resolver rules that were created using 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 ListResolverRulesAsync(const Model::ListResolverRulesRequest& request, const ListResolverRulesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the tags that you associated with the specified resource.

See * Also:

AWS * API Reference

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

Lists the tags that you associated with 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 the tags that you associated with 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; /** *

Specifies the Resolver operations and resources that you want to allow * another AWS account to be able to use.

See Also:

AWS * API Reference

*/ virtual Model::PutResolverRulePolicyOutcome PutResolverRulePolicy(const Model::PutResolverRulePolicyRequest& request) const; /** *

Specifies the Resolver operations and resources that you want to allow * another AWS account to be able to use.

See Also:

AWS * API Reference

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

Specifies the Resolver operations and resources that you want to allow * another AWS account to be able to use.

See Also:

AWS * API Reference

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

Adds one or more tags to a specified resource.

See Also:

AWS * API Reference

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

Adds one or more tags to a 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 a 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 a specified resource.

See Also:

* AWS * API Reference

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

Removes one or more tags from a 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 a 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; /** *

Updates the name of an inbound or an outbound resolver endpoint. *

See Also:

AWS * API Reference

*/ virtual Model::UpdateResolverEndpointOutcome UpdateResolverEndpoint(const Model::UpdateResolverEndpointRequest& request) const; /** *

Updates the name of an inbound or an outbound resolver endpoint. *

See Also:

AWS * API Reference

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

Updates the name of an inbound or an outbound resolver endpoint. *

See Also:

AWS * API Reference

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

Updates settings for a specified resolver rule. ResolverRuleId * is required, and all other parameters are optional. If you don't specify a * parameter, it retains its current value.

See Also:

AWS * API Reference

*/ virtual Model::UpdateResolverRuleOutcome UpdateResolverRule(const Model::UpdateResolverRuleRequest& request) const; /** *

Updates settings for a specified resolver rule. ResolverRuleId * is required, and all other parameters are optional. If you don't specify a * parameter, it retains its current value.

See Also:

AWS * API Reference

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

Updates settings for a specified resolver rule. ResolverRuleId * is required, and all other parameters are optional. If you don't specify a * parameter, it retains its current value.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateResolverRuleAsync(const Model::UpdateResolverRuleRequest& request, const UpdateResolverRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AssociateResolverEndpointIpAddressAsyncHelper(const Model::AssociateResolverEndpointIpAddressRequest& request, const AssociateResolverEndpointIpAddressResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AssociateResolverRuleAsyncHelper(const Model::AssociateResolverRuleRequest& request, const AssociateResolverRuleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateResolverEndpointAsyncHelper(const Model::CreateResolverEndpointRequest& request, const CreateResolverEndpointResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateResolverRuleAsyncHelper(const Model::CreateResolverRuleRequest& request, const CreateResolverRuleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteResolverEndpointAsyncHelper(const Model::DeleteResolverEndpointRequest& request, const DeleteResolverEndpointResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteResolverRuleAsyncHelper(const Model::DeleteResolverRuleRequest& request, const DeleteResolverRuleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DisassociateResolverEndpointIpAddressAsyncHelper(const Model::DisassociateResolverEndpointIpAddressRequest& request, const DisassociateResolverEndpointIpAddressResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DisassociateResolverRuleAsyncHelper(const Model::DisassociateResolverRuleRequest& request, const DisassociateResolverRuleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetResolverEndpointAsyncHelper(const Model::GetResolverEndpointRequest& request, const GetResolverEndpointResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetResolverRuleAsyncHelper(const Model::GetResolverRuleRequest& request, const GetResolverRuleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetResolverRuleAssociationAsyncHelper(const Model::GetResolverRuleAssociationRequest& request, const GetResolverRuleAssociationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetResolverRulePolicyAsyncHelper(const Model::GetResolverRulePolicyRequest& request, const GetResolverRulePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListResolverEndpointIpAddressesAsyncHelper(const Model::ListResolverEndpointIpAddressesRequest& request, const ListResolverEndpointIpAddressesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListResolverEndpointsAsyncHelper(const Model::ListResolverEndpointsRequest& request, const ListResolverEndpointsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListResolverRuleAssociationsAsyncHelper(const Model::ListResolverRuleAssociationsRequest& request, const ListResolverRuleAssociationsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListResolverRulesAsyncHelper(const Model::ListResolverRulesRequest& request, const ListResolverRulesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutResolverRulePolicyAsyncHelper(const Model::PutResolverRulePolicyRequest& request, const PutResolverRulePolicyResponseReceivedHandler& 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 UpdateResolverEndpointAsyncHelper(const Model::UpdateResolverEndpointRequest& request, const UpdateResolverEndpointResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateResolverRuleAsyncHelper(const Model::UpdateResolverRuleRequest& request, const UpdateResolverRuleResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace Route53Resolver } // namespace Aws