/* * Copyright 2018-2023 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. */ package com.amazonaws.services.shield; import org.w3c.dom.*; import java.net.*; import java.util.*; import javax.annotation.Generated; import org.apache.commons.logging.*; import com.amazonaws.*; import com.amazonaws.annotation.SdkInternalApi; import com.amazonaws.auth.*; import com.amazonaws.handlers.*; import com.amazonaws.http.*; import com.amazonaws.internal.*; import com.amazonaws.internal.auth.*; import com.amazonaws.metrics.*; import com.amazonaws.regions.*; import com.amazonaws.transform.*; import com.amazonaws.util.*; import com.amazonaws.protocol.json.*; import com.amazonaws.util.AWSRequestMetrics.Field; import com.amazonaws.annotation.ThreadSafe; import com.amazonaws.client.AwsSyncClientParams; import com.amazonaws.client.builder.AdvancedConfig; import com.amazonaws.services.shield.AWSShieldClientBuilder; import com.amazonaws.AmazonServiceException; import com.amazonaws.services.shield.model.*; import com.amazonaws.services.shield.model.transform.*; /** * Client for accessing AWS Shield. All service calls made using this client are blocking, and will not return until the * service call completes. *
*
* 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. *
*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AWSShieldClient extends AmazonWebServiceClient implements AWSShield { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AWSShield.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "shield"; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final AdvancedConfig advancedConfig; private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .withSupportsIon(false) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("OptimisticLockException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.OptimisticLockExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidParameterException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.InvalidParameterExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidOperationException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.InvalidOperationExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InternalErrorException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.InternalErrorExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoAssociatedRoleException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.NoAssociatedRoleExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("AccessDeniedForDependencyException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.AccessDeniedForDependencyExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("AccessDeniedException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.AccessDeniedExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("LockedSubscriptionException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.LockedSubscriptionExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidResourceException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.InvalidResourceExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceAlreadyExistsException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.ResourceAlreadyExistsExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidPaginationTokenException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.InvalidPaginationTokenExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("LimitsExceededException").withExceptionUnmarshaller( com.amazonaws.services.shield.model.transform.LimitsExceededExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.shield.model.AWSShieldException.class)); /** * Constructs a new client to invoke service methods on AWS Shield. A credentials provider chain will be used that * searches for credentials in this order: ** All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @see DefaultAWSCredentialsProviderChain * @deprecated use {@link AWSShieldClientBuilder#defaultClient()} */ @Deprecated public AWSShieldClient() { this(DefaultAWSCredentialsProviderChain.getInstance(), configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on AWS Shield. A credentials provider chain will be used that * searches for credentials in this order: *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientConfiguration * The client configuration options controlling how this client connects to AWS Shield (ex: proxy settings, * retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain * @deprecated use {@link AWSShieldClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AWSShieldClient(ClientConfiguration clientConfiguration) { this(DefaultAWSCredentialsProviderChain.getInstance(), clientConfiguration); } /** * Constructs a new client to invoke service methods on AWS Shield using the specified AWS account credentials. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when authenticating with AWS services. * @deprecated use {@link AWSShieldClientBuilder#withCredentials(AWSCredentialsProvider)} for example: * {@code AWSShieldClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).build();} */ @Deprecated public AWSShieldClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on AWS Shield using the specified AWS account credentials and * client configuration options. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when authenticating with AWS services. * @param clientConfiguration * The client configuration options controlling how this client connects to AWS Shield (ex: proxy settings, * retry counts, etc.). * @deprecated use {@link AWSShieldClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AWSShieldClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AWSShieldClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider(awsCredentials); this.advancedConfig = AdvancedConfig.EMPTY; init(); } /** * Constructs a new client to invoke service methods on AWS Shield using the specified AWS account credentials * provider. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to authenticate requests with AWS services. * @deprecated use {@link AWSShieldClientBuilder#withCredentials(AWSCredentialsProvider)} */ @Deprecated public AWSShieldClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on AWS Shield using the specified AWS account credentials * provider and client configuration options. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client connects to AWS Shield (ex: proxy settings, * retry counts, etc.). * @deprecated use {@link AWSShieldClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AWSShieldClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AWSShieldClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on AWS Shield using the specified AWS account credentials * provider, client configuration options, and request metric collector. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client connects to AWS Shield (ex: proxy settings, * retry counts, etc.). * @param requestMetricCollector * optional request metric collector * @deprecated use {@link AWSShieldClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AWSShieldClientBuilder#withClientConfiguration(ClientConfiguration)} and * {@link AWSShieldClientBuilder#withMetricsCollector(RequestMetricCollector)} */ @Deprecated public AWSShieldClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; this.advancedConfig = AdvancedConfig.EMPTY; init(); } public static AWSShieldClientBuilder builder() { return AWSShieldClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on AWS Shield using the specified parameters. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AWSShieldClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on AWS Shield using the specified parameters. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AWSShieldClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); this.advancedConfig = clientParams.getAdvancedConfig(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("shield.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/shield/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/shield/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *
* 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.
*
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.
* @throws OptimisticLockException
* Exception that indicates that the resource state has been modified by another client. Retrieve the
* resource and then retry your request.
* @throws ResourceNotFoundException
* Exception indicating the specified resource does not exist. If available, this exception includes details
* in additional properties.
* @sample AWSShield.AssociateDRTLogBucket
* @see AWS
* API Documentation
*/
@Override
public AssociateDRTLogBucketResult associateDRTLogBucket(AssociateDRTLogBucketRequest request) {
request = beforeClientExecution(request);
return executeAssociateDRTLogBucket(request);
}
@SdkInternalApi
final AssociateDRTLogBucketResult executeAssociateDRTLogBucket(AssociateDRTLogBucketRequest associateDRTLogBucketRequest) {
ExecutionContext executionContext = createExecutionContext(associateDRTLogBucketRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request* 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.
*
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.
* @throws OptimisticLockException
* Exception that indicates that the resource state has been modified by another client. Retrieve the
* resource and then retry your request.
* @throws ResourceNotFoundException
* Exception indicating the specified resource does not exist. If available, this exception includes details
* in additional properties.
* @sample AWSShield.AssociateDRTRole
* @see AWS API
* Documentation
*/
@Override
public AssociateDRTRoleResult associateDRTRole(AssociateDRTRoleRequest request) {
request = beforeClientExecution(request);
return executeAssociateDRTRole(request);
}
@SdkInternalApi
final AssociateDRTRoleResult executeAssociateDRTRole(AssociateDRTRoleRequest associateDRTRoleRequest) {
ExecutionContext executionContext = createExecutionContext(associateDRTRoleRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request* 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. *
* * @param associateHealthCheckRequest * @return Result of the AssociateHealthCheck operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws LimitsExceededException * Exception that indicates that the operation would exceed a limit. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @throws InvalidResourceException * Exception that indicates that the resource is invalid. You might not have access to the resource, or the * resource might not exist. * @sample AWSShield.AssociateHealthCheck * @see AWS * API Documentation */ @Override public AssociateHealthCheckResult associateHealthCheck(AssociateHealthCheckRequest request) { request = beforeClientExecution(request); return executeAssociateHealthCheck(request); } @SdkInternalApi final AssociateHealthCheckResult executeAssociateHealthCheck(AssociateHealthCheckRequest associateHealthCheckRequest) { ExecutionContext executionContext = createExecutionContext(associateHealthCheckRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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.
*
* 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.
*
* 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. *
* * @param createProtectionGroupRequest * @return Result of the CreateProtectionGroup operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceAlreadyExistsException * Exception indicating the specified resource already exists. If available, this exception includes details * in additional properties. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws LimitsExceededException * Exception that indicates that the operation would exceed a limit. * @sample AWSShield.CreateProtectionGroup * @see AWS * API Documentation */ @Override public CreateProtectionGroupResult createProtectionGroup(CreateProtectionGroupRequest request) { request = beforeClientExecution(request); return executeCreateProtectionGroup(request); } @SdkInternalApi final CreateProtectionGroupResult executeCreateProtectionGroup(CreateProtectionGroupRequest createProtectionGroupRequest) { ExecutionContext executionContext = createExecutionContext(createProtectionGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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.
*
* Deletes an Shield Advanced Protection. *
* * @param deleteProtectionRequest * @return Result of the DeleteProtection operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @sample AWSShield.DeleteProtection * @see AWS API * Documentation */ @Override public DeleteProtectionResult deleteProtection(DeleteProtectionRequest request) { request = beforeClientExecution(request); return executeDeleteProtection(request); } @SdkInternalApi final DeleteProtectionResult executeDeleteProtection(DeleteProtectionRequest deleteProtectionRequest) { ExecutionContext executionContext = createExecutionContext(deleteProtectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Removes the specified protection group. *
* * @param deleteProtectionGroupRequest * @return Result of the DeleteProtectionGroup operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @sample AWSShield.DeleteProtectionGroup * @see AWS * API Documentation */ @Override public DeleteProtectionGroupResult deleteProtectionGroup(DeleteProtectionGroupRequest request) { request = beforeClientExecution(request); return executeDeleteProtectionGroup(request); } @SdkInternalApi final DeleteProtectionGroupResult executeDeleteProtectionGroup(DeleteProtectionGroupRequest deleteProtectionGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteProtectionGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param deleteSubscriptionRequest * @return Result of the DeleteSubscription operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws LockedSubscriptionException * You are trying to update a subscription that has not yet completed the 1-year commitment. You can change * theAutoRenew
parameter during the last 30 days of your subscription. This exception
* indicates that you are attempting to change AutoRenew
prior to that period.
* @throws ResourceNotFoundException
* Exception indicating the specified resource does not exist. If available, this exception includes details
* in additional properties.
* @sample AWSShield.DeleteSubscription
* @see AWS API
* Documentation
*/
@Override
@Deprecated
public DeleteSubscriptionResult deleteSubscription(DeleteSubscriptionRequest request) {
request = beforeClientExecution(request);
return executeDeleteSubscription(request);
}
@SdkInternalApi
final DeleteSubscriptionResult executeDeleteSubscription(DeleteSubscriptionRequest deleteSubscriptionRequest) {
ExecutionContext executionContext = createExecutionContext(deleteSubscriptionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request* Describes the details of a DDoS attack. *
* * @param describeAttackRequest * @return Result of the DescribeAttack operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws AccessDeniedException * Exception that indicates the specifiedAttackId
does not exist, or the requester does not
* have the appropriate permissions to access the AttackId
.
* @sample AWSShield.DescribeAttack
* @see AWS API
* Documentation
*/
@Override
public DescribeAttackResult describeAttack(DescribeAttackRequest request) {
request = beforeClientExecution(request);
return executeDescribeAttack(request);
}
@SdkInternalApi
final DescribeAttackResult executeDescribeAttack(DescribeAttackRequest describeAttackRequest) {
ExecutionContext executionContext = createExecutionContext(describeAttackRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request* 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. *
* * @param describeAttackStatisticsRequest * @return Result of the DescribeAttackStatistics operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @sample AWSShield.DescribeAttackStatistics * @see AWS API Documentation */ @Override public DescribeAttackStatisticsResult describeAttackStatistics(DescribeAttackStatisticsRequest request) { request = beforeClientExecution(request); return executeDescribeAttackStatistics(request); } @SdkInternalApi final DescribeAttackStatisticsResult executeDescribeAttackStatistics(DescribeAttackStatisticsRequest describeAttackStatisticsRequest) { ExecutionContext executionContext = createExecutionContext(describeAttackStatisticsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param describeDRTAccessRequest * @return Result of the DescribeDRTAccess operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @sample AWSShield.DescribeDRTAccess * @see AWS API * Documentation */ @Override public DescribeDRTAccessResult describeDRTAccess(DescribeDRTAccessRequest request) { request = beforeClientExecution(request); return executeDescribeDRTAccess(request); } @SdkInternalApi final DescribeDRTAccessResult executeDescribeDRTAccess(DescribeDRTAccessRequest describeDRTAccessRequest) { ExecutionContext executionContext = createExecutionContext(describeDRTAccessRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param describeEmergencyContactSettingsRequest * @return Result of the DescribeEmergencyContactSettings operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @sample AWSShield.DescribeEmergencyContactSettings * @see AWS API Documentation */ @Override public DescribeEmergencyContactSettingsResult describeEmergencyContactSettings(DescribeEmergencyContactSettingsRequest request) { request = beforeClientExecution(request); return executeDescribeEmergencyContactSettings(request); } @SdkInternalApi final DescribeEmergencyContactSettingsResult executeDescribeEmergencyContactSettings( DescribeEmergencyContactSettingsRequest describeEmergencyContactSettingsRequest) { ExecutionContext executionContext = createExecutionContext(describeEmergencyContactSettingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Lists the details of a Protection object. *
* * @param describeProtectionRequest * @return Result of the DescribeProtection operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @sample AWSShield.DescribeProtection * @see AWS API * Documentation */ @Override public DescribeProtectionResult describeProtection(DescribeProtectionRequest request) { request = beforeClientExecution(request); return executeDescribeProtection(request); } @SdkInternalApi final DescribeProtectionResult executeDescribeProtection(DescribeProtectionRequest describeProtectionRequest) { ExecutionContext executionContext = createExecutionContext(describeProtectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Returns the specification for the specified protection group. *
* * @param describeProtectionGroupRequest * @return Result of the DescribeProtectionGroup operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @sample AWSShield.DescribeProtectionGroup * @see AWS * API Documentation */ @Override public DescribeProtectionGroupResult describeProtectionGroup(DescribeProtectionGroupRequest request) { request = beforeClientExecution(request); return executeDescribeProtectionGroup(request); } @SdkInternalApi final DescribeProtectionGroupResult executeDescribeProtectionGroup(DescribeProtectionGroupRequest describeProtectionGroupRequest) { ExecutionContext executionContext = createExecutionContext(describeProtectionGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Provides details about the Shield Advanced subscription for an account. *
* * @param describeSubscriptionRequest * @return Result of the DescribeSubscription operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @sample AWSShield.DescribeSubscription * @see AWS * API Documentation */ @Override public DescribeSubscriptionResult describeSubscription(DescribeSubscriptionRequest request) { request = beforeClientExecution(request); return executeDescribeSubscription(request); } @SdkInternalApi final DescribeSubscriptionResult executeDescribeSubscription(DescribeSubscriptionRequest describeSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(describeSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param disableApplicationLayerAutomaticResponseRequest * @return Result of the DisableApplicationLayerAutomaticResponse operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @throws InvalidOperationException * Exception that indicates that the operation would not cause any change to occur. * @sample AWSShield.DisableApplicationLayerAutomaticResponse * @see AWS API Documentation */ @Override public DisableApplicationLayerAutomaticResponseResult disableApplicationLayerAutomaticResponse(DisableApplicationLayerAutomaticResponseRequest request) { request = beforeClientExecution(request); return executeDisableApplicationLayerAutomaticResponse(request); } @SdkInternalApi final DisableApplicationLayerAutomaticResponseResult executeDisableApplicationLayerAutomaticResponse( DisableApplicationLayerAutomaticResponseRequest disableApplicationLayerAutomaticResponseRequest) { ExecutionContext executionContext = createExecutionContext(disableApplicationLayerAutomaticResponseRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Removes authorization from the Shield Response Team (SRT) to notify contacts about escalations to the SRT and to * initiate proactive customer support. *
* * @param disableProactiveEngagementRequest * @return Result of the DisableProactiveEngagement operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidOperationException * Exception that indicates that the operation would not cause any change to occur. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @sample AWSShield.DisableProactiveEngagement * @see AWS API Documentation */ @Override public DisableProactiveEngagementResult disableProactiveEngagement(DisableProactiveEngagementRequest request) { request = beforeClientExecution(request); return executeDisableProactiveEngagement(request); } @SdkInternalApi final DisableProactiveEngagementResult executeDisableProactiveEngagement(DisableProactiveEngagementRequest disableProactiveEngagementRequest) { ExecutionContext executionContext = createExecutionContext(disableProactiveEngagementRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Removes the Shield Response Team's (SRT) access to the specified Amazon S3 bucket containing the logs that you * shared previously. *
* * @param disassociateDRTLogBucketRequest * @return Result of the DisassociateDRTLogBucket operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidOperationException * Exception that indicates that the operation would not cause any change to occur. * @throws NoAssociatedRoleException * The ARN of the role that you specified does not exist. * @throws AccessDeniedForDependencyException * In order to grant the necessary access to the Shield Response Team (SRT) the user submitting the request * must have theiam: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.
* @throws OptimisticLockException
* Exception that indicates that the resource state has been modified by another client. Retrieve the
* resource and then retry your request.
* @throws ResourceNotFoundException
* Exception indicating the specified resource does not exist. If available, this exception includes details
* in additional properties.
* @sample AWSShield.DisassociateDRTLogBucket
* @see AWS API Documentation
*/
@Override
public DisassociateDRTLogBucketResult disassociateDRTLogBucket(DisassociateDRTLogBucketRequest request) {
request = beforeClientExecution(request);
return executeDisassociateDRTLogBucket(request);
}
@SdkInternalApi
final DisassociateDRTLogBucketResult executeDisassociateDRTLogBucket(DisassociateDRTLogBucketRequest disassociateDRTLogBucketRequest) {
ExecutionContext executionContext = createExecutionContext(disassociateDRTLogBucketRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request* Removes the Shield Response Team's (SRT) access to your Amazon Web Services account. *
* * @param disassociateDRTRoleRequest * @return Result of the DisassociateDRTRole operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidOperationException * Exception that indicates that the operation would not cause any change to occur. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @sample AWSShield.DisassociateDRTRole * @see AWS API * Documentation */ @Override public DisassociateDRTRoleResult disassociateDRTRole(DisassociateDRTRoleRequest request) { request = beforeClientExecution(request); return executeDisassociateDRTRole(request); } @SdkInternalApi final DisassociateDRTRoleResult executeDisassociateDRTRole(DisassociateDRTRoleRequest disassociateDRTRoleRequest) { ExecutionContext executionContext = createExecutionContext(disassociateDRTRoleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param disassociateHealthCheckRequest * @return Result of the DisassociateHealthCheck operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @throws InvalidResourceException * Exception that indicates that the resource is invalid. You might not have access to the resource, or the * resource might not exist. * @sample AWSShield.DisassociateHealthCheck * @see AWS * API Documentation */ @Override public DisassociateHealthCheckResult disassociateHealthCheck(DisassociateHealthCheckRequest request) { request = beforeClientExecution(request); return executeDisassociateHealthCheck(request); } @SdkInternalApi final DisassociateHealthCheckResult executeDisassociateHealthCheck(DisassociateHealthCheckRequest disassociateHealthCheckRequest) { ExecutionContext executionContext = createExecutionContext(disassociateHealthCheckRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param enableApplicationLayerAutomaticResponseRequest * @return Result of the EnableApplicationLayerAutomaticResponse operation returned by the service. * @throws LimitsExceededException * Exception that indicates that the operation would exceed a limit. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @throws InvalidOperationException * Exception that indicates that the operation would not cause any change to occur. * @sample AWSShield.EnableApplicationLayerAutomaticResponse * @see AWS API Documentation */ @Override public EnableApplicationLayerAutomaticResponseResult enableApplicationLayerAutomaticResponse(EnableApplicationLayerAutomaticResponseRequest request) { request = beforeClientExecution(request); return executeEnableApplicationLayerAutomaticResponse(request); } @SdkInternalApi final EnableApplicationLayerAutomaticResponseResult executeEnableApplicationLayerAutomaticResponse( EnableApplicationLayerAutomaticResponseRequest enableApplicationLayerAutomaticResponseRequest) { ExecutionContext executionContext = createExecutionContext(enableApplicationLayerAutomaticResponseRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param enableProactiveEngagementRequest * @return Result of the EnableProactiveEngagement operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidOperationException * Exception that indicates that the operation would not cause any change to occur. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @sample AWSShield.EnableProactiveEngagement * @see AWS API Documentation */ @Override public EnableProactiveEngagementResult enableProactiveEngagement(EnableProactiveEngagementRequest request) { request = beforeClientExecution(request); return executeEnableProactiveEngagement(request); } @SdkInternalApi final EnableProactiveEngagementResult executeEnableProactiveEngagement(EnableProactiveEngagementRequest enableProactiveEngagementRequest) { ExecutionContext executionContext = createExecutionContext(enableProactiveEngagementRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request
* Returns the SubscriptionState
, either Active
or Inactive
.
*
* Returns all ongoing DDoS attacks or all DDoS attacks during a specified time period. *
* * @param listAttacksRequest * @return Result of the ListAttacks operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws InvalidOperationException * Exception that indicates that the operation would not cause any change to occur. * @sample AWSShield.ListAttacks * @see AWS API * Documentation */ @Override public ListAttacksResult listAttacks(ListAttacksRequest request) { request = beforeClientExecution(request); return executeListAttacks(request); } @SdkInternalApi final ListAttacksResult executeListAttacks(ListAttacksRequest listAttacksRequest) { ExecutionContext executionContext = createExecutionContext(listAttacksRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param listProtectionGroupsRequest * @return Result of the ListProtectionGroups operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws InvalidPaginationTokenException * Exception that indicates that theNextToken
specified in the request is invalid. Submit the
* request using the NextToken
value that was returned in the prior response.
* @sample AWSShield.ListProtectionGroups
* @see AWS
* API Documentation
*/
@Override
public ListProtectionGroupsResult listProtectionGroups(ListProtectionGroupsRequest request) {
request = beforeClientExecution(request);
return executeListProtectionGroups(request);
}
@SdkInternalApi
final ListProtectionGroupsResult executeListProtectionGroups(ListProtectionGroupsRequest listProtectionGroupsRequest) {
ExecutionContext executionContext = createExecutionContext(listProtectionGroupsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request* 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. *
* * @param listProtectionsRequest * @return Result of the ListProtections operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws InvalidPaginationTokenException * Exception that indicates that theNextToken
specified in the request is invalid. Submit the
* request using the NextToken
value that was returned in the prior response.
* @sample AWSShield.ListProtections
* @see AWS API
* Documentation
*/
@Override
public ListProtectionsResult listProtections(ListProtectionsRequest request) {
request = beforeClientExecution(request);
return executeListProtections(request);
}
@SdkInternalApi
final ListProtectionsResult executeListProtections(ListProtectionsRequest listProtectionsRequest) {
ExecutionContext executionContext = createExecutionContext(listProtectionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request* Retrieves the resources that are included in the protection group. *
* * @param listResourcesInProtectionGroupRequest * @return Result of the ListResourcesInProtectionGroup operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws InvalidPaginationTokenException * Exception that indicates that theNextToken
specified in the request is invalid. Submit the
* request using the NextToken
value that was returned in the prior response.
* @sample AWSShield.ListResourcesInProtectionGroup
* @see AWS API Documentation
*/
@Override
public ListResourcesInProtectionGroupResult listResourcesInProtectionGroup(ListResourcesInProtectionGroupRequest request) {
request = beforeClientExecution(request);
return executeListResourcesInProtectionGroup(request);
}
@SdkInternalApi
final ListResourcesInProtectionGroupResult executeListResourcesInProtectionGroup(ListResourcesInProtectionGroupRequest listResourcesInProtectionGroupRequest) {
ExecutionContext executionContext = createExecutionContext(listResourcesInProtectionGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request* Gets information about Amazon Web Services tags for a specified Amazon Resource Name (ARN) in Shield. *
* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidResourceException * Exception that indicates that the resource is invalid. You might not have access to the resource, or the * resource might not exist. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @sample AWSShield.ListTagsForResource * @see AWS API * Documentation */ @Override public ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest request) { request = beforeClientExecution(request); return executeListTagsForResource(request); } @SdkInternalApi final ListTagsForResourceResult executeListTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Adds or updates tags for a resource in Shield. *
* * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidResourceException * Exception that indicates that the resource is invalid. You might not have access to the resource, or the * resource might not exist. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @sample AWSShield.TagResource * @see AWS API * Documentation */ @Override public TagResourceResult tagResource(TagResourceRequest request) { request = beforeClientExecution(request); return executeTagResource(request); } @SdkInternalApi final TagResourceResult executeTagResource(TagResourceRequest tagResourceRequest) { ExecutionContext executionContext = createExecutionContext(tagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Removes tags from a resource in Shield. *
* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidResourceException * Exception that indicates that the resource is invalid. You might not have access to the resource, or the * resource might not exist. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @sample AWSShield.UntagResource * @see AWS API * Documentation */ @Override public UntagResourceResult untagResource(UntagResourceRequest request) { request = beforeClientExecution(request); return executeUntagResource(request); } @SdkInternalApi final UntagResourceResult executeUntagResource(UntagResourceRequest untagResourceRequest) { ExecutionContext executionContext = createExecutionContext(untagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Updates an existing Shield Advanced automatic application layer DDoS mitigation configuration for the specified * resource. *
* * @param updateApplicationLayerAutomaticResponseRequest * @return Result of the UpdateApplicationLayerAutomaticResponse operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @throws InvalidOperationException * Exception that indicates that the operation would not cause any change to occur. * @sample AWSShield.UpdateApplicationLayerAutomaticResponse * @see AWS API Documentation */ @Override public UpdateApplicationLayerAutomaticResponseResult updateApplicationLayerAutomaticResponse(UpdateApplicationLayerAutomaticResponseRequest request) { request = beforeClientExecution(request); return executeUpdateApplicationLayerAutomaticResponse(request); } @SdkInternalApi final UpdateApplicationLayerAutomaticResponseResult executeUpdateApplicationLayerAutomaticResponse( UpdateApplicationLayerAutomaticResponseRequest updateApplicationLayerAutomaticResponseRequest) { ExecutionContext executionContext = createExecutionContext(updateApplicationLayerAutomaticResponseRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param updateEmergencyContactSettingsRequest * @return Result of the UpdateEmergencyContactSettings operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @sample AWSShield.UpdateEmergencyContactSettings * @see AWS API Documentation */ @Override public UpdateEmergencyContactSettingsResult updateEmergencyContactSettings(UpdateEmergencyContactSettingsRequest request) { request = beforeClientExecution(request); return executeUpdateEmergencyContactSettings(request); } @SdkInternalApi final UpdateEmergencyContactSettingsResult executeUpdateEmergencyContactSettings(UpdateEmergencyContactSettingsRequest updateEmergencyContactSettingsRequest) { ExecutionContext executionContext = createExecutionContext(updateEmergencyContactSettingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param updateProtectionGroupRequest * @return Result of the UpdateProtectionGroup operation returned by the service. * @throws InternalErrorException * Exception that indicates that a problem occurred with the service infrastructure. You can retry the * request. * @throws ResourceNotFoundException * Exception indicating the specified resource does not exist. If available, this exception includes details * in additional properties. * @throws OptimisticLockException * Exception that indicates that the resource state has been modified by another client. Retrieve the * resource and then retry your request. * @throws InvalidParameterException * Exception that indicates that the parameters passed to the API are invalid. If available, this exception * includes details in additional properties. * @sample AWSShield.UpdateProtectionGroup * @see AWS * API Documentation */ @Override public UpdateProtectionGroupResult updateProtectionGroup(UpdateProtectionGroupRequest request) { request = beforeClientExecution(request); return executeUpdateProtectionGroup(request); } @SdkInternalApi final UpdateProtectionGroupResult executeUpdateProtectionGroup(UpdateProtectionGroupRequest updateProtectionGroupRequest) { ExecutionContext executionContext = createExecutionContext(updateProtectionGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
*AutoRenew
parameter during the last 30 days of your subscription. This exception
* indicates that you are attempting to change AutoRenew
prior to that period.
* @throws ResourceNotFoundException
* Exception indicating the specified resource does not exist. If available, this exception includes details
* in additional properties.
* @throws InvalidParameterException
* Exception that indicates that the parameters passed to the API are invalid. If available, this exception
* includes details in additional properties.
* @throws OptimisticLockException
* Exception that indicates that the resource state has been modified by another client. Retrieve the
* resource and then retry your request.
* @sample AWSShield.UpdateSubscription
* @see AWS API
* Documentation
*/
@Override
public UpdateSubscriptionResult updateSubscription(UpdateSubscriptionRequest request) {
request = beforeClientExecution(request);
return executeUpdateSubscription(request);
}
@SdkInternalApi
final UpdateSubscriptionResult executeUpdateSubscription(UpdateSubscriptionRequest updateSubscriptionRequest) {
ExecutionContext executionContext = createExecutionContext(updateSubscriptionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request
* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic
* information for an executed request, you should use this method to retrieve it as soon as possible after
* executing the request.
*
* @param request
* The originally executed request
*
* @return The response metadata for the specified request, or null if none is available.
*/
public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) {
return client.getResponseMetadataForRequest(request);
}
/**
* Normal invoke with authentication. Credentials are required and may be overriden at the request level.
**/
private