/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 * 
 *  http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
/*
 * Do not modify this file. This file is generated from the shield-2016-06-02.normal.json service model.
 */
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.Shield.Model;
namespace Amazon.Shield
{
    /// 
    /// Interface for accessing Shield
    ///
    /// Shield Advanced 
    /// 
    /// This is the Shield Advanced API Reference. This guide is for developers who
    /// need detailed information about the Shield Advanced API actions, data types, and errors.
    /// For detailed information about WAF and Shield Advanced features and an overview of
    /// how to use the WAF and Shield Advanced APIs, see the WAF
    /// and Shield Developer Guide.
    /// 
    /// 
    public partial interface IAmazonShield : IAmazonService, IDisposable
    {
#if AWS_ASYNC_ENUMERABLES_API
        /// 
        /// Paginators for the service
        /// 
        IShieldPaginatorFactory Paginators { get; }
#endif
                
        #region  AssociateDRTLogBucket
        /// 
        /// Authorizes the Shield Response Team (SRT) to access the specified Amazon S3 bucket
        /// containing log data such as Application Load Balancer access logs, CloudFront logs,
        /// or logs from third party sources. You can associate up to 10 Amazon S3 buckets with
        /// your subscription.
        /// 
        ///  
        /// 
        /// To use the services of the SRT and make an AssociateDRTLogBucket request,
        /// you must be subscribed to the Business
        /// Support plan or the Enterprise
        /// Support plan.
        /// 
        /// 
        /// Container for the necessary parameters to execute the AssociateDRTLogBucket service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the AssociateDRTLogBucket service method, as returned by Shield.
        /// 
        /// In order to grant the necessary access to the Shield Response Team (SRT) the user
        /// submitting the request must have the iam:PassRole permission. This error
        /// indicates the user did not have the appropriate permissions. For more information,
        /// see Granting
        /// a User Permissions to Pass a Role to an Amazon Web Services Service.
        /// 
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the operation would exceed a limit.
        /// 
        /// 
        /// The ARN of the role that you specified does not exist.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for AssociateDRTLogBucket Operation
        Task AssociateDRTLogBucketAsync(AssociateDRTLogBucketRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  AssociateDRTRole
        /// 
        /// Authorizes the Shield Response Team (SRT) using the specified role, to access your
        /// Amazon Web Services account to assist with DDoS attack mitigation during potential
        /// attacks. This enables the SRT to inspect your WAF configuration and create or update
        /// 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 that you'll specify in the request. You can access this
        /// policy in the IAM console at AWSShieldDRTAccessPolicy.
        /// For more information see Adding
        /// and removing IAM identity permissions. The role must also trust the service principal
        /// drt.shield.amazonaws.com. For more information, see IAM
        /// JSON policy elements: Principal.
        /// 
        ///  
        /// 
        /// The SRT will have access only to your WAF and Shield resources. By submitting this
        /// request, you authorize the SRT to inspect your WAF and Shield configuration and create
        /// and update WAF rules and web ACLs on your behalf. The SRT 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 Amazon Web Services service. 
        /// 
        ///  
        /// 
        /// To use the services of the SRT and make an AssociateDRTRole request,
        /// you must be subscribed to the Business
        /// Support plan or the Enterprise
        /// Support plan.
        /// 
        /// 
        /// Container for the necessary parameters to execute the AssociateDRTRole service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the AssociateDRTRole service method, as returned by Shield.
        /// 
        /// In order to grant the necessary access to the Shield Response Team (SRT) the user
        /// submitting the request must have the iam:PassRole permission. This error
        /// indicates the user did not have the appropriate permissions. For more information,
        /// see Granting
        /// a User Permissions to Pass a Role to an Amazon Web Services Service.
        /// 
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for AssociateDRTRole Operation
        Task AssociateDRTRoleAsync(AssociateDRTRoleRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  AssociateHealthCheck
        /// 
        /// Adds health-based detection to the Shield Advanced protection for a resource. Shield
        /// Advanced health-based detection uses the health of your Amazon Web Services resource
        /// to improve responsiveness and accuracy in attack detection and response. 
        /// 
        ///  
        /// 
        /// 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 WAF Developer Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the AssociateHealthCheck service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the AssociateHealthCheck service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource is invalid. You might not have access to
        /// the resource, or the resource might not exist.
        /// 
        /// 
        /// Exception that indicates that the operation would exceed a limit.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for AssociateHealthCheck Operation
        Task AssociateHealthCheckAsync(AssociateHealthCheckRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  AssociateProactiveEngagementDetails
        /// 
        /// Initializes proactive engagement and sets the list of contacts for the Shield Response
        /// Team (SRT) 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 SRT can use
        /// to contact you for escalations to the SRT 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.
        /// 
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the AssociateProactiveEngagementDetails service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the AssociateProactiveEngagementDetails service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for AssociateProactiveEngagementDetails Operation
        Task AssociateProactiveEngagementDetailsAsync(AssociateProactiveEngagementDetailsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  CreateProtection
        /// 
        /// Enables Shield Advanced for a specific Amazon Web Services resource. The resource
        /// can be an Amazon CloudFront distribution, Amazon Route 53 hosted zone, Global Accelerator
        /// standard accelerator, Elastic IP Address, Application Load Balancer, or a Classic
        /// Load Balancer. You can protect Amazon EC2 instances and Network Load Balancers by
        /// association with protected Amazon EC2 Elastic IP addresses.
        /// 
        ///  
        /// 
        /// You can add protection to only a single resource with each CreateProtection
        /// request. You can add protection to multiple resources at once through the Shield Advanced
        /// console at https://console.aws.amazon.com/wafv2/shieldv2#/.
        /// For more information see Getting
        /// Started with Shield Advanced and Adding
        /// Shield Advanced protection to Amazon Web Services resources.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateProtection service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateProtection service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource is invalid. You might not have access to
        /// the resource, or the resource might not exist.
        /// 
        /// 
        /// Exception that indicates that the operation would exceed a limit.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource already exists. If available, this exception
        /// includes details in additional properties.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for CreateProtection Operation
        Task CreateProtectionAsync(CreateProtectionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  CreateProtectionGroup
        /// 
        /// Creates a grouping of protected resources so they can be handled as a collective.
        /// This resource grouping improves the accuracy of detection and reduces false positives.
        /// 
        /// Container for the necessary parameters to execute the CreateProtectionGroup service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateProtectionGroup service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the operation would exceed a limit.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource already exists. If available, this exception
        /// includes details in additional properties.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for CreateProtectionGroup Operation
        Task CreateProtectionGroupAsync(CreateProtectionGroupRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  CreateSubscription
        /// 
        /// Activates Shield Advanced for an account.
        /// 
        ///   
        /// 
        /// For accounts that are members of an Organizations organization, Shield Advanced subscriptions
        /// are billed against the organization's payer account, regardless of whether the payer
        /// account itself is subscribed. 
        /// 
        ///   
        /// 
        /// When you initially 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. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateSubscription service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateSubscription service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception indicating the specified resource already exists. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for CreateSubscription Operation
        Task CreateSubscriptionAsync(CreateSubscriptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DeleteProtection
        /// 
        /// Deletes an Shield Advanced Protection.
        /// 
        /// Container for the necessary parameters to execute the DeleteProtection service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteProtection service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DeleteProtection Operation
        Task DeleteProtectionAsync(DeleteProtectionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DeleteProtectionGroup
        /// 
        /// Removes the specified protection group.
        /// 
        /// Container for the necessary parameters to execute the DeleteProtectionGroup service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteProtectionGroup service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DeleteProtectionGroup Operation
        Task DeleteProtectionGroupAsync(DeleteProtectionGroupRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DeleteSubscription
        /// 
        /// Removes Shield Advanced from an account. Shield Advanced requires a 1-year subscription
        /// commitment. You cannot delete a subscription prior to the completion of that commitment.
        /// 
        /// Container for the necessary parameters to execute the DeleteSubscription service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteSubscription service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// You are trying to update a subscription that has not yet completed the 1-year commitment.
        /// You can change the AutoRenew parameter during the last 30 days of your
        /// subscription. This exception indicates that you are attempting to change AutoRenew
        /// prior to that period.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DeleteSubscription Operation
        [Obsolete("Use UpdateSubscription operation to disable automatic subscription renewal instead.")]
        Task DeleteSubscriptionAsync(DeleteSubscriptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeAttack
        /// 
        /// Describes the details of a DDoS attack.
        /// 
        /// Container for the necessary parameters to execute the DescribeAttack service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeAttack service method, as returned by Shield.
        /// 
        /// Exception that indicates the specified AttackId does not exist, or the
        /// requester does not have the appropriate permissions to access the AttackId.
        /// 
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// REST API Reference for DescribeAttack Operation
        Task DescribeAttackAsync(DescribeAttackRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeAttackStatistics
        /// 
        /// Provides information about the number and type of attacks Shield has detected in the
        /// last year for all resources that belong to your account, regardless of whether you've
        /// defined Shield protections for them. This operation is available to Shield customers
        /// as well as to Shield Advanced customers.
        /// 
        ///  
        /// 
        /// The operation returns data for the time range of midnight UTC, one year ago, to midnight
        /// UTC, today. For example, if the current time is 2020-10-26 15:39:32 PDT,
        /// equal to 2020-10-26 22:39:32 UTC, then the time range for the attack
        /// data returned is from 2019-10-26 00:00:00 UTC to 2020-10-26 00:00:00
        /// UTC. 
        /// 
        ///  
        /// 
        /// The time range indicates the period covered by the attack statistics data items.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeAttackStatistics service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeAttackStatistics service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// REST API Reference for DescribeAttackStatistics Operation
        Task DescribeAttackStatisticsAsync(DescribeAttackStatisticsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeDRTAccess
        /// 
        /// Returns the current role and list of Amazon S3 log buckets used by the Shield Response
        /// Team (SRT) to access your Amazon Web Services account while assisting with attack
        /// mitigation.
        /// 
        /// Container for the necessary parameters to execute the DescribeDRTAccess service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeDRTAccess service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DescribeDRTAccess Operation
        Task DescribeDRTAccessAsync(DescribeDRTAccessRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeEmergencyContactSettings
        /// 
        /// A list of email addresses and phone numbers that the Shield Response Team (SRT) can
        /// use to contact you if you have proactive engagement enabled, for escalations to the
        /// SRT and to initiate proactive customer support.
        /// 
        /// Container for the necessary parameters to execute the DescribeEmergencyContactSettings service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeEmergencyContactSettings service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DescribeEmergencyContactSettings Operation
        Task DescribeEmergencyContactSettingsAsync(DescribeEmergencyContactSettingsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeProtection
        /// 
        /// Lists the details of a Protection object.
        /// 
        /// Container for the necessary parameters to execute the DescribeProtection service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeProtection service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DescribeProtection Operation
        Task DescribeProtectionAsync(DescribeProtectionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeProtectionGroup
        /// 
        /// Returns the specification for the specified protection group.
        /// 
        /// Container for the necessary parameters to execute the DescribeProtectionGroup service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeProtectionGroup service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DescribeProtectionGroup Operation
        Task DescribeProtectionGroupAsync(DescribeProtectionGroupRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DescribeSubscription
        /// 
        /// Provides details about the Shield Advanced subscription for an account.
        /// 
        /// Container for the necessary parameters to execute the DescribeSubscription service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeSubscription service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DescribeSubscription Operation
        Task DescribeSubscriptionAsync(DescribeSubscriptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DisableApplicationLayerAutomaticResponse
        /// 
        /// Disable the Shield Advanced automatic application layer DDoS mitigation feature for
        /// the protected resource. This stops Shield Advanced from creating, verifying, and applying
        /// WAF rules for attacks that it detects for the resource.
        /// 
        /// Container for the necessary parameters to execute the DisableApplicationLayerAutomaticResponse service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisableApplicationLayerAutomaticResponse service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DisableApplicationLayerAutomaticResponse Operation
        Task DisableApplicationLayerAutomaticResponseAsync(DisableApplicationLayerAutomaticResponseRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DisableProactiveEngagement
        /// 
        /// Removes authorization from the Shield Response Team (SRT) to notify contacts about
        /// escalations to the SRT and to initiate proactive customer support.
        /// 
        /// Container for the necessary parameters to execute the DisableProactiveEngagement service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisableProactiveEngagement service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DisableProactiveEngagement Operation
        Task DisableProactiveEngagementAsync(DisableProactiveEngagementRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DisassociateDRTLogBucket
        /// 
        /// Removes the Shield Response Team's (SRT) access to the specified Amazon S3 bucket
        /// containing the logs that you shared previously.
        /// 
        /// Container for the necessary parameters to execute the DisassociateDRTLogBucket service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisassociateDRTLogBucket service method, as returned by Shield.
        /// 
        /// In order to grant the necessary access to the Shield Response Team (SRT) the user
        /// submitting the request must have the iam:PassRole permission. This error
        /// indicates the user did not have the appropriate permissions. For more information,
        /// see Granting
        /// a User Permissions to Pass a Role to an Amazon Web Services Service.
        /// 
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// The ARN of the role that you specified does not exist.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DisassociateDRTLogBucket Operation
        Task DisassociateDRTLogBucketAsync(DisassociateDRTLogBucketRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DisassociateDRTRole
        /// 
        /// Removes the Shield Response Team's (SRT) access to your Amazon Web Services account.
        /// 
        /// Container for the necessary parameters to execute the DisassociateDRTRole service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisassociateDRTRole service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DisassociateDRTRole Operation
        Task DisassociateDRTRoleAsync(DisassociateDRTRoleRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  DisassociateHealthCheck
        /// 
        /// Removes health-based detection from the Shield Advanced protection for a resource.
        /// Shield Advanced health-based detection uses the health of your Amazon Web Services
        /// resource to improve responsiveness and accuracy in attack detection and response.
        /// 
        /// 
        ///  
        /// 
        /// 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 WAF Developer Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DisassociateHealthCheck service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisassociateHealthCheck service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource is invalid. You might not have access to
        /// the resource, or the resource might not exist.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for DisassociateHealthCheck Operation
        Task DisassociateHealthCheckAsync(DisassociateHealthCheckRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  EnableApplicationLayerAutomaticResponse
        /// 
        /// Enable the Shield Advanced automatic application layer DDoS mitigation for the protected
        /// resource. 
        /// 
        ///   
        /// 
        /// This feature is available for Amazon CloudFront distributions and Application Load
        /// Balancers only.
        /// 
        ///   
        /// 
        /// This causes Shield Advanced to create, verify, and apply WAF rules for DDoS attacks
        /// that it detects for the resource. Shield Advanced applies the rules in a Shield rule
        /// group inside the web ACL that you've associated with the resource. For information
        /// about how automatic mitigation works and the requirements for using it, see Shield
        /// Advanced automatic application layer DDoS mitigation.
        /// 
        ///   
        /// 
        /// Don't use this action to make changes to automatic mitigation settings when it's already
        /// enabled for a resource. Instead, use UpdateApplicationLayerAutomaticResponse.
        /// 
        ///   
        /// 
        /// To use this feature, you must associate a web ACL with the protected resource. The
        /// web ACL must be created using the latest version of WAF (v2). You can associate the
        /// web ACL through the Shield Advanced console at https://console.aws.amazon.com/wafv2/shieldv2#/.
        /// For more information, see Getting
        /// Started with Shield Advanced. You can also associate the web ACL to the resource
        /// through the WAF console or the WAF API, but you must manage Shield Advanced automatic
        /// mitigation through Shield Advanced. For information about WAF, see WAF
        /// Developer Guide.
        /// 
        /// 
        /// Container for the necessary parameters to execute the EnableApplicationLayerAutomaticResponse service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the EnableApplicationLayerAutomaticResponse service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the operation would exceed a limit.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for EnableApplicationLayerAutomaticResponse Operation
        Task EnableApplicationLayerAutomaticResponseAsync(EnableApplicationLayerAutomaticResponseRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  EnableProactiveEngagement
        /// 
        /// Authorizes the Shield Response Team (SRT) to use email and phone to notify contacts
        /// about escalations to the SRT and to initiate proactive customer support.
        /// 
        /// Container for the necessary parameters to execute the EnableProactiveEngagement service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the EnableProactiveEngagement service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for EnableProactiveEngagement Operation
        Task EnableProactiveEngagementAsync(EnableProactiveEngagementRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  GetSubscriptionState
        /// 
        /// Returns the SubscriptionState, either Active or Inactive.
        /// 
        /// Container for the necessary parameters to execute the GetSubscriptionState service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetSubscriptionState service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// REST API Reference for GetSubscriptionState Operation
        Task GetSubscriptionStateAsync(GetSubscriptionStateRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListAttacks
        /// 
        /// Returns all ongoing DDoS attacks or all DDoS attacks during a specified time period.
        /// 
        /// Container for the necessary parameters to execute the ListAttacks service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListAttacks service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// REST API Reference for ListAttacks Operation
        Task ListAttacksAsync(ListAttacksRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListProtectionGroups
        /// 
        /// Retrieves ProtectionGroup objects for the account. You can retrieve all protection
        /// groups or you can provide filtering criteria and retrieve just the subset of protection
        /// groups that match the criteria.
        /// 
        /// Container for the necessary parameters to execute the ListProtectionGroups service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListProtectionGroups service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the NextToken specified in the request
        /// is invalid. Submit the request using the NextToken value that was returned
        /// in the prior response.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for ListProtectionGroups Operation
        Task ListProtectionGroupsAsync(ListProtectionGroupsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListProtections
        /// 
        /// Retrieves Protection objects for the account. You can retrieve all protections
        /// or you can provide filtering criteria and retrieve just the subset of protections
        /// that match the criteria.
        /// 
        /// Container for the necessary parameters to execute the ListProtections service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListProtections service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the NextToken specified in the request
        /// is invalid. Submit the request using the NextToken value that was returned
        /// in the prior response.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for ListProtections Operation
        Task ListProtectionsAsync(ListProtectionsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListResourcesInProtectionGroup
        /// 
        /// Retrieves the resources that are included in the protection group.
        /// 
        /// Container for the necessary parameters to execute the ListResourcesInProtectionGroup service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListResourcesInProtectionGroup service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the NextToken specified in the request
        /// is invalid. Submit the request using the NextToken value that was returned
        /// in the prior response.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for ListResourcesInProtectionGroup Operation
        Task ListResourcesInProtectionGroupAsync(ListResourcesInProtectionGroupRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  ListTagsForResource
        /// 
        /// Gets information about Amazon Web Services tags for a specified Amazon Resource Name
        /// (ARN) in Shield.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListTagsForResource service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the resource is invalid. You might not have access to
        /// the resource, or the resource might not exist.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for ListTagsForResource Operation
        Task ListTagsForResourceAsync(ListTagsForResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  TagResource
        /// 
        /// Adds or updates tags for a resource in Shield.
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the TagResource service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource is invalid. You might not have access to
        /// the resource, or the resource might not exist.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for TagResource Operation
        Task TagResourceAsync(TagResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UntagResource
        /// 
        /// Removes tags from a resource in Shield.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UntagResource service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource is invalid. You might not have access to
        /// the resource, or the resource might not exist.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for UntagResource Operation
        Task UntagResourceAsync(UntagResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UpdateApplicationLayerAutomaticResponse
        /// 
        /// Updates an existing Shield Advanced automatic application layer DDoS mitigation configuration
        /// for the specified resource.
        /// 
        /// Container for the necessary parameters to execute the UpdateApplicationLayerAutomaticResponse service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateApplicationLayerAutomaticResponse service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the operation would not cause any change to occur.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for UpdateApplicationLayerAutomaticResponse Operation
        Task UpdateApplicationLayerAutomaticResponseAsync(UpdateApplicationLayerAutomaticResponseRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UpdateEmergencyContactSettings
        /// 
        /// Updates the details of the list of email addresses and phone numbers that the Shield
        /// Response Team (SRT) can use to contact you if you have proactive engagement enabled,
        /// for escalations to the SRT and to initiate proactive customer support.
        /// 
        /// Container for the necessary parameters to execute the UpdateEmergencyContactSettings service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateEmergencyContactSettings service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for UpdateEmergencyContactSettings Operation
        Task UpdateEmergencyContactSettingsAsync(UpdateEmergencyContactSettingsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UpdateProtectionGroup
        /// 
        /// Updates an existing protection group. A protection group is a grouping of protected
        /// resources so they can be handled as a collective. This resource grouping improves
        /// the accuracy of detection and reduces false positives.
        /// 
        /// Container for the necessary parameters to execute the UpdateProtectionGroup service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateProtectionGroup service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for UpdateProtectionGroup Operation
        Task UpdateProtectionGroupAsync(UpdateProtectionGroupRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
                
        #region  UpdateSubscription
        /// 
        /// Updates the details of an existing subscription. Only enter values for parameters
        /// you want to change. Empty parameters are not updated.
        /// 
        ///   
        /// 
        /// For accounts that are members of an Organizations organization, Shield Advanced subscriptions
        /// are billed against the organization's payer account, regardless of whether the payer
        /// account itself is subscribed. 
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the UpdateSubscription service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateSubscription service method, as returned by Shield.
        /// 
        /// Exception that indicates that a problem occurred with the service infrastructure.
        /// You can retry the request.
        /// 
        /// 
        /// Exception that indicates that the parameters passed to the API are invalid. If available,
        /// this exception includes details in additional properties.
        /// 
        /// 
        /// You are trying to update a subscription that has not yet completed the 1-year commitment.
        /// You can change the AutoRenew parameter during the last 30 days of your
        /// subscription. This exception indicates that you are attempting to change AutoRenew
        /// prior to that period.
        /// 
        /// 
        /// Exception that indicates that the resource state has been modified by another client.
        /// Retrieve the resource and then retry your request.
        /// 
        /// 
        /// Exception indicating the specified resource does not exist. If available, this exception
        /// includes details in additional properties.
        /// 
        /// REST API Reference for UpdateSubscription Operation
        Task UpdateSubscriptionAsync(UpdateSubscriptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
    }
}