/**
* 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.
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.
& 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