/** * 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 Shield { namespace Model { class AssociateDRTLogBucketRequest; class AssociateDRTRoleRequest; class AssociateHealthCheckRequest; class AssociateProactiveEngagementDetailsRequest; class CreateProtectionRequest; class CreateSubscriptionRequest; class DeleteProtectionRequest; class DescribeAttackRequest; class DescribeDRTAccessRequest; class DescribeEmergencyContactSettingsRequest; class DescribeProtectionRequest; class DescribeSubscriptionRequest; class DisableProactiveEngagementRequest; class DisassociateDRTLogBucketRequest; class DisassociateDRTRoleRequest; class DisassociateHealthCheckRequest; class EnableProactiveEngagementRequest; class GetSubscriptionStateRequest; class ListAttacksRequest; class ListProtectionsRequest; class UpdateEmergencyContactSettingsRequest; class UpdateSubscriptionRequest; typedef Aws::Utils::Outcome AssociateDRTLogBucketOutcome; typedef Aws::Utils::Outcome AssociateDRTRoleOutcome; typedef Aws::Utils::Outcome AssociateHealthCheckOutcome; typedef Aws::Utils::Outcome AssociateProactiveEngagementDetailsOutcome; typedef Aws::Utils::Outcome CreateProtectionOutcome; typedef Aws::Utils::Outcome CreateSubscriptionOutcome; typedef Aws::Utils::Outcome DeleteProtectionOutcome; typedef Aws::Utils::Outcome DescribeAttackOutcome; typedef Aws::Utils::Outcome DescribeDRTAccessOutcome; typedef Aws::Utils::Outcome DescribeEmergencyContactSettingsOutcome; typedef Aws::Utils::Outcome DescribeProtectionOutcome; typedef Aws::Utils::Outcome DescribeSubscriptionOutcome; typedef Aws::Utils::Outcome DisableProactiveEngagementOutcome; typedef Aws::Utils::Outcome DisassociateDRTLogBucketOutcome; typedef Aws::Utils::Outcome DisassociateDRTRoleOutcome; typedef Aws::Utils::Outcome DisassociateHealthCheckOutcome; typedef Aws::Utils::Outcome EnableProactiveEngagementOutcome; typedef Aws::Utils::Outcome GetSubscriptionStateOutcome; typedef Aws::Utils::Outcome ListAttacksOutcome; typedef Aws::Utils::Outcome ListProtectionsOutcome; typedef Aws::Utils::Outcome UpdateEmergencyContactSettingsOutcome; typedef Aws::Utils::Outcome UpdateSubscriptionOutcome; typedef std::future AssociateDRTLogBucketOutcomeCallable; typedef std::future AssociateDRTRoleOutcomeCallable; typedef std::future AssociateHealthCheckOutcomeCallable; typedef std::future AssociateProactiveEngagementDetailsOutcomeCallable; typedef std::future CreateProtectionOutcomeCallable; typedef std::future CreateSubscriptionOutcomeCallable; typedef std::future DeleteProtectionOutcomeCallable; typedef std::future DescribeAttackOutcomeCallable; typedef std::future DescribeDRTAccessOutcomeCallable; typedef std::future DescribeEmergencyContactSettingsOutcomeCallable; typedef std::future DescribeProtectionOutcomeCallable; typedef std::future DescribeSubscriptionOutcomeCallable; typedef std::future DisableProactiveEngagementOutcomeCallable; typedef std::future DisassociateDRTLogBucketOutcomeCallable; typedef std::future DisassociateDRTRoleOutcomeCallable; typedef std::future DisassociateHealthCheckOutcomeCallable; typedef std::future EnableProactiveEngagementOutcomeCallable; typedef std::future GetSubscriptionStateOutcomeCallable; typedef std::future ListAttacksOutcomeCallable; typedef std::future ListProtectionsOutcomeCallable; typedef std::future UpdateEmergencyContactSettingsOutcomeCallable; typedef std::future UpdateSubscriptionOutcomeCallable; } // namespace Model class ShieldClient; typedef std::function&) > AssociateDRTLogBucketResponseReceivedHandler; typedef std::function&) > AssociateDRTRoleResponseReceivedHandler; typedef std::function&) > AssociateHealthCheckResponseReceivedHandler; typedef std::function&) > AssociateProactiveEngagementDetailsResponseReceivedHandler; typedef std::function&) > CreateProtectionResponseReceivedHandler; typedef std::function&) > CreateSubscriptionResponseReceivedHandler; typedef std::function&) > DeleteProtectionResponseReceivedHandler; typedef std::function&) > DescribeAttackResponseReceivedHandler; typedef std::function&) > DescribeDRTAccessResponseReceivedHandler; typedef std::function&) > DescribeEmergencyContactSettingsResponseReceivedHandler; typedef std::function&) > DescribeProtectionResponseReceivedHandler; typedef std::function&) > DescribeSubscriptionResponseReceivedHandler; typedef std::function&) > DisableProactiveEngagementResponseReceivedHandler; typedef std::function&) > DisassociateDRTLogBucketResponseReceivedHandler; typedef std::function&) > DisassociateDRTRoleResponseReceivedHandler; typedef std::function&) > DisassociateHealthCheckResponseReceivedHandler; typedef std::function&) > EnableProactiveEngagementResponseReceivedHandler; typedef std::function&) > GetSubscriptionStateResponseReceivedHandler; typedef std::function&) > ListAttacksResponseReceivedHandler; typedef std::function&) > ListProtectionsResponseReceivedHandler; typedef std::function&) > UpdateEmergencyContactSettingsResponseReceivedHandler; typedef std::function&) > UpdateSubscriptionResponseReceivedHandler; /** * AWS Shield Advanced

This is the AWS Shield Advanced * API Reference. This guide is for developers who need detailed information * about the AWS Shield Advanced API actions, data types, and errors. For detailed * information about AWS WAF and AWS Shield Advanced features and an overview of * how to use the AWS WAF and AWS Shield Advanced APIs, see the AWS WAF and AWS * Shield Developer Guide.

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

Authorizes the DDoS Response Team (DRT) to access the specified Amazon S3 * bucket containing your AWS WAF logs. You can associate up to 10 Amazon S3 * buckets with your subscription.

To use the services of the DRT and make * an AssociateDRTLogBucket request, you must be subscribed to the Business Support * plan or the Enterprise * Support plan.

See Also:

AWS * API Reference

*/ virtual Model::AssociateDRTLogBucketOutcome AssociateDRTLogBucket(const Model::AssociateDRTLogBucketRequest& request) const; /** *

Authorizes the DDoS Response Team (DRT) to access the specified Amazon S3 * bucket containing your AWS WAF logs. You can associate up to 10 Amazon S3 * buckets with your subscription.

To use the services of the DRT and make * an AssociateDRTLogBucket request, you must be subscribed to the Business Support * plan or the Enterprise * Support plan.

See Also:

AWS * API Reference

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

Authorizes the DDoS Response Team (DRT) to access the specified Amazon S3 * bucket containing your AWS WAF logs. You can associate up to 10 Amazon S3 * buckets with your subscription.

To use the services of the DRT and make * an AssociateDRTLogBucket request, you must be subscribed to the Business Support * plan or the Enterprise * Support plan.

See Also:

AWS * API Reference

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

Authorizes the DDoS Response Team (DRT), using the specified role, to access * your AWS account to assist with DDoS attack mitigation during potential attacks. * This enables the DRT to inspect your AWS WAF configuration and create or update * AWS WAF rules and web ACLs.

You can associate only one * RoleArn with your subscription. If you submit an * AssociateDRTRole request for an account that already has an * associated role, the new RoleArn will replace the existing * RoleArn.

Prior to making the AssociateDRTRole * request, you must attach the AWSShieldDRTAccessPolicy * managed policy to the role you will specify in the request. For more information * see Attaching * and Detaching IAM Policies. The role must also trust the service principal * drt.shield.amazonaws.com. For more information, see IAM * JSON Policy Elements: Principal.

The DRT will have access only to * your AWS WAF and Shield resources. By submitting this request, you authorize the * DRT to inspect your AWS WAF and Shield configuration and create and update AWS * WAF rules and web ACLs on your behalf. The DRT takes these actions only if * explicitly authorized by you.

You must have the iam:PassRole * permission to make an AssociateDRTRole request. For more * information, see Granting * a User Permissions to Pass a Role to an AWS Service.

To use the * services of the DRT and make an AssociateDRTRole request, you must * be subscribed to the Business Support * plan or the Enterprise * Support plan.

See Also:

AWS * API Reference

*/ virtual Model::AssociateDRTRoleOutcome AssociateDRTRole(const Model::AssociateDRTRoleRequest& request) const; /** *

Authorizes the DDoS Response Team (DRT), using the specified role, to access * your AWS account to assist with DDoS attack mitigation during potential attacks. * This enables the DRT to inspect your AWS WAF configuration and create or update * AWS WAF rules and web ACLs.

You can associate only one * RoleArn with your subscription. If you submit an * AssociateDRTRole request for an account that already has an * associated role, the new RoleArn will replace the existing * RoleArn.

Prior to making the AssociateDRTRole * request, you must attach the AWSShieldDRTAccessPolicy * managed policy to the role you will specify in the request. For more information * see Attaching * and Detaching IAM Policies. The role must also trust the service principal * drt.shield.amazonaws.com. For more information, see IAM * JSON Policy Elements: Principal.

The DRT will have access only to * your AWS WAF and Shield resources. By submitting this request, you authorize the * DRT to inspect your AWS WAF and Shield configuration and create and update AWS * WAF rules and web ACLs on your behalf. The DRT takes these actions only if * explicitly authorized by you.

You must have the iam:PassRole * permission to make an AssociateDRTRole request. For more * information, see Granting * a User Permissions to Pass a Role to an AWS Service.

To use the * services of the DRT and make an AssociateDRTRole request, you must * be subscribed to the Business Support * plan or the Enterprise * Support plan.

See Also:

AWS * API Reference

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

Authorizes the DDoS Response Team (DRT), using the specified role, to access * your AWS account to assist with DDoS attack mitigation during potential attacks. * This enables the DRT to inspect your AWS WAF configuration and create or update * AWS WAF rules and web ACLs.

You can associate only one * RoleArn with your subscription. If you submit an * AssociateDRTRole request for an account that already has an * associated role, the new RoleArn will replace the existing * RoleArn.

Prior to making the AssociateDRTRole * request, you must attach the AWSShieldDRTAccessPolicy * managed policy to the role you will specify in the request. For more information * see Attaching * and Detaching IAM Policies. The role must also trust the service principal * drt.shield.amazonaws.com. For more information, see IAM * JSON Policy Elements: Principal.

The DRT will have access only to * your AWS WAF and Shield resources. By submitting this request, you authorize the * DRT to inspect your AWS WAF and Shield configuration and create and update AWS * WAF rules and web ACLs on your behalf. The DRT takes these actions only if * explicitly authorized by you.

You must have the iam:PassRole * permission to make an AssociateDRTRole request. For more * information, see Granting * a User Permissions to Pass a Role to an AWS Service.

To use the * services of the DRT and make an AssociateDRTRole request, you must * be subscribed to the Business Support * plan or the Enterprise * Support plan.

See Also:

AWS * API Reference

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

Adds health-based detection to the Shield Advanced protection for a resource. * Shield Advanced health-based detection uses the health of your AWS resource to * improve responsiveness and accuracy in attack detection and mitigation.

*

You define the health check in Route 53 and then associate it with your * Shield Advanced protection. For more information, see Shield * Advanced Health-Based Detection in the AWS WAF and AWS * Shield Developer Guide.

See Also:

AWS * API Reference

*/ virtual Model::AssociateHealthCheckOutcome AssociateHealthCheck(const Model::AssociateHealthCheckRequest& request) const; /** *

Adds health-based detection to the Shield Advanced protection for a resource. * Shield Advanced health-based detection uses the health of your AWS resource to * improve responsiveness and accuracy in attack detection and mitigation.

*

You define the health check in Route 53 and then associate it with your * Shield Advanced protection. For more information, see Shield * Advanced Health-Based Detection in the AWS WAF and AWS * Shield 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::AssociateHealthCheckOutcomeCallable AssociateHealthCheckCallable(const Model::AssociateHealthCheckRequest& request) const; /** *

Adds health-based detection to the Shield Advanced protection for a resource. * Shield Advanced health-based detection uses the health of your AWS resource to * improve responsiveness and accuracy in attack detection and mitigation.

*

You define the health check in Route 53 and then associate it with your * Shield Advanced protection. For more information, see Shield * Advanced Health-Based Detection in the AWS WAF and AWS * Shield Developer Guide.

See Also:

AWS * API Reference

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

Initializes proactive engagement and sets the list of contacts for the DDoS * Response Team (DRT) to use. You must provide at least one phone number in the * emergency contact list.

After you have initialized proactive engagement * using this call, to disable or enable proactive engagement, use the calls * DisableProactiveEngagement and * EnableProactiveEngagement.

This call defines the * list of email addresses and phone numbers that the DDoS Response Team (DRT) can * use to contact you for escalations to the DRT and to initiate proactive customer * support.

The contacts that you provide in the request replace any * contacts that were already defined. If you already have contacts defined and * want to use them, retrieve the list using * DescribeEmergencyContactSettings and then provide it to this call. *

See Also:

AWS * API Reference

*/ virtual Model::AssociateProactiveEngagementDetailsOutcome AssociateProactiveEngagementDetails(const Model::AssociateProactiveEngagementDetailsRequest& request) const; /** *

Initializes proactive engagement and sets the list of contacts for the DDoS * Response Team (DRT) to use. You must provide at least one phone number in the * emergency contact list.

After you have initialized proactive engagement * using this call, to disable or enable proactive engagement, use the calls * DisableProactiveEngagement and * EnableProactiveEngagement.

This call defines the * list of email addresses and phone numbers that the DDoS Response Team (DRT) can * use to contact you for escalations to the DRT and to initiate proactive customer * support.

The contacts that you provide in the request replace any * contacts that were already defined. If you already have contacts defined and * want to use them, retrieve the list using * DescribeEmergencyContactSettings and then provide it to this call. *

See Also:

AWS * API Reference

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

Initializes proactive engagement and sets the list of contacts for the DDoS * Response Team (DRT) to use. You must provide at least one phone number in the * emergency contact list.

After you have initialized proactive engagement * using this call, to disable or enable proactive engagement, use the calls * DisableProactiveEngagement and * EnableProactiveEngagement.

This call defines the * list of email addresses and phone numbers that the DDoS Response Team (DRT) can * use to contact you for escalations to the DRT and to initiate proactive customer * support.

The contacts that you provide in the request replace any * contacts that were already defined. If you already have contacts defined and * want to use them, retrieve the list using * DescribeEmergencyContactSettings and then provide it to this call. *

See Also:

AWS * API Reference

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

Enables AWS Shield Advanced for a specific AWS resource. The resource can be * an Amazon CloudFront distribution, Elastic Load Balancing load balancer, AWS * Global Accelerator accelerator, Elastic IP Address, or an Amazon Route 53 hosted * zone.

You can add protection to only a single resource with each * CreateProtection request. If you want to add protection to multiple resources at * once, use the AWS WAF console. * For more information see Getting * Started with AWS Shield Advanced and Add * AWS Shield Advanced Protection to more AWS Resources.

See * Also:

AWS * API Reference

*/ virtual Model::CreateProtectionOutcome CreateProtection(const Model::CreateProtectionRequest& request) const; /** *

Enables AWS Shield Advanced for a specific AWS resource. The resource can be * an Amazon CloudFront distribution, Elastic Load Balancing load balancer, AWS * Global Accelerator accelerator, Elastic IP Address, or an Amazon Route 53 hosted * zone.

You can add protection to only a single resource with each * CreateProtection request. If you want to add protection to multiple resources at * once, use the AWS WAF console. * For more information see Getting * Started with AWS Shield Advanced and Add * AWS Shield Advanced Protection to more AWS Resources.

See * Also:

AWS * API Reference

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

Enables AWS Shield Advanced for a specific AWS resource. The resource can be * an Amazon CloudFront distribution, Elastic Load Balancing load balancer, AWS * Global Accelerator accelerator, Elastic IP Address, or an Amazon Route 53 hosted * zone.

You can add protection to only a single resource with each * CreateProtection request. If you want to add protection to multiple resources at * once, use the AWS WAF console. * For more information see Getting * Started with AWS Shield Advanced and Add * AWS Shield Advanced Protection to more AWS Resources.

See * Also:

AWS * API Reference

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

Activates AWS Shield Advanced for an account.

When you initally create * a subscription, your subscription is set to be automatically renewed at the end * of the existing subscription period. You can change this by submitting an * UpdateSubscription request.

See Also:

AWS * API Reference

*/ virtual Model::CreateSubscriptionOutcome CreateSubscription(const Model::CreateSubscriptionRequest& request) const; /** *

Activates AWS Shield Advanced for an account.

When you initally create * a subscription, your subscription is set to be automatically renewed at the end * of the existing subscription period. You can change this by submitting an * UpdateSubscription request.

See Also:

AWS * API Reference

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

Activates AWS Shield Advanced for an account.

When you initally create * a subscription, your subscription is set to be automatically renewed at the end * of the existing subscription period. You can change this by submitting an * UpdateSubscription request.

See Also:

AWS * API Reference

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

Deletes an AWS Shield Advanced Protection.

See Also:

* AWS * API Reference

*/ virtual Model::DeleteProtectionOutcome DeleteProtection(const Model::DeleteProtectionRequest& request) const; /** *

Deletes an AWS Shield Advanced Protection.

See Also:

* AWS * API Reference

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

Deletes an AWS Shield Advanced Protection.

See Also:

* AWS * API Reference

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

Describes the details of a DDoS attack.

See Also:

AWS * API Reference

*/ virtual Model::DescribeAttackOutcome DescribeAttack(const Model::DescribeAttackRequest& request) const; /** *

Describes the details of a DDoS attack.

See Also:

AWS * API Reference

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

Describes the details of a DDoS attack.

See Also:

AWS * API Reference

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

Returns the current role and list of Amazon S3 log buckets used by the DDoS * Response Team (DRT) to access your AWS account while assisting with attack * mitigation.

See Also:

AWS * API Reference

*/ virtual Model::DescribeDRTAccessOutcome DescribeDRTAccess(const Model::DescribeDRTAccessRequest& request) const; /** *

Returns the current role and list of Amazon S3 log buckets used by the DDoS * Response Team (DRT) to access your AWS account while assisting with attack * mitigation.

See Also:

AWS * API Reference

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

Returns the current role and list of Amazon S3 log buckets used by the DDoS * Response Team (DRT) to access your AWS account while assisting with attack * mitigation.

See Also:

AWS * API Reference

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

A list of email addresses and phone numbers that the DDoS Response Team (DRT) * can use to contact you if you have proactive engagement enabled, for escalations * to the DRT and to initiate proactive customer support.

See Also:

* AWS * API Reference

*/ virtual Model::DescribeEmergencyContactSettingsOutcome DescribeEmergencyContactSettings(const Model::DescribeEmergencyContactSettingsRequest& request) const; /** *

A list of email addresses and phone numbers that the DDoS Response Team (DRT) * can use to contact you if you have proactive engagement enabled, for escalations * to the DRT and to initiate proactive customer support.

See Also:

* AWS * API Reference

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

A list of email addresses and phone numbers that the DDoS Response Team (DRT) * can use to contact you if you have proactive engagement enabled, for escalations * to the DRT and to initiate proactive customer support.

See Also:

* AWS * API Reference

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

Lists the details of a Protection object.

See Also:

* AWS * API Reference

*/ virtual Model::DescribeProtectionOutcome DescribeProtection(const Model::DescribeProtectionRequest& request) const; /** *

Lists the details of a Protection object.

See Also:

* AWS * API Reference

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

Lists the details of a Protection object.

See Also:

* AWS * API Reference

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

Provides details about the AWS Shield Advanced subscription for an * account.

See Also:

AWS * API Reference

*/ virtual Model::DescribeSubscriptionOutcome DescribeSubscription(const Model::DescribeSubscriptionRequest& request) const; /** *

Provides details about the AWS Shield Advanced subscription for an * 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::DescribeSubscriptionOutcomeCallable DescribeSubscriptionCallable(const Model::DescribeSubscriptionRequest& request) const; /** *

Provides details about the AWS Shield Advanced subscription for an * account.

See Also:

AWS * API Reference

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

Removes authorization from the DDoS Response Team (DRT) to notify contacts * about escalations to the DRT and to initiate proactive customer * support.

See Also:

AWS * API Reference

*/ virtual Model::DisableProactiveEngagementOutcome DisableProactiveEngagement(const Model::DisableProactiveEngagementRequest& request) const; /** *

Removes authorization from the DDoS Response Team (DRT) to notify contacts * about escalations to the DRT and to initiate proactive customer * support.

See Also:

AWS * API Reference

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

Removes authorization from the DDoS Response Team (DRT) to notify contacts * about escalations to the DRT and to initiate proactive customer * support.

See Also:

AWS * API Reference

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

Removes the DDoS Response Team's (DRT) access to the specified Amazon S3 * bucket containing your AWS WAF logs.

To make a * DisassociateDRTLogBucket request, you must be subscribed to the Business Support * plan or the Enterprise * Support plan. However, if you are not subscribed to one of these support * plans, but had been previously and had granted the DRT access to your account, * you can submit a DisassociateDRTLogBucket request to remove this * access.

See Also:

AWS * API Reference

*/ virtual Model::DisassociateDRTLogBucketOutcome DisassociateDRTLogBucket(const Model::DisassociateDRTLogBucketRequest& request) const; /** *

Removes the DDoS Response Team's (DRT) access to the specified Amazon S3 * bucket containing your AWS WAF logs.

To make a * DisassociateDRTLogBucket request, you must be subscribed to the Business Support * plan or the Enterprise * Support plan. However, if you are not subscribed to one of these support * plans, but had been previously and had granted the DRT access to your account, * you can submit a DisassociateDRTLogBucket request to remove this * access.

See Also:

AWS * API Reference

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

Removes the DDoS Response Team's (DRT) access to the specified Amazon S3 * bucket containing your AWS WAF logs.

To make a * DisassociateDRTLogBucket request, you must be subscribed to the Business Support * plan or the Enterprise * Support plan. However, if you are not subscribed to one of these support * plans, but had been previously and had granted the DRT access to your account, * you can submit a DisassociateDRTLogBucket request to remove this * access.

See Also:

AWS * API Reference

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

Removes the DDoS Response Team's (DRT) access to your AWS account.

To * make a DisassociateDRTRole request, you must be subscribed to the * Business * Support plan or the Enterprise * Support plan. However, if you are not subscribed to one of these support * plans, but had been previously and had granted the DRT access to your account, * you can submit a DisassociateDRTRole request to remove this * access.

See Also:

AWS * API Reference

*/ virtual Model::DisassociateDRTRoleOutcome DisassociateDRTRole(const Model::DisassociateDRTRoleRequest& request) const; /** *

Removes the DDoS Response Team's (DRT) access to your AWS account.

To * make a DisassociateDRTRole request, you must be subscribed to the * Business * Support plan or the Enterprise * Support plan. However, if you are not subscribed to one of these support * plans, but had been previously and had granted the DRT access to your account, * you can submit a DisassociateDRTRole request to remove this * access.

See Also:

AWS * API Reference

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

Removes the DDoS Response Team's (DRT) access to your AWS account.

To * make a DisassociateDRTRole request, you must be subscribed to the * Business * Support plan or the Enterprise * Support plan. However, if you are not subscribed to one of these support * plans, but had been previously and had granted the DRT access to your account, * you can submit a DisassociateDRTRole request to remove this * access.

See Also:

AWS * API Reference

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

Removes health-based detection from the Shield Advanced protection for a * resource. Shield Advanced health-based detection uses the health of your AWS * resource to improve responsiveness and accuracy in attack detection and * mitigation.

You define the health check in Route 53 and then associate * or disassociate it with your Shield Advanced protection. For more information, * see Shield * Advanced Health-Based Detection in the AWS WAF and AWS * Shield Developer Guide.

See Also:

AWS * API Reference

*/ virtual Model::DisassociateHealthCheckOutcome DisassociateHealthCheck(const Model::DisassociateHealthCheckRequest& request) const; /** *

Removes health-based detection from the Shield Advanced protection for a * resource. Shield Advanced health-based detection uses the health of your AWS * resource to improve responsiveness and accuracy in attack detection and * mitigation.

You define the health check in Route 53 and then associate * or disassociate it with your Shield Advanced protection. For more information, * see Shield * Advanced Health-Based Detection in the AWS WAF and AWS * Shield 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::DisassociateHealthCheckOutcomeCallable DisassociateHealthCheckCallable(const Model::DisassociateHealthCheckRequest& request) const; /** *

Removes health-based detection from the Shield Advanced protection for a * resource. Shield Advanced health-based detection uses the health of your AWS * resource to improve responsiveness and accuracy in attack detection and * mitigation.

You define the health check in Route 53 and then associate * or disassociate it with your Shield Advanced protection. For more information, * see Shield * Advanced Health-Based Detection in the AWS WAF and AWS * Shield Developer Guide.

See Also:

AWS * API Reference

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

Authorizes the DDoS Response Team (DRT) to use email and phone to notify * contacts about escalations to the DRT and to initiate proactive customer * support.

See Also:

AWS * API Reference

*/ virtual Model::EnableProactiveEngagementOutcome EnableProactiveEngagement(const Model::EnableProactiveEngagementRequest& request) const; /** *

Authorizes the DDoS Response Team (DRT) to use email and phone to notify * contacts about escalations to the DRT and to initiate proactive customer * support.

See Also:

AWS * API Reference

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

Authorizes the DDoS Response Team (DRT) to use email and phone to notify * contacts about escalations to the DRT and to initiate proactive customer * support.

See Also:

AWS * API Reference

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

Returns the SubscriptionState, either Active or * Inactive.

See Also:

AWS * API Reference

*/ virtual Model::GetSubscriptionStateOutcome GetSubscriptionState(const Model::GetSubscriptionStateRequest& request) const; /** *

Returns the SubscriptionState, either Active or * Inactive.

See Also:

AWS * API Reference

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

Returns the SubscriptionState, either Active or * Inactive.

See Also:

AWS * API Reference

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

Returns all ongoing DDoS attacks or all DDoS attacks during a specified time * period.

See Also:

AWS * API Reference

*/ virtual Model::ListAttacksOutcome ListAttacks(const Model::ListAttacksRequest& request) const; /** *

Returns all ongoing DDoS attacks or all DDoS attacks during a specified time * period.

See Also:

AWS * API Reference

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

Returns all ongoing DDoS attacks or all DDoS attacks during a specified time * period.

See Also:

AWS * API Reference

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

Lists all Protection objects for the account.

See Also:

* AWS * API Reference

*/ virtual Model::ListProtectionsOutcome ListProtections(const Model::ListProtectionsRequest& request) const; /** *

Lists all Protection objects for the 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::ListProtectionsOutcomeCallable ListProtectionsCallable(const Model::ListProtectionsRequest& request) const; /** *

Lists all Protection objects for the account.

See Also:

* AWS * API Reference

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

Updates the details of the list of email addresses and phone numbers that the * DDoS Response Team (DRT) can use to contact you if you have proactive engagement * enabled, for escalations to the DRT and to initiate proactive customer * support.

See Also:

AWS * API Reference

*/ virtual Model::UpdateEmergencyContactSettingsOutcome UpdateEmergencyContactSettings(const Model::UpdateEmergencyContactSettingsRequest& request) const; /** *

Updates the details of the list of email addresses and phone numbers that the * DDoS Response Team (DRT) can use to contact you if you have proactive engagement * enabled, for escalations to the DRT and to initiate proactive customer * support.

See Also:

AWS * API Reference

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

Updates the details of the list of email addresses and phone numbers that the * DDoS Response Team (DRT) can use to contact you if you have proactive engagement * enabled, for escalations to the DRT and to initiate proactive customer * support.

See Also:

AWS * API Reference

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

Updates the details of an existing subscription. Only enter values for * parameters you want to change. Empty parameters are not updated.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateSubscriptionOutcome UpdateSubscription(const Model::UpdateSubscriptionRequest& request) const; /** *

Updates the details of an existing subscription. Only enter values for * parameters you want to change. Empty parameters are not updated.

See * Also:

AWS * API Reference

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

Updates the details of an existing subscription. Only enter values for * parameters you want to change. Empty parameters are not updated.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateSubscriptionAsync(const Model::UpdateSubscriptionRequest& request, const UpdateSubscriptionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AssociateDRTLogBucketAsyncHelper(const Model::AssociateDRTLogBucketRequest& request, const AssociateDRTLogBucketResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AssociateDRTRoleAsyncHelper(const Model::AssociateDRTRoleRequest& request, const AssociateDRTRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AssociateHealthCheckAsyncHelper(const Model::AssociateHealthCheckRequest& request, const AssociateHealthCheckResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AssociateProactiveEngagementDetailsAsyncHelper(const Model::AssociateProactiveEngagementDetailsRequest& request, const AssociateProactiveEngagementDetailsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateProtectionAsyncHelper(const Model::CreateProtectionRequest& request, const CreateProtectionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateSubscriptionAsyncHelper(const Model::CreateSubscriptionRequest& request, const CreateSubscriptionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteProtectionAsyncHelper(const Model::DeleteProtectionRequest& request, const DeleteProtectionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeAttackAsyncHelper(const Model::DescribeAttackRequest& request, const DescribeAttackResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeDRTAccessAsyncHelper(const Model::DescribeDRTAccessRequest& request, const DescribeDRTAccessResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeEmergencyContactSettingsAsyncHelper(const Model::DescribeEmergencyContactSettingsRequest& request, const DescribeEmergencyContactSettingsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeProtectionAsyncHelper(const Model::DescribeProtectionRequest& request, const DescribeProtectionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeSubscriptionAsyncHelper(const Model::DescribeSubscriptionRequest& request, const DescribeSubscriptionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DisableProactiveEngagementAsyncHelper(const Model::DisableProactiveEngagementRequest& request, const DisableProactiveEngagementResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DisassociateDRTLogBucketAsyncHelper(const Model::DisassociateDRTLogBucketRequest& request, const DisassociateDRTLogBucketResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DisassociateDRTRoleAsyncHelper(const Model::DisassociateDRTRoleRequest& request, const DisassociateDRTRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DisassociateHealthCheckAsyncHelper(const Model::DisassociateHealthCheckRequest& request, const DisassociateHealthCheckResponseReceivedHandler& handler, const std::shared_ptr& context) const; void EnableProactiveEngagementAsyncHelper(const Model::EnableProactiveEngagementRequest& request, const EnableProactiveEngagementResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSubscriptionStateAsyncHelper(const Model::GetSubscriptionStateRequest& request, const GetSubscriptionStateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListAttacksAsyncHelper(const Model::ListAttacksRequest& request, const ListAttacksResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListProtectionsAsyncHelper(const Model::ListProtectionsRequest& request, const ListProtectionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateEmergencyContactSettingsAsyncHelper(const Model::UpdateEmergencyContactSettingsRequest& request, const UpdateEmergencyContactSettingsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateSubscriptionAsyncHelper(const Model::UpdateSubscriptionRequest& request, const UpdateSubscriptionResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace Shield } // namespace Aws