All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.waf.AWSWAFRegionalClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS WAF Service module holds the client classes that are used for communicating with AWS WAF Service

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2019-2024 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.waf;

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.waf.AWSWAFRegionalClientBuilder;

import com.amazonaws.AmazonServiceException;

import com.amazonaws.services.waf.model.*;

import com.amazonaws.services.waf.model.waf_regional.transform.*;

/**
 * Client for accessing WAF Regional. All service calls made using this client are blocking, and will not return until
 * the service call completes.
 * 

* *

* This is AWS WAF Classic Regional documentation. For more information, see AWS WAF Classic in the * developer guide. *

*

* For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With the * latest version, AWS WAF has a single set of endpoints for regional and global use. *

* *

* This is the AWS WAF Regional Classic API Reference for using AWS WAF Classic with the AWS resources, Elastic * Load Balancing (ELB) Application Load Balancers and API Gateway APIs. The AWS WAF Classic actions and data types * listed in the reference are available for protecting Elastic Load Balancing (ELB) Application Load Balancers and API * Gateway APIs. You can use these actions and data types by means of the endpoints listed in AWS Regions and Endpoints. This guide * is for developers who need detailed information about the AWS WAF Classic API actions, data types, and errors. For * detailed information about AWS WAF Classic features and an overview of how to use the AWS WAF Classic API, see the AWS WAF Classic in the * developer guide. *

*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AWSWAFRegionalClient extends AmazonWebServiceClient implements AWSWAFRegional { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AWSWAFRegional.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "waf-regional"; /** 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("WAFLimitsExceededException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFLimitsExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFStaleDataException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFStaleDataExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFInvalidPermissionPolicyException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFInvalidPermissionPolicyExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFBadRequestException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFBadRequestExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFInvalidParameterException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFInvalidParameterExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFTagOperationException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFTagOperationExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFTagOperationInternalErrorException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFTagOperationInternalErrorExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFSubscriptionNotFoundException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFSubscriptionNotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFNonEmptyEntityException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFNonEmptyEntityExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFReferencedItemException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFReferencedItemExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFNonexistentItemException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFNonexistentItemExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFServiceLinkedRoleErrorException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFServiceLinkedRoleErrorExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFInternalErrorException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFInternalErrorExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFInvalidAccountException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFInvalidAccountExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFDisallowedNameException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFDisallowedNameExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFInvalidOperationException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFInvalidOperationExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFInvalidRegexPatternException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFInvalidRegexPatternExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFNonexistentContainerException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFNonexistentContainerExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFUnavailableEntityException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFUnavailableEntityExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("WAFEntityMigrationException").withExceptionUnmarshaller( com.amazonaws.services.waf.model.waf_regional.transform.WAFEntityMigrationExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.waf.model.AWSWAFException.class)); /** * Constructs a new client to invoke service methods on WAF Regional. A credentials provider chain will be used that * searches for credentials in this order: *
    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 metadata service
  • *
* *

* 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 AWSWAFRegionalClientBuilder#defaultClient()} */ @Deprecated public AWSWAFRegionalClient() { this(DefaultAWSCredentialsProviderChain.getInstance(), configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on WAF Regional. A credentials provider chain will be used that * searches for credentials in this order: *

    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 metadata service
  • *
* *

* 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 WAF Regional (ex: proxy settings, * retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain * @deprecated use {@link AWSWAFRegionalClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AWSWAFRegionalClient(ClientConfiguration clientConfiguration) { this(DefaultAWSCredentialsProviderChain.getInstance(), clientConfiguration); } /** * Constructs a new client to invoke service methods on WAF Regional 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 AWSWAFRegionalClientBuilder#withCredentials(AWSCredentialsProvider)} for example: * {@code AWSWAFRegionalClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).build();} */ @Deprecated public AWSWAFRegionalClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on WAF Regional 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 WAF Regional (ex: proxy settings, * retry counts, etc.). * @deprecated use {@link AWSWAFRegionalClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AWSWAFRegionalClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AWSWAFRegionalClient(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 WAF Regional 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 AWSWAFRegionalClientBuilder#withCredentials(AWSCredentialsProvider)} */ @Deprecated public AWSWAFRegionalClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on WAF Regional 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 WAF Regional (ex: proxy settings, * retry counts, etc.). * @deprecated use {@link AWSWAFRegionalClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AWSWAFRegionalClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AWSWAFRegionalClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on WAF Regional 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 WAF Regional (ex: proxy settings, * retry counts, etc.). * @param requestMetricCollector * optional request metric collector * @deprecated use {@link AWSWAFRegionalClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AWSWAFRegionalClientBuilder#withClientConfiguration(ClientConfiguration)} and * {@link AWSWAFRegionalClientBuilder#withMetricsCollector(RequestMetricCollector)} */ @Deprecated public AWSWAFRegionalClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; this.advancedConfig = AdvancedConfig.EMPTY; init(); } public static AWSWAFRegionalClientBuilder builder() { return AWSWAFRegionalClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on WAF Regional 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. */ AWSWAFRegionalClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on WAF Regional 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. */ AWSWAFRegionalClient(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("https://waf-regional.us-east-1.amazonaws.com/"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/waf/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/waf/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** * *

* This is AWS WAF Classic Regional documentation. For more information, see AWS WAF Classic in the * developer guide. *

*

* For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

* *

* Associates a web ACL with a resource, either an application load balancer or Amazon API Gateway stage. *

* * @param associateWebACLRequest * @return Result of the AssociateWebACL operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

*
    *
  • *

    * You specified an invalid parameter name. *

    *
  • *
  • *

    * You specified an invalid value. *

    *
  • *
  • *

    * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

    *
  • *
  • *

    * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

    *
  • *
  • *

    * You tried to create a RateBasedRule with a RateKey value other than * IP. *

    *
  • *
  • *

    * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

    *
  • *
  • *

    * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

    *
  • *
  • *

    * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

    *
  • *
  • *

    * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

    *
  • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFUnavailableEntityException * The operation failed because the entity referenced is temporarily unavailable. Retry your request. * @sample AWSWAFRegional.AssociateWebACL * @see AWS * API Documentation */ @Override public AssociateWebACLResult associateWebACL(AssociateWebACLRequest request) { request = beforeClientExecution(request); return executeAssociateWebACL(request); } @SdkInternalApi final AssociateWebACLResult executeAssociateWebACL(AssociateWebACLRequest associateWebACLRequest) { ExecutionContext executionContext = createExecutionContext(associateWebACLRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AssociateWebACLRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(associateWebACLRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AssociateWebACL"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AssociateWebACLResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

    * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

    *

    * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

    *
    *

    * Creates a ByteMatchSet. You then use UpdateByteMatchSet to identify the part of a web request * that you want AWS WAF to inspect, such as the values of the User-Agent header or the query string. * For example, you can create a ByteMatchSet that matches any requests with User-Agent * headers that contain the string BadBot. You can then configure AWS WAF to reject those requests. *

    *

    * To create and configure a ByteMatchSet, perform the following steps: *

    *
      *
    1. *

      * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * CreateByteMatchSet request. *

      *
    2. *
    3. *

      * Submit a CreateByteMatchSet request. *

      *
    4. *
    5. *

      * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateByteMatchSet request. *

      *
    6. *
    7. *

      * Submit an UpdateByteMatchSet request to specify the part of the request that you want AWS WAF to inspect * (for example, the header or the URI) and the value that you want AWS WAF to watch for. *

      *
    8. *
    *

    * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

    * * @param createByteMatchSetRequest * @return Result of the CreateByteMatchSet operation returned by the service. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

    *
      *
    • *

      * You specified an invalid parameter name. *

      *
    • *
    • *

      * You specified an invalid value. *

      *
    • *
    • *

      * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

      *
    • *
    • *

      * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

      *
    • *
    • *

      * You tried to create a RateBasedRule with a RateKey value other than * IP. *

      *
    • *
    • *

      * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

      *
    • *
    • *

      * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

      *
    • *
    • *

      * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

      *
    • *
    • *

      * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

      *
    • * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.CreateByteMatchSet * @see AWS API Documentation */ @Override public CreateByteMatchSetResult createByteMatchSet(CreateByteMatchSetRequest request) { request = beforeClientExecution(request); return executeCreateByteMatchSet(request); } @SdkInternalApi final CreateByteMatchSetResult executeCreateByteMatchSet(CreateByteMatchSetRequest createByteMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(createByteMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateByteMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createByteMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateByteMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateByteMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

      * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

      *

      * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

      *
      *

      * Creates an GeoMatchSet, which you use to specify which web requests you want to allow or block based on * the country that the requests originate from. For example, if you're receiving a lot of requests from one or more * countries and you want to block the requests, you can create an GeoMatchSet that contains those * countries and then configure AWS WAF to block the requests. *

      *

      * To create and configure a GeoMatchSet, perform the following steps: *

      *
        *
      1. *

        * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * CreateGeoMatchSet request. *

        *
      2. *
      3. *

        * Submit a CreateGeoMatchSet request. *

        *
      4. *
      5. *

        * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateGeoMatchSet request. *

        *
      6. *
      7. *

        * Submit an UpdateGeoMatchSetSet request to specify the countries that you want AWS WAF to watch for. *

        *
      8. *
      *

      * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

      * * @param createGeoMatchSetRequest * @return Result of the CreateGeoMatchSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

      *
        *
      • *

        * You specified an invalid parameter name. *

        *
      • *
      • *

        * You specified an invalid value. *

        *
      • *
      • *

        * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

        *
      • *
      • *

        * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

        *
      • *
      • *

        * You tried to create a RateBasedRule with a RateKey value other than * IP. *

        *
      • *
      • *

        * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

        *
      • *
      • *

        * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

        *
      • *
      • *

        * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

        *
      • *
      • *

        * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

        *
      • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.CreateGeoMatchSet * @see AWS * API Documentation */ @Override public CreateGeoMatchSetResult createGeoMatchSet(CreateGeoMatchSetRequest request) { request = beforeClientExecution(request); return executeCreateGeoMatchSet(request); } @SdkInternalApi final CreateGeoMatchSetResult executeCreateGeoMatchSet(CreateGeoMatchSetRequest createGeoMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(createGeoMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateGeoMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createGeoMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateGeoMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateGeoMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

        * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

        *

        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

        *
        *

        * Creates an IPSet, which you use to specify which web requests that you want to allow or block based on the * IP addresses that the requests originate from. For example, if you're receiving a lot of requests from one or * more individual IP addresses or one or more ranges of IP addresses and you want to block the requests, you can * create an IPSet that contains those IP addresses and then configure AWS WAF to block the requests. *

        *

        * To create and configure an IPSet, perform the following steps: *

        *
          *
        1. *

          * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * CreateIPSet request. *

          *
        2. *
        3. *

          * Submit a CreateIPSet request. *

          *
        4. *
        5. *

          * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateIPSet request. *

          *
        6. *
        7. *

          * Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for. *

          *
        8. *
        *

        * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

        * * @param createIPSetRequest * @return Result of the CreateIPSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

        *
          *
        • *

          * You specified an invalid parameter name. *

          *
        • *
        • *

          * You specified an invalid value. *

          *
        • *
        • *

          * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

          *
        • *
        • *

          * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

          *
        • *
        • *

          * You tried to create a RateBasedRule with a RateKey value other than * IP. *

          *
        • *
        • *

          * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

          *
        • *
        • *

          * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

          *
        • *
        • *

          * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

          *
        • *
        • *

          * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

          *
        • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.CreateIPSet * @see AWS API * Documentation */ @Override public CreateIPSetResult createIPSet(CreateIPSetRequest request) { request = beforeClientExecution(request); return executeCreateIPSet(request); } @SdkInternalApi final CreateIPSetResult executeCreateIPSet(CreateIPSetRequest createIPSetRequest) { ExecutionContext executionContext = createExecutionContext(createIPSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateIPSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createIPSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateIPSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateIPSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

          * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

          *

          * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

          *
          *

          * Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies * the maximum number of requests that AWS WAF allows from a specified IP address in a five-minute period. The * RateBasedRule also contains the IPSet objects, ByteMatchSet objects, and * other predicates that identify the requests that you want to count or block if these requests exceed the * RateLimit. *

          *

          * If you add more than one predicate to a RateBasedRule, a request not only must exceed the * RateLimit, but it also must match all the conditions to be counted or blocked. For example, suppose * you add the following to a RateBasedRule: *

          *
            *
          • *

            * An IPSet that matches the IP address 192.0.2.44/32 *

            *
          • *
          • *

            * A ByteMatchSet that matches BadBot in the User-Agent header *

            *
          • *
          *

          * Further, you specify a RateLimit of 1,000. *

          *

          * You then add the RateBasedRule to a WebACL and specify that you want to block requests * that meet the conditions in the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 * and the User-Agent header in the request must contain the value BadBot. Further, * requests that match these two conditions must be received at a rate of more than 1,000 requests every five * minutes. If both conditions are met and the rate is exceeded, AWS WAF blocks the requests. If the rate drops * below 1,000 for a five-minute period, AWS WAF no longer blocks the requests. *

          *

          * As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could * add the following to a RateBasedRule: *

          *
            *
          • *

            * A ByteMatchSet with FieldToMatch of URI *

            *
          • *
          • *

            * A PositionalConstraint of STARTS_WITH *

            *
          • *
          • *

            * A TargetString of login *

            *
          • *
          *

          * Further, you specify a RateLimit of 1,000. *

          *

          * By adding this RateBasedRule to a WebACL, you could limit requests to your login page * without affecting the rest of your site. *

          *

          * To create and configure a RateBasedRule, perform the following steps: *

          *
            *
          1. *

            * Create and update the predicates that you want to include in the rule. For more information, see * CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. *

            *
          2. *
          3. *

            * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * CreateRule request. *

            *
          4. *
          5. *

            * Submit a CreateRateBasedRule request. *

            *
          6. *
          7. *

            * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateRule request. *

            *
          8. *
          9. *

            * Submit an UpdateRateBasedRule request to specify the predicates that you want to include in the * rule. *

            *
          10. *
          11. *

            * Create and update a WebACL that contains the RateBasedRule. For more information, see * CreateWebACL. *

            *
          12. *
          *

          * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

          * * @param createRateBasedRuleRequest * @return Result of the CreateRateBasedRule operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

          *
            *
          • *

            * You specified an invalid parameter name. *

            *
          • *
          • *

            * You specified an invalid value. *

            *
          • *
          • *

            * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

            *
          • *
          • *

            * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

            *
          • *
          • *

            * You tried to create a RateBasedRule with a RateKey value other than * IP. *

            *
          • *
          • *

            * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

            *
          • *
          • *

            * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

            *
          • *
          • *

            * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

            *
          • *
          • *

            * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

            *
          • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @throws WAFTagOperationException * @throws WAFTagOperationInternalErrorException * @throws WAFBadRequestException * @sample AWSWAFRegional.CreateRateBasedRule * @see AWS API Documentation */ @Override public CreateRateBasedRuleResult createRateBasedRule(CreateRateBasedRuleRequest request) { request = beforeClientExecution(request); return executeCreateRateBasedRule(request); } @SdkInternalApi final CreateRateBasedRuleResult executeCreateRateBasedRule(CreateRateBasedRuleRequest createRateBasedRuleRequest) { ExecutionContext executionContext = createExecutionContext(createRateBasedRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateRateBasedRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createRateBasedRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateRateBasedRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateRateBasedRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

            * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

            *

            * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

            *
            *

            * Creates a RegexMatchSet. You then use UpdateRegexMatchSet to identify the part of a web request * that you want AWS WAF to inspect, such as the values of the User-Agent header or the query string. * For example, you can create a RegexMatchSet that contains a RegexMatchTuple that looks * for any requests with User-Agent headers that match a RegexPatternSet with pattern * B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests. *

            *

            * To create and configure a RegexMatchSet, perform the following steps: *

            *
              *
            1. *

              * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * CreateRegexMatchSet request. *

              *
            2. *
            3. *

              * Submit a CreateRegexMatchSet request. *

              *
            4. *
            5. *

              * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateRegexMatchSet request. *

              *
            6. *
            7. *

              * Submit an UpdateRegexMatchSet request to specify the part of the request that you want AWS WAF to inspect * (for example, the header or the URI) and the value, using a RegexPatternSet, that you want AWS WAF * to watch for. *

              *
            8. *
            *

            * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

            * * @param createRegexMatchSetRequest * @return Result of the CreateRegexMatchSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.CreateRegexMatchSet * @see AWS API Documentation */ @Override public CreateRegexMatchSetResult createRegexMatchSet(CreateRegexMatchSetRequest request) { request = beforeClientExecution(request); return executeCreateRegexMatchSet(request); } @SdkInternalApi final CreateRegexMatchSetResult executeCreateRegexMatchSet(CreateRegexMatchSetRequest createRegexMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(createRegexMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateRegexMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createRegexMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateRegexMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateRegexMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

            * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

            *

            * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

            *
            *

            * Creates a RegexPatternSet. You then use UpdateRegexPatternSet to specify the regular * expression (regex) pattern that you want AWS WAF to search for, such as B[a@]dB[o0]t. You can then * configure AWS WAF to reject those requests. *

            *

            * To create and configure a RegexPatternSet, perform the following steps: *

            *
              *
            1. *

              * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * CreateRegexPatternSet request. *

              *
            2. *
            3. *

              * Submit a CreateRegexPatternSet request. *

              *
            4. *
            5. *

              * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateRegexPatternSet request. *

              *
            6. *
            7. *

              * Submit an UpdateRegexPatternSet request to specify the string that you want AWS WAF to watch for. *

              *
            8. *
            *

            * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

            * * @param createRegexPatternSetRequest * @return Result of the CreateRegexPatternSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.CreateRegexPatternSet * @see AWS API Documentation */ @Override public CreateRegexPatternSetResult createRegexPatternSet(CreateRegexPatternSetRequest request) { request = beforeClientExecution(request); return executeCreateRegexPatternSet(request); } @SdkInternalApi final CreateRegexPatternSetResult executeCreateRegexPatternSet(CreateRegexPatternSetRequest createRegexPatternSetRequest) { ExecutionContext executionContext = createExecutionContext(createRegexPatternSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateRegexPatternSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createRegexPatternSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateRegexPatternSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateRegexPatternSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

            * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

            *

            * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

            *
            *

            * Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, * and other predicates that identify the requests that you want to block. If you add more than one predicate to a * Rule, a request must match all of the specifications to be allowed or blocked. For example, suppose * that you add the following to a Rule: *

            *
              *
            • *

              * An IPSet that matches the IP address 192.0.2.44/32 *

              *
            • *
            • *

              * A ByteMatchSet that matches BadBot in the User-Agent header *

              *
            • *
            *

            * You then add the Rule to a WebACL and specify that you want to blocks requests that * satisfy the Rule. For a request to be blocked, it must come from the IP address 192.0.2.44 * and the User-Agent header in the request must contain the value BadBot. *

            *

            * To create and configure a Rule, perform the following steps: *

            *
              *
            1. *

              * Create and update the predicates that you want to include in the Rule. For more information, see * CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. *

              *
            2. *
            3. *

              * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * CreateRule request. *

              *
            4. *
            5. *

              * Submit a CreateRule request. *

              *
            6. *
            7. *

              * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateRule request. *

              *
            8. *
            9. *

              * Submit an UpdateRule request to specify the predicates that you want to include in the * Rule. *

              *
            10. *
            11. *

              * Create and update a WebACL that contains the Rule. For more information, see * CreateWebACL. *

              *
            12. *
            *

            * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

            * * @param createRuleRequest * @return Result of the CreateRule operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

            *
              *
            • *

              * You specified an invalid parameter name. *

              *
            • *
            • *

              * You specified an invalid value. *

              *
            • *
            • *

              * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

              *
            • *
            • *

              * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

              *
            • *
            • *

              * You tried to create a RateBasedRule with a RateKey value other than * IP. *

              *
            • *
            • *

              * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

              *
            • *
            • *

              * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

              *
            • *
            • *

              * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

              *
            • *
            • *

              * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

              *
            • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @throws WAFTagOperationException * @throws WAFTagOperationInternalErrorException * @throws WAFBadRequestException * @sample AWSWAFRegional.CreateRule * @see AWS API * Documentation */ @Override public CreateRuleResult createRule(CreateRuleRequest request) { request = beforeClientExecution(request); return executeCreateRule(request); } @SdkInternalApi final CreateRuleResult executeCreateRule(CreateRuleRequest createRuleRequest) { ExecutionContext executionContext = createExecutionContext(createRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

              * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

              *

              * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

              *
              *

              * Creates a RuleGroup. A rule group is a collection of predefined rules that you add to a web ACL. You * use UpdateRuleGroup to add rules to the rule group. *

              *

              * Rule groups are subject to the following limits: *

              *
                *
              • *

                * Three rule groups per account. You can request an increase to this limit by contacting customer support. *

                *
              • *
              • *

                * One rule group per web ACL. *

                *
              • *
              • *

                * Ten rules per rule group. *

                *
              • *
              *

              * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

              * * @param createRuleGroupRequest * @return Result of the CreateRuleGroup operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @throws WAFTagOperationException * @throws WAFTagOperationInternalErrorException * @throws WAFBadRequestException * @sample AWSWAFRegional.CreateRuleGroup * @see AWS * API Documentation */ @Override public CreateRuleGroupResult createRuleGroup(CreateRuleGroupRequest request) { request = beforeClientExecution(request); return executeCreateRuleGroup(request); } @SdkInternalApi final CreateRuleGroupResult executeCreateRuleGroup(CreateRuleGroupRequest createRuleGroupRequest) { ExecutionContext executionContext = createExecutionContext(createRuleGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateRuleGroupRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createRuleGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateRuleGroup"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateRuleGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

              * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

              *

              * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

              *
              *

              * Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify the part of a * web request that you want AWS WAF to check for length, such as the length of the User-Agent header * or the length of the query string. For example, you can create a SizeConstraintSet that matches any * requests that have a query string that is longer than 100 bytes. You can then configure AWS WAF to reject those * requests. *

              *

              * To create and configure a SizeConstraintSet, perform the following steps: *

              *
                *
              1. *

                * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * CreateSizeConstraintSet request. *

                *
              2. *
              3. *

                * Submit a CreateSizeConstraintSet request. *

                *
              4. *
              5. *

                * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateSizeConstraintSet request. *

                *
              6. *
              7. *

                * Submit an UpdateSizeConstraintSet request to specify the part of the request that you want AWS WAF to * inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. *

                *
              8. *
              *

              * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

              * * @param createSizeConstraintSetRequest * @return Result of the CreateSizeConstraintSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

              *
                *
              • *

                * You specified an invalid parameter name. *

                *
              • *
              • *

                * You specified an invalid value. *

                *
              • *
              • *

                * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                *
              • *
              • *

                * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                *
              • *
              • *

                * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                *
              • *
              • *

                * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                *
              • *
              • *

                * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                *
              • *
              • *

                * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                *
              • *
              • *

                * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                *
              • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.CreateSizeConstraintSet * @see AWS API Documentation */ @Override public CreateSizeConstraintSetResult createSizeConstraintSet(CreateSizeConstraintSetRequest request) { request = beforeClientExecution(request); return executeCreateSizeConstraintSet(request); } @SdkInternalApi final CreateSizeConstraintSetResult executeCreateSizeConstraintSet(CreateSizeConstraintSetRequest createSizeConstraintSetRequest) { ExecutionContext executionContext = createExecutionContext(createSizeConstraintSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateSizeConstraintSetRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createSizeConstraintSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateSizeConstraintSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateSizeConstraintSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                *

                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                *
                *

                * Creates a SqlInjectionMatchSet, which you use to allow, block, or count requests that contain snippets of * SQL code in a specified part of web requests. AWS WAF searches for character sequences that are likely to be * malicious strings. *

                *

                * To create and configure a SqlInjectionMatchSet, perform the following steps: *

                *
                  *
                1. *

                  * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * CreateSqlInjectionMatchSet request. *

                  *
                2. *
                3. *

                  * Submit a CreateSqlInjectionMatchSet request. *

                  *
                4. *
                5. *

                  * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateSqlInjectionMatchSet request. *

                  *
                6. *
                7. *

                  * Submit an UpdateSqlInjectionMatchSet request to specify the parts of web requests in which you want to * allow, block, or count malicious SQL code. *

                  *
                8. *
                *

                * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                * * @param createSqlInjectionMatchSetRequest * A request to create a SqlInjectionMatchSet. * @return Result of the CreateSqlInjectionMatchSet operation returned by the service. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                *
                  *
                • *

                  * You specified an invalid parameter name. *

                  *
                • *
                • *

                  * You specified an invalid value. *

                  *
                • *
                • *

                  * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                  *
                • *
                • *

                  * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                  *
                • *
                • *

                  * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                  *
                • *
                • *

                  * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                  *
                • *
                • *

                  * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                  *
                • *
                • *

                  * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                  *
                • *
                • *

                  * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                  *
                • * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.CreateSqlInjectionMatchSet * @see AWS API Documentation */ @Override public CreateSqlInjectionMatchSetResult createSqlInjectionMatchSet(CreateSqlInjectionMatchSetRequest request) { request = beforeClientExecution(request); return executeCreateSqlInjectionMatchSet(request); } @SdkInternalApi final CreateSqlInjectionMatchSetResult executeCreateSqlInjectionMatchSet(CreateSqlInjectionMatchSetRequest createSqlInjectionMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(createSqlInjectionMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateSqlInjectionMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createSqlInjectionMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateSqlInjectionMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateSqlInjectionMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                  * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                  *

                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                  *
                  *

                  * Creates a WebACL, which contains the Rules that identify the CloudFront web requests * that you want to allow, block, or count. AWS WAF evaluates Rules in order based on the value of * Priority for each Rule. *

                  *

                  * You also specify a default action, either ALLOW or BLOCK. If a web request doesn't * match any of the Rules in a WebACL, AWS WAF responds to the request with the default * action. *

                  *

                  * To create and configure a WebACL, perform the following steps: *

                  *
                    *
                  1. *

                    * Create and update the ByteMatchSet objects and other predicates that you want to include in * Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, * CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. *

                    *
                  2. *
                  3. *

                    * Create and update the Rules that you want to include in the WebACL. For more * information, see CreateRule and UpdateRule. *

                    *
                  4. *
                  5. *

                    * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * CreateWebACL request. *

                    *
                  6. *
                  7. *

                    * Submit a CreateWebACL request. *

                    *
                  8. *
                  9. *

                    * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateWebACL request. *

                    *
                  10. *
                  11. *

                    * Submit an UpdateWebACL request to specify the Rules that you want to include in the * WebACL, to specify the default action, and to associate the WebACL with a CloudFront * distribution. *

                    *
                  12. *
                  *

                  * For more information about how to use the AWS WAF API, see the AWS WAF Developer Guide. *

                  * * @param createWebACLRequest * @return Result of the CreateWebACL operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                  *
                    *
                  • *

                    * You specified an invalid parameter name. *

                    *
                  • *
                  • *

                    * You specified an invalid value. *

                    *
                  • *
                  • *

                    * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                    *
                  • *
                  • *

                    * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                    *
                  • *
                  • *

                    * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                    *
                  • *
                  • *

                    * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                    *
                  • *
                  • *

                    * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                    *
                  • *
                  • *

                    * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                    *
                  • *
                  • *

                    * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                    *
                  • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @throws WAFTagOperationException * @throws WAFTagOperationInternalErrorException * @throws WAFBadRequestException * @sample AWSWAFRegional.CreateWebACL * @see AWS API * Documentation */ @Override public CreateWebACLResult createWebACL(CreateWebACLRequest request) { request = beforeClientExecution(request); return executeCreateWebACL(request); } @SdkInternalApi final CreateWebACLResult executeCreateWebACL(CreateWebACLRequest createWebACLRequest) { ExecutionContext executionContext = createExecutionContext(createWebACLRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateWebACLRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createWebACLRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateWebACL"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateWebACLResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                    * Creates an AWS CloudFormation WAFV2 template for the specified web ACL in the specified Amazon S3 bucket. Then, * in CloudFormation, you create a stack from the template, to create the web ACL and its resources in AWS WAFV2. * Use this to migrate your AWS WAF Classic web ACL to the latest version of AWS WAF. *

                    *

                    * This is part of a larger migration procedure for web ACLs from AWS WAF Classic to the latest version of AWS WAF. * For the full procedure, including caveats and manual steps to complete the migration and switch over to the new * web ACL, see Migrating your AWS * WAF Classic resources to AWS WAF in the AWS WAF Developer Guide. *

                    * * @param createWebACLMigrationStackRequest * @return Result of the CreateWebACLMigrationStack operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                    *
                      *
                    • *

                      * You specified an invalid parameter name. *

                      *
                    • *
                    • *

                      * You specified an invalid value. *

                      *
                    • *
                    • *

                      * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                      *
                    • *
                    • *

                      * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                      *
                    • *
                    • *

                      * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                      *
                    • *
                    • *

                      * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                      *
                    • *
                    • *

                      * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                      *
                    • *
                    • *

                      * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                      *
                    • *
                    • *

                      * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                      *
                    • * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                      *
                        *
                      • *

                        * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                        *
                      • *
                      • *

                        * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                        *
                      • *
                      • *

                        * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                        *
                      • *
                      • *

                        * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                        *
                      • *
                      • *

                        * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                        *
                      • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFEntityMigrationException * The operation failed due to a problem with the migration. The failure cause is provided in the exception, * in the MigrationErrorType:

                        *
                          *
                        • *

                          * ENTITY_NOT_SUPPORTED - The web ACL has an unsupported entity but the * IgnoreUnsupportedType is not set to true. *

                          *
                        • *
                        • *

                          * ENTITY_NOT_FOUND - The web ACL doesn't exist. *

                          *
                        • *
                        • *

                          * S3_BUCKET_NO_PERMISSION - You don't have permission to perform the PutObject * action to the specified Amazon S3 bucket. *

                          *
                        • *
                        • *

                          * S3_BUCKET_NOT_ACCESSIBLE - The bucket policy doesn't allow AWS WAF to perform the * PutObject action in the bucket. *

                          *
                        • *
                        • *

                          * S3_BUCKET_NOT_FOUND - The S3 bucket doesn't exist. *

                          *
                        • *
                        • *

                          * S3_BUCKET_INVALID_REGION - The S3 bucket is not in the same Region as the web ACL. *

                          *
                        • *
                        • *

                          * S3_INTERNAL_ERROR - AWS WAF failed to create the template in the S3 bucket for another * reason. *

                          *
                        • * @sample AWSWAFRegional.CreateWebACLMigrationStack * @see AWS API Documentation */ @Override public CreateWebACLMigrationStackResult createWebACLMigrationStack(CreateWebACLMigrationStackRequest request) { request = beforeClientExecution(request); return executeCreateWebACLMigrationStack(request); } @SdkInternalApi final CreateWebACLMigrationStackResult executeCreateWebACLMigrationStack(CreateWebACLMigrationStackRequest createWebACLMigrationStackRequest) { ExecutionContext executionContext = createExecutionContext(createWebACLMigrationStackRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateWebACLMigrationStackRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createWebACLMigrationStackRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateWebACLMigrationStack"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateWebACLMigrationStackResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                          * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                          *

                          * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                          *
                          *

                          * Creates an XssMatchSet, which you use to allow, block, or count requests that contain cross-site scripting * attacks in the specified part of web requests. AWS WAF searches for character sequences that are likely to be * malicious strings. *

                          *

                          * To create and configure an XssMatchSet, perform the following steps: *

                          *
                            *
                          1. *

                            * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * CreateXssMatchSet request. *

                            *
                          2. *
                          3. *

                            * Submit a CreateXssMatchSet request. *

                            *
                          4. *
                          5. *

                            * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateXssMatchSet request. *

                            *
                          6. *
                          7. *

                            * Submit an UpdateXssMatchSet request to specify the parts of web requests in which you want to allow, * block, or count cross-site scripting attacks. *

                            *
                          8. *
                          *

                          * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                          * * @param createXssMatchSetRequest * A request to create an XssMatchSet. * @return Result of the CreateXssMatchSet operation returned by the service. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                          *
                            *
                          • *

                            * You specified an invalid parameter name. *

                            *
                          • *
                          • *

                            * You specified an invalid value. *

                            *
                          • *
                          • *

                            * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                            *
                          • *
                          • *

                            * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                            *
                          • *
                          • *

                            * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                            *
                          • *
                          • *

                            * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                            *
                          • *
                          • *

                            * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                            *
                          • *
                          • *

                            * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                            *
                          • *
                          • *

                            * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                            *
                          • * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.CreateXssMatchSet * @see AWS * API Documentation */ @Override public CreateXssMatchSetResult createXssMatchSet(CreateXssMatchSetRequest request) { request = beforeClientExecution(request); return executeCreateXssMatchSet(request); } @SdkInternalApi final CreateXssMatchSetResult executeCreateXssMatchSet(CreateXssMatchSetRequest createXssMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(createXssMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateXssMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createXssMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateXssMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateXssMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                            * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                            *

                            * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                            *
                            *

                            * Permanently deletes a ByteMatchSet. You can't delete a ByteMatchSet if it's still used in any * Rules or if it still includes any ByteMatchTuple objects (any filters). *

                            *

                            * If you just want to remove a ByteMatchSet from a Rule, use UpdateRule. *

                            *

                            * To permanently delete a ByteMatchSet, perform the following steps: *

                            *
                              *
                            1. *

                              * Update the ByteMatchSet to remove filters, if any. For more information, see * UpdateByteMatchSet. *

                              *
                            2. *
                            3. *

                              * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * DeleteByteMatchSet request. *

                              *
                            4. *
                            5. *

                              * Submit a DeleteByteMatchSet request. *

                              *
                            6. *
                            * * @param deleteByteMatchSetRequest * @return Result of the DeleteByteMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                            *
                              *
                            • *

                              * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                              *
                            • *
                            • *

                              * You tried to delete a Rule that is still referenced by a WebACL. *

                              *
                            • * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                              *
                                *
                              • *

                                * You tried to delete a WebACL that still contains one or more Rule objects. *

                                *
                              • *
                              • *

                                * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                *
                              • *
                              • *

                                * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                *
                              • *
                              • *

                                * You tried to delete an IPSet that references one or more IP addresses. *

                                *
                              • * @sample AWSWAFRegional.DeleteByteMatchSet * @see AWS API Documentation */ @Override public DeleteByteMatchSetResult deleteByteMatchSet(DeleteByteMatchSetRequest request) { request = beforeClientExecution(request); return executeDeleteByteMatchSet(request); } @SdkInternalApi final DeleteByteMatchSetResult executeDeleteByteMatchSet(DeleteByteMatchSetRequest deleteByteMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(deleteByteMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteByteMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteByteMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteByteMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteByteMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                *

                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                *
                                *

                                * Permanently deletes a GeoMatchSet. You can't delete a GeoMatchSet if it's still used in any * Rules or if it still includes any countries. *

                                *

                                * If you just want to remove a GeoMatchSet from a Rule, use UpdateRule. *

                                *

                                * To permanently delete a GeoMatchSet from AWS WAF, perform the following steps: *

                                *
                                  *
                                1. *

                                  * Update the GeoMatchSet to remove any countries. For more information, see UpdateGeoMatchSet. *

                                  *
                                2. *
                                3. *

                                  * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * DeleteGeoMatchSet request. *

                                  *
                                4. *
                                5. *

                                  * Submit a DeleteGeoMatchSet request. *

                                  *
                                6. *
                                * * @param deleteGeoMatchSetRequest * @return Result of the DeleteGeoMatchSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                *
                                  *
                                • *

                                  * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                  *
                                • *
                                • *

                                  * You tried to delete a Rule that is still referenced by a WebACL. *

                                  *
                                • * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                                  *
                                    *
                                  • *

                                    * You tried to delete a WebACL that still contains one or more Rule objects. *

                                    *
                                  • *
                                  • *

                                    * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                    *
                                  • *
                                  • *

                                    * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                    *
                                  • *
                                  • *

                                    * You tried to delete an IPSet that references one or more IP addresses. *

                                    *
                                  • * @sample AWSWAFRegional.DeleteGeoMatchSet * @see AWS * API Documentation */ @Override public DeleteGeoMatchSetResult deleteGeoMatchSet(DeleteGeoMatchSetRequest request) { request = beforeClientExecution(request); return executeDeleteGeoMatchSet(request); } @SdkInternalApi final DeleteGeoMatchSetResult executeDeleteGeoMatchSet(DeleteGeoMatchSetRequest deleteGeoMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(deleteGeoMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteGeoMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteGeoMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteGeoMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteGeoMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                    * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                    *

                                    * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                    *
                                    *

                                    * Permanently deletes an IPSet. You can't delete an IPSet if it's still used in any * Rules or if it still includes any IP addresses. *

                                    *

                                    * If you just want to remove an IPSet from a Rule, use UpdateRule. *

                                    *

                                    * To permanently delete an IPSet from AWS WAF, perform the following steps: *

                                    *
                                      *
                                    1. *

                                      * Update the IPSet to remove IP address ranges, if any. For more information, see UpdateIPSet. *

                                      *
                                    2. *
                                    3. *

                                      * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * DeleteIPSet request. *

                                      *
                                    4. *
                                    5. *

                                      * Submit a DeleteIPSet request. *

                                      *
                                    6. *
                                    * * @param deleteIPSetRequest * @return Result of the DeleteIPSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                    *
                                      *
                                    • *

                                      * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                      *
                                    • *
                                    • *

                                      * You tried to delete a Rule that is still referenced by a WebACL. *

                                      *
                                    • * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                                      *
                                        *
                                      • *

                                        * You tried to delete a WebACL that still contains one or more Rule objects. *

                                        *
                                      • *
                                      • *

                                        * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                        *
                                      • *
                                      • *

                                        * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                        *
                                      • *
                                      • *

                                        * You tried to delete an IPSet that references one or more IP addresses. *

                                        *
                                      • * @sample AWSWAFRegional.DeleteIPSet * @see AWS API * Documentation */ @Override public DeleteIPSetResult deleteIPSet(DeleteIPSetRequest request) { request = beforeClientExecution(request); return executeDeleteIPSet(request); } @SdkInternalApi final DeleteIPSetResult executeDeleteIPSet(DeleteIPSetRequest deleteIPSetRequest) { ExecutionContext executionContext = createExecutionContext(deleteIPSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteIPSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteIPSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteIPSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteIPSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                        * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                        *

                                        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                        *
                                        *

                                        * Permanently deletes the LoggingConfiguration from the specified web ACL. *

                                        * * @param deleteLoggingConfigurationRequest * @return Result of the DeleteLoggingConfiguration operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @sample AWSWAFRegional.DeleteLoggingConfiguration * @see AWS API Documentation */ @Override public DeleteLoggingConfigurationResult deleteLoggingConfiguration(DeleteLoggingConfigurationRequest request) { request = beforeClientExecution(request); return executeDeleteLoggingConfiguration(request); } @SdkInternalApi final DeleteLoggingConfigurationResult executeDeleteLoggingConfiguration(DeleteLoggingConfigurationRequest deleteLoggingConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(deleteLoggingConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteLoggingConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteLoggingConfigurationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteLoggingConfiguration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteLoggingConfigurationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                        * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                        *

                                        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                        *
                                        *

                                        * Permanently deletes an IAM policy from the specified RuleGroup. *

                                        *

                                        * The user making the request must be the owner of the RuleGroup. *

                                        * * @param deletePermissionPolicyRequest * @return Result of the DeletePermissionPolicy operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.DeletePermissionPolicy * @see AWS API Documentation */ @Override public DeletePermissionPolicyResult deletePermissionPolicy(DeletePermissionPolicyRequest request) { request = beforeClientExecution(request); return executeDeletePermissionPolicy(request); } @SdkInternalApi final DeletePermissionPolicyResult executeDeletePermissionPolicy(DeletePermissionPolicyRequest deletePermissionPolicyRequest) { ExecutionContext executionContext = createExecutionContext(deletePermissionPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeletePermissionPolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deletePermissionPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeletePermissionPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeletePermissionPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                        * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                        *

                                        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                        *
                                        *

                                        * Permanently deletes a RateBasedRule. You can't delete a rule if it's still used in any WebACL * objects or if it still includes any predicates, such as ByteMatchSet objects. *

                                        *

                                        * If you just want to remove a rule from a WebACL, use UpdateWebACL. *

                                        *

                                        * To permanently delete a RateBasedRule from AWS WAF, perform the following steps: *

                                        *
                                          *
                                        1. *

                                          * Update the RateBasedRule to remove predicates, if any. For more information, see * UpdateRateBasedRule. *

                                          *
                                        2. *
                                        3. *

                                          * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * DeleteRateBasedRule request. *

                                          *
                                        4. *
                                        5. *

                                          * Submit a DeleteRateBasedRule request. *

                                          *
                                        6. *
                                        * * @param deleteRateBasedRuleRequest * @return Result of the DeleteRateBasedRule operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                        *
                                          *
                                        • *

                                          * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                          *
                                        • *
                                        • *

                                          * You tried to delete a Rule that is still referenced by a WebACL. *

                                          *
                                        • * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                                          *
                                            *
                                          • *

                                            * You tried to delete a WebACL that still contains one or more Rule objects. *

                                            *
                                          • *
                                          • *

                                            * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                            *
                                          • *
                                          • *

                                            * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                            *
                                          • *
                                          • *

                                            * You tried to delete an IPSet that references one or more IP addresses. *

                                            *
                                          • * @throws WAFTagOperationException * @throws WAFTagOperationInternalErrorException * @sample AWSWAFRegional.DeleteRateBasedRule * @see AWS API Documentation */ @Override public DeleteRateBasedRuleResult deleteRateBasedRule(DeleteRateBasedRuleRequest request) { request = beforeClientExecution(request); return executeDeleteRateBasedRule(request); } @SdkInternalApi final DeleteRateBasedRuleResult executeDeleteRateBasedRule(DeleteRateBasedRuleRequest deleteRateBasedRuleRequest) { ExecutionContext executionContext = createExecutionContext(deleteRateBasedRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteRateBasedRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteRateBasedRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteRateBasedRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteRateBasedRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                            * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                            *

                                            * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                            *
                                            *

                                            * Permanently deletes a RegexMatchSet. You can't delete a RegexMatchSet if it's still used in * any Rules or if it still includes any RegexMatchTuples objects (any filters). *

                                            *

                                            * If you just want to remove a RegexMatchSet from a Rule, use UpdateRule. *

                                            *

                                            * To permanently delete a RegexMatchSet, perform the following steps: *

                                            *
                                              *
                                            1. *

                                              * Update the RegexMatchSet to remove filters, if any. For more information, see * UpdateRegexMatchSet. *

                                              *
                                            2. *
                                            3. *

                                              * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * DeleteRegexMatchSet request. *

                                              *
                                            4. *
                                            5. *

                                              * Submit a DeleteRegexMatchSet request. *

                                              *
                                            6. *
                                            * * @param deleteRegexMatchSetRequest * @return Result of the DeleteRegexMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                            *
                                              *
                                            • *

                                              * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                              *
                                            • *
                                            • *

                                              * You tried to delete a Rule that is still referenced by a WebACL. *

                                              *
                                            • * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                                              *
                                                *
                                              • *

                                                * You tried to delete a WebACL that still contains one or more Rule objects. *

                                                *
                                              • *
                                              • *

                                                * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                                *
                                              • *
                                              • *

                                                * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                                *
                                              • *
                                              • *

                                                * You tried to delete an IPSet that references one or more IP addresses. *

                                                *
                                              • * @sample AWSWAFRegional.DeleteRegexMatchSet * @see AWS API Documentation */ @Override public DeleteRegexMatchSetResult deleteRegexMatchSet(DeleteRegexMatchSetRequest request) { request = beforeClientExecution(request); return executeDeleteRegexMatchSet(request); } @SdkInternalApi final DeleteRegexMatchSetResult executeDeleteRegexMatchSet(DeleteRegexMatchSetRequest deleteRegexMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(deleteRegexMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteRegexMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteRegexMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteRegexMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteRegexMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                *

                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                *
                                                *

                                                * Permanently deletes a RegexPatternSet. You can't delete a RegexPatternSet if it's still used * in any RegexMatchSet or if the RegexPatternSet is not empty. *

                                                * * @param deleteRegexPatternSetRequest * @return Result of the DeleteRegexPatternSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                *
                                                  *
                                                • *

                                                  * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                  *
                                                • *
                                                • *

                                                  * You tried to delete a Rule that is still referenced by a WebACL. *

                                                  *
                                                • * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                                                  *
                                                    *
                                                  • *

                                                    * You tried to delete a WebACL that still contains one or more Rule objects. *

                                                    *
                                                  • *
                                                  • *

                                                    * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                                    *
                                                  • *
                                                  • *

                                                    * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                                    *
                                                  • *
                                                  • *

                                                    * You tried to delete an IPSet that references one or more IP addresses. *

                                                    *
                                                  • * @sample AWSWAFRegional.DeleteRegexPatternSet * @see AWS API Documentation */ @Override public DeleteRegexPatternSetResult deleteRegexPatternSet(DeleteRegexPatternSetRequest request) { request = beforeClientExecution(request); return executeDeleteRegexPatternSet(request); } @SdkInternalApi final DeleteRegexPatternSetResult executeDeleteRegexPatternSet(DeleteRegexPatternSetRequest deleteRegexPatternSetRequest) { ExecutionContext executionContext = createExecutionContext(deleteRegexPatternSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteRegexPatternSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteRegexPatternSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteRegexPatternSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteRegexPatternSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                    * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                    *

                                                    * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                    *
                                                    *

                                                    * Permanently deletes a Rule. You can't delete a Rule if it's still used in any * WebACL objects or if it still includes any predicates, such as ByteMatchSet objects. *

                                                    *

                                                    * If you just want to remove a Rule from a WebACL, use UpdateWebACL. *

                                                    *

                                                    * To permanently delete a Rule from AWS WAF, perform the following steps: *

                                                    *
                                                      *
                                                    1. *

                                                      * Update the Rule to remove predicates, if any. For more information, see UpdateRule. *

                                                      *
                                                    2. *
                                                    3. *

                                                      * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * DeleteRule request. *

                                                      *
                                                    4. *
                                                    5. *

                                                      * Submit a DeleteRule request. *

                                                      *
                                                    6. *
                                                    * * @param deleteRuleRequest * @return Result of the DeleteRule operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                    *
                                                      *
                                                    • *

                                                      * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                      *
                                                    • *
                                                    • *

                                                      * You tried to delete a Rule that is still referenced by a WebACL. *

                                                      *
                                                    • * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                                                      *
                                                        *
                                                      • *

                                                        * You tried to delete a WebACL that still contains one or more Rule objects. *

                                                        *
                                                      • *
                                                      • *

                                                        * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                                        *
                                                      • *
                                                      • *

                                                        * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                                        *
                                                      • *
                                                      • *

                                                        * You tried to delete an IPSet that references one or more IP addresses. *

                                                        *
                                                      • * @throws WAFTagOperationException * @throws WAFTagOperationInternalErrorException * @sample AWSWAFRegional.DeleteRule * @see AWS API * Documentation */ @Override public DeleteRuleResult deleteRule(DeleteRuleRequest request) { request = beforeClientExecution(request); return executeDeleteRule(request); } @SdkInternalApi final DeleteRuleResult executeDeleteRule(DeleteRuleRequest deleteRuleRequest) { ExecutionContext executionContext = createExecutionContext(deleteRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                        * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                        *

                                                        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                        *
                                                        *

                                                        * Permanently deletes a RuleGroup. You can't delete a RuleGroup if it's still used in any * WebACL objects or if it still includes any rules. *

                                                        *

                                                        * If you just want to remove a RuleGroup from a WebACL, use UpdateWebACL. *

                                                        *

                                                        * To permanently delete a RuleGroup from AWS WAF, perform the following steps: *

                                                        *
                                                          *
                                                        1. *

                                                          * Update the RuleGroup to remove rules, if any. For more information, see UpdateRuleGroup. *

                                                          *
                                                        2. *
                                                        3. *

                                                          * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * DeleteRuleGroup request. *

                                                          *
                                                        4. *
                                                        5. *

                                                          * Submit a DeleteRuleGroup request. *

                                                          *
                                                        6. *
                                                        * * @param deleteRuleGroupRequest * @return Result of the DeleteRuleGroup operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                        *
                                                          *
                                                        • *

                                                          * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                          *
                                                        • *
                                                        • *

                                                          * You tried to delete a Rule that is still referenced by a WebACL. *

                                                          *
                                                        • * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                                                          *
                                                            *
                                                          • *

                                                            * You tried to delete a WebACL that still contains one or more Rule objects. *

                                                            *
                                                          • *
                                                          • *

                                                            * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                                            *
                                                          • *
                                                          • *

                                                            * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                                            *
                                                          • *
                                                          • *

                                                            * You tried to delete an IPSet that references one or more IP addresses. *

                                                            *
                                                          • * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                            *
                                                              *
                                                            • *

                                                              * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                              *
                                                            • *
                                                            • *

                                                              * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                              *
                                                            • *
                                                            • *

                                                              * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                              *
                                                            • *
                                                            • *

                                                              * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                              *
                                                            • *
                                                            • *

                                                              * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                              *
                                                            • * @throws WAFTagOperationException * @throws WAFTagOperationInternalErrorException * @sample AWSWAFRegional.DeleteRuleGroup * @see AWS * API Documentation */ @Override public DeleteRuleGroupResult deleteRuleGroup(DeleteRuleGroupRequest request) { request = beforeClientExecution(request); return executeDeleteRuleGroup(request); } @SdkInternalApi final DeleteRuleGroupResult executeDeleteRuleGroup(DeleteRuleGroupRequest deleteRuleGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteRuleGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteRuleGroupRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteRuleGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteRuleGroup"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteRuleGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                              * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                              *

                                                              * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                              *
                                                              *

                                                              * Permanently deletes a SizeConstraintSet. You can't delete a SizeConstraintSet if it's still * used in any Rules or if it still includes any SizeConstraint objects (any filters). *

                                                              *

                                                              * If you just want to remove a SizeConstraintSet from a Rule, use UpdateRule. *

                                                              *

                                                              * To permanently delete a SizeConstraintSet, perform the following steps: *

                                                              *
                                                                *
                                                              1. *

                                                                * Update the SizeConstraintSet to remove filters, if any. For more information, see * UpdateSizeConstraintSet. *

                                                                *
                                                              2. *
                                                              3. *

                                                                * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * DeleteSizeConstraintSet request. *

                                                                *
                                                              4. *
                                                              5. *

                                                                * Submit a DeleteSizeConstraintSet request. *

                                                                *
                                                              6. *
                                                              * * @param deleteSizeConstraintSetRequest * @return Result of the DeleteSizeConstraintSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                              *
                                                                *
                                                              • *

                                                                * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                                *
                                                              • *
                                                              • *

                                                                * You tried to delete a Rule that is still referenced by a WebACL. *

                                                                *
                                                              • * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                                                                *
                                                                  *
                                                                • *

                                                                  * You tried to delete a WebACL that still contains one or more Rule objects. *

                                                                  *
                                                                • *
                                                                • *

                                                                  * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                                                  *
                                                                • *
                                                                • *

                                                                  * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                                                  *
                                                                • *
                                                                • *

                                                                  * You tried to delete an IPSet that references one or more IP addresses. *

                                                                  *
                                                                • * @sample AWSWAFRegional.DeleteSizeConstraintSet * @see AWS API Documentation */ @Override public DeleteSizeConstraintSetResult deleteSizeConstraintSet(DeleteSizeConstraintSetRequest request) { request = beforeClientExecution(request); return executeDeleteSizeConstraintSet(request); } @SdkInternalApi final DeleteSizeConstraintSetResult executeDeleteSizeConstraintSet(DeleteSizeConstraintSetRequest deleteSizeConstraintSetRequest) { ExecutionContext executionContext = createExecutionContext(deleteSizeConstraintSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteSizeConstraintSetRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteSizeConstraintSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteSizeConstraintSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteSizeConstraintSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                  * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                  *

                                                                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                  *
                                                                  *

                                                                  * Permanently deletes a SqlInjectionMatchSet. You can't delete a SqlInjectionMatchSet if it's * still used in any Rules or if it still contains any SqlInjectionMatchTuple objects. *

                                                                  *

                                                                  * If you just want to remove a SqlInjectionMatchSet from a Rule, use UpdateRule. *

                                                                  *

                                                                  * To permanently delete a SqlInjectionMatchSet from AWS WAF, perform the following steps: *

                                                                  *
                                                                    *
                                                                  1. *

                                                                    * Update the SqlInjectionMatchSet to remove filters, if any. For more information, see * UpdateSqlInjectionMatchSet. *

                                                                    *
                                                                  2. *
                                                                  3. *

                                                                    * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * DeleteSqlInjectionMatchSet request. *

                                                                    *
                                                                  4. *
                                                                  5. *

                                                                    * Submit a DeleteSqlInjectionMatchSet request. *

                                                                    *
                                                                  6. *
                                                                  * * @param deleteSqlInjectionMatchSetRequest * A request to delete a SqlInjectionMatchSet from AWS WAF. * @return Result of the DeleteSqlInjectionMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                                  *
                                                                    *
                                                                  • *

                                                                    * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                                    *
                                                                  • *
                                                                  • *

                                                                    * You tried to delete a Rule that is still referenced by a WebACL. *

                                                                    *
                                                                  • * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                                                                    *
                                                                      *
                                                                    • *

                                                                      * You tried to delete a WebACL that still contains one or more Rule objects. *

                                                                      *
                                                                    • *
                                                                    • *

                                                                      * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                                                      *
                                                                    • *
                                                                    • *

                                                                      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                                                      *
                                                                    • *
                                                                    • *

                                                                      * You tried to delete an IPSet that references one or more IP addresses. *

                                                                      *
                                                                    • * @sample AWSWAFRegional.DeleteSqlInjectionMatchSet * @see AWS API Documentation */ @Override public DeleteSqlInjectionMatchSetResult deleteSqlInjectionMatchSet(DeleteSqlInjectionMatchSetRequest request) { request = beforeClientExecution(request); return executeDeleteSqlInjectionMatchSet(request); } @SdkInternalApi final DeleteSqlInjectionMatchSetResult executeDeleteSqlInjectionMatchSet(DeleteSqlInjectionMatchSetRequest deleteSqlInjectionMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(deleteSqlInjectionMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteSqlInjectionMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteSqlInjectionMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteSqlInjectionMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteSqlInjectionMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                      * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                      *

                                                                      * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                      *
                                                                      *

                                                                      * Permanently deletes a WebACL. You can't delete a WebACL if it still contains any * Rules. *

                                                                      *

                                                                      * To delete a WebACL, perform the following steps: *

                                                                      *
                                                                        *
                                                                      1. *

                                                                        * Update the WebACL to remove Rules, if any. For more information, see * UpdateWebACL. *

                                                                        *
                                                                      2. *
                                                                      3. *

                                                                        * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * DeleteWebACL request. *

                                                                        *
                                                                      4. *
                                                                      5. *

                                                                        * Submit a DeleteWebACL request. *

                                                                        *
                                                                      6. *
                                                                      * * @param deleteWebACLRequest * @return Result of the DeleteWebACL operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                                      *
                                                                        *
                                                                      • *

                                                                        * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                                        *
                                                                      • *
                                                                      • *

                                                                        * You tried to delete a Rule that is still referenced by a WebACL. *

                                                                        *
                                                                      • * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                                                                        *
                                                                          *
                                                                        • *

                                                                          * You tried to delete a WebACL that still contains one or more Rule objects. *

                                                                          *
                                                                        • *
                                                                        • *

                                                                          * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                                                          *
                                                                        • *
                                                                        • *

                                                                          * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                                                          *
                                                                        • *
                                                                        • *

                                                                          * You tried to delete an IPSet that references one or more IP addresses. *

                                                                          *
                                                                        • * @throws WAFTagOperationException * @throws WAFTagOperationInternalErrorException * @sample AWSWAFRegional.DeleteWebACL * @see AWS API * Documentation */ @Override public DeleteWebACLResult deleteWebACL(DeleteWebACLRequest request) { request = beforeClientExecution(request); return executeDeleteWebACL(request); } @SdkInternalApi final DeleteWebACLResult executeDeleteWebACL(DeleteWebACLRequest deleteWebACLRequest) { ExecutionContext executionContext = createExecutionContext(deleteWebACLRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteWebACLRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteWebACLRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteWebACL"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteWebACLResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                          * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                          *

                                                                          * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                          *
                                                                          *

                                                                          * Permanently deletes an XssMatchSet. You can't delete an XssMatchSet if it's still used in any * Rules or if it still contains any XssMatchTuple objects. *

                                                                          *

                                                                          * If you just want to remove an XssMatchSet from a Rule, use UpdateRule. *

                                                                          *

                                                                          * To permanently delete an XssMatchSet from AWS WAF, perform the following steps: *

                                                                          *
                                                                            *
                                                                          1. *

                                                                            * Update the XssMatchSet to remove filters, if any. For more information, see * UpdateXssMatchSet. *

                                                                            *
                                                                          2. *
                                                                          3. *

                                                                            * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a * DeleteXssMatchSet request. *

                                                                            *
                                                                          4. *
                                                                          5. *

                                                                            * Submit a DeleteXssMatchSet request. *

                                                                            *
                                                                          6. *
                                                                          * * @param deleteXssMatchSetRequest * A request to delete an XssMatchSet from AWS WAF. * @return Result of the DeleteXssMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                                          *
                                                                            *
                                                                          • *

                                                                            * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                                            *
                                                                          • *
                                                                          • *

                                                                            * You tried to delete a Rule that is still referenced by a WebACL. *

                                                                            *
                                                                          • * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFNonEmptyEntityException * The operation failed because you tried to delete an object that isn't empty. For example:

                                                                            *
                                                                              *
                                                                            • *

                                                                              * You tried to delete a WebACL that still contains one or more Rule objects. *

                                                                              *
                                                                            • *
                                                                            • *

                                                                              * You tried to delete a Rule that still contains one or more ByteMatchSet objects * or other predicates. *

                                                                              *
                                                                            • *
                                                                            • *

                                                                              * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple * objects. *

                                                                              *
                                                                            • *
                                                                            • *

                                                                              * You tried to delete an IPSet that references one or more IP addresses. *

                                                                              *
                                                                            • * @sample AWSWAFRegional.DeleteXssMatchSet * @see AWS * API Documentation */ @Override public DeleteXssMatchSetResult deleteXssMatchSet(DeleteXssMatchSetRequest request) { request = beforeClientExecution(request); return executeDeleteXssMatchSet(request); } @SdkInternalApi final DeleteXssMatchSetResult executeDeleteXssMatchSet(DeleteXssMatchSetRequest deleteXssMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(deleteXssMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteXssMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteXssMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteXssMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteXssMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                              * This is AWS WAF Classic Regional documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                              *

                                                                              * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                              *
                                                                              *

                                                                              * Removes a web ACL from the specified resource, either an application load balancer or Amazon API Gateway stage. *

                                                                              * * @param disassociateWebACLRequest * @return Result of the DisassociateWebACL operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                              *
                                                                                *
                                                                              • *

                                                                                * You specified an invalid parameter name. *

                                                                                *
                                                                              • *
                                                                              • *

                                                                                * You specified an invalid value. *

                                                                                *
                                                                              • *
                                                                              • *

                                                                                * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                *
                                                                              • *
                                                                              • *

                                                                                * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                *
                                                                              • *
                                                                              • *

                                                                                * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                *
                                                                              • *
                                                                              • *

                                                                                * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                *
                                                                              • *
                                                                              • *

                                                                                * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                *
                                                                              • *
                                                                              • *

                                                                                * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                *
                                                                              • *
                                                                              • *

                                                                                * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                *
                                                                              • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.DisassociateWebACL * @see AWS API Documentation */ @Override public DisassociateWebACLResult disassociateWebACL(DisassociateWebACLRequest request) { request = beforeClientExecution(request); return executeDisassociateWebACL(request); } @SdkInternalApi final DisassociateWebACLResult executeDisassociateWebACL(DisassociateWebACLRequest disassociateWebACLRequest) { ExecutionContext executionContext = createExecutionContext(disassociateWebACLRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisassociateWebACLRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(disassociateWebACLRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisassociateWebACL"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisassociateWebACLResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                *

                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                *
                                                                                *

                                                                                * Returns the ByteMatchSet specified by ByteMatchSetId. *

                                                                                * * @param getByteMatchSetRequest * @return Result of the GetByteMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetByteMatchSet * @see AWS * API Documentation */ @Override public GetByteMatchSetResult getByteMatchSet(GetByteMatchSetRequest request) { request = beforeClientExecution(request); return executeGetByteMatchSet(request); } @SdkInternalApi final GetByteMatchSetResult executeGetByteMatchSet(GetByteMatchSetRequest getByteMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(getByteMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetByteMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getByteMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetByteMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetByteMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                *

                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                *
                                                                                *

                                                                                * When you want to create, update, or delete AWS WAF objects, get a change token and include the change token in * the create, update, or delete request. Change tokens ensure that your application doesn't submit conflicting * requests to AWS WAF. *

                                                                                *

                                                                                * Each create, update, or delete request must use a unique change token. If your application submits a * GetChangeToken request and then submits a second GetChangeToken request before * submitting a create, update, or delete request, the second GetChangeToken request returns the same * value as the first GetChangeToken request. *

                                                                                *

                                                                                * When you use a change token in a create, update, or delete request, the status of the change token changes to * PENDING, which indicates that AWS WAF is propagating the change to all AWS WAF servers. Use * GetChangeTokenStatus to determine the status of your change token. *

                                                                                * * @param getChangeTokenRequest * @return Result of the GetChangeToken operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @sample AWSWAFRegional.GetChangeToken * @see AWS * API Documentation */ @Override public GetChangeTokenResult getChangeToken(GetChangeTokenRequest request) { request = beforeClientExecution(request); return executeGetChangeToken(request); } @SdkInternalApi final GetChangeTokenResult executeGetChangeToken(GetChangeTokenRequest getChangeTokenRequest) { ExecutionContext executionContext = createExecutionContext(getChangeTokenRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetChangeTokenRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getChangeTokenRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetChangeToken"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetChangeTokenResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                *

                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                *
                                                                                *

                                                                                * Returns the status of a ChangeToken that you got by calling GetChangeToken. * ChangeTokenStatus is one of the following values: *

                                                                                *
                                                                                  *
                                                                                • *

                                                                                  * PROVISIONED: You requested the change token by calling GetChangeToken, but you haven't * used it yet in a call to create, update, or delete an AWS WAF object. *

                                                                                  *
                                                                                • *
                                                                                • *

                                                                                  * PENDING: AWS WAF is propagating the create, update, or delete request to all AWS WAF servers. *

                                                                                  *
                                                                                • *
                                                                                • *

                                                                                  * INSYNC: Propagation is complete. *

                                                                                  *
                                                                                • *
                                                                                * * @param getChangeTokenStatusRequest * @return Result of the GetChangeTokenStatus operation returned by the service. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @sample AWSWAFRegional.GetChangeTokenStatus * @see AWS API Documentation */ @Override public GetChangeTokenStatusResult getChangeTokenStatus(GetChangeTokenStatusRequest request) { request = beforeClientExecution(request); return executeGetChangeTokenStatus(request); } @SdkInternalApi final GetChangeTokenStatusResult executeGetChangeTokenStatus(GetChangeTokenStatusRequest getChangeTokenStatusRequest) { ExecutionContext executionContext = createExecutionContext(getChangeTokenStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetChangeTokenStatusRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getChangeTokenStatusRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetChangeTokenStatus"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetChangeTokenStatusResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                *

                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                *
                                                                                *

                                                                                * Returns the GeoMatchSet that is specified by GeoMatchSetId. *

                                                                                * * @param getGeoMatchSetRequest * @return Result of the GetGeoMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetGeoMatchSet * @see AWS * API Documentation */ @Override public GetGeoMatchSetResult getGeoMatchSet(GetGeoMatchSetRequest request) { request = beforeClientExecution(request); return executeGetGeoMatchSet(request); } @SdkInternalApi final GetGeoMatchSetResult executeGetGeoMatchSet(GetGeoMatchSetRequest getGeoMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(getGeoMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetGeoMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getGeoMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetGeoMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetGeoMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                *

                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                *
                                                                                *

                                                                                * Returns the IPSet that is specified by IPSetId. *

                                                                                * * @param getIPSetRequest * @return Result of the GetIPSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetIPSet * @see AWS API * Documentation */ @Override public GetIPSetResult getIPSet(GetIPSetRequest request) { request = beforeClientExecution(request); return executeGetIPSet(request); } @SdkInternalApi final GetIPSetResult executeGetIPSet(GetIPSetRequest getIPSetRequest) { ExecutionContext executionContext = createExecutionContext(getIPSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetIPSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getIPSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetIPSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetIPSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                *

                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                *
                                                                                *

                                                                                * Returns the LoggingConfiguration for the specified web ACL. *

                                                                                * * @param getLoggingConfigurationRequest * @return Result of the GetLoggingConfiguration operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetLoggingConfiguration * @see AWS API Documentation */ @Override public GetLoggingConfigurationResult getLoggingConfiguration(GetLoggingConfigurationRequest request) { request = beforeClientExecution(request); return executeGetLoggingConfiguration(request); } @SdkInternalApi final GetLoggingConfigurationResult executeGetLoggingConfiguration(GetLoggingConfigurationRequest getLoggingConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(getLoggingConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetLoggingConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getLoggingConfigurationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetLoggingConfiguration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetLoggingConfigurationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                *

                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                *
                                                                                *

                                                                                * Returns the IAM policy attached to the RuleGroup. *

                                                                                * * @param getPermissionPolicyRequest * @return Result of the GetPermissionPolicy operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetPermissionPolicy * @see AWS API Documentation */ @Override public GetPermissionPolicyResult getPermissionPolicy(GetPermissionPolicyRequest request) { request = beforeClientExecution(request); return executeGetPermissionPolicy(request); } @SdkInternalApi final GetPermissionPolicyResult executeGetPermissionPolicy(GetPermissionPolicyRequest getPermissionPolicyRequest) { ExecutionContext executionContext = createExecutionContext(getPermissionPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetPermissionPolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getPermissionPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetPermissionPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetPermissionPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                *

                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                *
                                                                                *

                                                                                * Returns the RateBasedRule that is specified by the RuleId that you included in the * GetRateBasedRule request. *

                                                                                * * @param getRateBasedRuleRequest * @return Result of the GetRateBasedRule operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetRateBasedRule * @see AWS * API Documentation */ @Override public GetRateBasedRuleResult getRateBasedRule(GetRateBasedRuleRequest request) { request = beforeClientExecution(request); return executeGetRateBasedRule(request); } @SdkInternalApi final GetRateBasedRuleResult executeGetRateBasedRule(GetRateBasedRuleRequest getRateBasedRuleRequest) { ExecutionContext executionContext = createExecutionContext(getRateBasedRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetRateBasedRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getRateBasedRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetRateBasedRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetRateBasedRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                *

                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                *
                                                                                *

                                                                                * Returns an array of IP addresses currently being blocked by the RateBasedRule that is specified by the * RuleId. The maximum number of managed keys that will be blocked is 10,000. If more than 10,000 * addresses exceed the rate limit, the 10,000 addresses with the highest rates will be blocked. *

                                                                                * * @param getRateBasedRuleManagedKeysRequest * @return Result of the GetRateBasedRuleManagedKeys operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                *
                                                                                  *
                                                                                • *

                                                                                  * You specified an invalid parameter name. *

                                                                                  *
                                                                                • *
                                                                                • *

                                                                                  * You specified an invalid value. *

                                                                                  *
                                                                                • *
                                                                                • *

                                                                                  * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                  *
                                                                                • *
                                                                                • *

                                                                                  * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                  *
                                                                                • *
                                                                                • *

                                                                                  * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                  *
                                                                                • *
                                                                                • *

                                                                                  * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                  *
                                                                                • *
                                                                                • *

                                                                                  * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                  *
                                                                                • *
                                                                                • *

                                                                                  * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                  *
                                                                                • *
                                                                                • *

                                                                                  * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                  *
                                                                                • * @sample AWSWAFRegional.GetRateBasedRuleManagedKeys * @see AWS API Documentation */ @Override public GetRateBasedRuleManagedKeysResult getRateBasedRuleManagedKeys(GetRateBasedRuleManagedKeysRequest request) { request = beforeClientExecution(request); return executeGetRateBasedRuleManagedKeys(request); } @SdkInternalApi final GetRateBasedRuleManagedKeysResult executeGetRateBasedRuleManagedKeys(GetRateBasedRuleManagedKeysRequest getRateBasedRuleManagedKeysRequest) { ExecutionContext executionContext = createExecutionContext(getRateBasedRuleManagedKeysRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetRateBasedRuleManagedKeysRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getRateBasedRuleManagedKeysRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetRateBasedRuleManagedKeys"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetRateBasedRuleManagedKeysResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                  * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                  *

                                                                                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                  *
                                                                                  *

                                                                                  * Returns the RegexMatchSet specified by RegexMatchSetId. *

                                                                                  * * @param getRegexMatchSetRequest * @return Result of the GetRegexMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetRegexMatchSet * @see AWS * API Documentation */ @Override public GetRegexMatchSetResult getRegexMatchSet(GetRegexMatchSetRequest request) { request = beforeClientExecution(request); return executeGetRegexMatchSet(request); } @SdkInternalApi final GetRegexMatchSetResult executeGetRegexMatchSet(GetRegexMatchSetRequest getRegexMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(getRegexMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetRegexMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getRegexMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetRegexMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetRegexMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                  * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                  *

                                                                                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                  *
                                                                                  *

                                                                                  * Returns the RegexPatternSet specified by RegexPatternSetId. *

                                                                                  * * @param getRegexPatternSetRequest * @return Result of the GetRegexPatternSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetRegexPatternSet * @see AWS API Documentation */ @Override public GetRegexPatternSetResult getRegexPatternSet(GetRegexPatternSetRequest request) { request = beforeClientExecution(request); return executeGetRegexPatternSet(request); } @SdkInternalApi final GetRegexPatternSetResult executeGetRegexPatternSet(GetRegexPatternSetRequest getRegexPatternSetRequest) { ExecutionContext executionContext = createExecutionContext(getRegexPatternSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetRegexPatternSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getRegexPatternSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetRegexPatternSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetRegexPatternSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                  * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                  *

                                                                                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                  *
                                                                                  *

                                                                                  * Returns the Rule that is specified by the RuleId that you included in the * GetRule request. *

                                                                                  * * @param getRuleRequest * @return Result of the GetRule operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetRule * @see AWS API * Documentation */ @Override public GetRuleResult getRule(GetRuleRequest request) { request = beforeClientExecution(request); return executeGetRule(request); } @SdkInternalApi final GetRuleResult executeGetRule(GetRuleRequest getRuleRequest) { ExecutionContext executionContext = createExecutionContext(getRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                  * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                  *

                                                                                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                  *
                                                                                  *

                                                                                  * Returns the RuleGroup that is specified by the RuleGroupId that you included in the * GetRuleGroup request. *

                                                                                  *

                                                                                  * To view the rules in a rule group, use ListActivatedRulesInRuleGroup. *

                                                                                  * * @param getRuleGroupRequest * @return Result of the GetRuleGroup operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetRuleGroup * @see AWS API * Documentation */ @Override public GetRuleGroupResult getRuleGroup(GetRuleGroupRequest request) { request = beforeClientExecution(request); return executeGetRuleGroup(request); } @SdkInternalApi final GetRuleGroupResult executeGetRuleGroup(GetRuleGroupRequest getRuleGroupRequest) { ExecutionContext executionContext = createExecutionContext(getRuleGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetRuleGroupRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getRuleGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetRuleGroup"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetRuleGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                  * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                  *

                                                                                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                  *
                                                                                  *

                                                                                  * Gets detailed information about a specified number of requests--a sample--that AWS WAF randomly selects from * among the first 5,000 requests that your AWS resource received during a time range that you choose. You can * specify a sample size of up to 500 requests, and you can specify any time range in the previous three hours. *

                                                                                  *

                                                                                  * GetSampledRequests returns a time range, which is usually the time range that you specified. * However, if your resource (such as a CloudFront distribution) received 5,000 requests before the specified time * range elapsed, GetSampledRequests returns an updated time range. This new time range indicates the * actual period during which AWS WAF selected the requests in the sample. *

                                                                                  * * @param getSampledRequestsRequest * @return Result of the GetSampledRequests operation returned by the service. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @sample AWSWAFRegional.GetSampledRequests * @see AWS API Documentation */ @Override public GetSampledRequestsResult getSampledRequests(GetSampledRequestsRequest request) { request = beforeClientExecution(request); return executeGetSampledRequests(request); } @SdkInternalApi final GetSampledRequestsResult executeGetSampledRequests(GetSampledRequestsRequest getSampledRequestsRequest) { ExecutionContext executionContext = createExecutionContext(getSampledRequestsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSampledRequestsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getSampledRequestsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetSampledRequests"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetSampledRequestsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                  * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                  *

                                                                                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                  *
                                                                                  *

                                                                                  * Returns the SizeConstraintSet specified by SizeConstraintSetId. *

                                                                                  * * @param getSizeConstraintSetRequest * @return Result of the GetSizeConstraintSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetSizeConstraintSet * @see AWS API Documentation */ @Override public GetSizeConstraintSetResult getSizeConstraintSet(GetSizeConstraintSetRequest request) { request = beforeClientExecution(request); return executeGetSizeConstraintSet(request); } @SdkInternalApi final GetSizeConstraintSetResult executeGetSizeConstraintSet(GetSizeConstraintSetRequest getSizeConstraintSetRequest) { ExecutionContext executionContext = createExecutionContext(getSizeConstraintSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSizeConstraintSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getSizeConstraintSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetSizeConstraintSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetSizeConstraintSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                  * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                  *

                                                                                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                  *
                                                                                  *

                                                                                  * Returns the SqlInjectionMatchSet that is specified by SqlInjectionMatchSetId. *

                                                                                  * * @param getSqlInjectionMatchSetRequest * A request to get a SqlInjectionMatchSet. * @return Result of the GetSqlInjectionMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetSqlInjectionMatchSet * @see AWS API Documentation */ @Override public GetSqlInjectionMatchSetResult getSqlInjectionMatchSet(GetSqlInjectionMatchSetRequest request) { request = beforeClientExecution(request); return executeGetSqlInjectionMatchSet(request); } @SdkInternalApi final GetSqlInjectionMatchSetResult executeGetSqlInjectionMatchSet(GetSqlInjectionMatchSetRequest getSqlInjectionMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(getSqlInjectionMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSqlInjectionMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getSqlInjectionMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetSqlInjectionMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetSqlInjectionMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                  * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                  *

                                                                                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                  *
                                                                                  *

                                                                                  * Returns the WebACL that is specified by WebACLId. *

                                                                                  * * @param getWebACLRequest * @return Result of the GetWebACL operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetWebACL * @see AWS API * Documentation */ @Override public GetWebACLResult getWebACL(GetWebACLRequest request) { request = beforeClientExecution(request); return executeGetWebACL(request); } @SdkInternalApi final GetWebACLResult executeGetWebACL(GetWebACLRequest getWebACLRequest) { ExecutionContext executionContext = createExecutionContext(getWebACLRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetWebACLRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getWebACLRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetWebACL"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetWebACLResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                  * This is AWS WAF Classic Regional documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                  *

                                                                                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                  *
                                                                                  *

                                                                                  * Returns the web ACL for the specified resource, either an application load balancer or Amazon API Gateway stage. *

                                                                                  * * @param getWebACLForResourceRequest * @return Result of the GetWebACLForResource operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                  *
                                                                                    *
                                                                                  • *

                                                                                    * You specified an invalid parameter name. *

                                                                                    *
                                                                                  • *
                                                                                  • *

                                                                                    * You specified an invalid value. *

                                                                                    *
                                                                                  • *
                                                                                  • *

                                                                                    * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                    *
                                                                                  • *
                                                                                  • *

                                                                                    * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                    *
                                                                                  • *
                                                                                  • *

                                                                                    * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                    *
                                                                                  • *
                                                                                  • *

                                                                                    * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                    *
                                                                                  • *
                                                                                  • *

                                                                                    * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                    *
                                                                                  • *
                                                                                  • *

                                                                                    * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                    *
                                                                                  • *
                                                                                  • *

                                                                                    * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                    *
                                                                                  • * @throws WAFUnavailableEntityException * The operation failed because the entity referenced is temporarily unavailable. Retry your request. * @sample AWSWAFRegional.GetWebACLForResource * @see AWS API Documentation */ @Override public GetWebACLForResourceResult getWebACLForResource(GetWebACLForResourceRequest request) { request = beforeClientExecution(request); return executeGetWebACLForResource(request); } @SdkInternalApi final GetWebACLForResourceResult executeGetWebACLForResource(GetWebACLForResourceRequest getWebACLForResourceRequest) { ExecutionContext executionContext = createExecutionContext(getWebACLForResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetWebACLForResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getWebACLForResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetWebACLForResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetWebACLForResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                    * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                    *

                                                                                    * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                    *
                                                                                    *

                                                                                    * Returns the XssMatchSet that is specified by XssMatchSetId. *

                                                                                    * * @param getXssMatchSetRequest * A request to get an XssMatchSet. * @return Result of the GetXssMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @sample AWSWAFRegional.GetXssMatchSet * @see AWS * API Documentation */ @Override public GetXssMatchSetResult getXssMatchSet(GetXssMatchSetRequest request) { request = beforeClientExecution(request); return executeGetXssMatchSet(request); } @SdkInternalApi final GetXssMatchSetResult executeGetXssMatchSet(GetXssMatchSetRequest getXssMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(getXssMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetXssMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getXssMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetXssMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetXssMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                    * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                    *

                                                                                    * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                    *
                                                                                    *

                                                                                    * Returns an array of ActivatedRule objects. *

                                                                                    * * @param listActivatedRulesInRuleGroupRequest * @return Result of the ListActivatedRulesInRuleGroup operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                    *
                                                                                      *
                                                                                    • *

                                                                                      * You specified an invalid parameter name. *

                                                                                      *
                                                                                    • *
                                                                                    • *

                                                                                      * You specified an invalid value. *

                                                                                      *
                                                                                    • *
                                                                                    • *

                                                                                      * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                      *
                                                                                    • *
                                                                                    • *

                                                                                      * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                      *
                                                                                    • *
                                                                                    • *

                                                                                      * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                      *
                                                                                    • *
                                                                                    • *

                                                                                      * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                      *
                                                                                    • *
                                                                                    • *

                                                                                      * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                      *
                                                                                    • *
                                                                                    • *

                                                                                      * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                      *
                                                                                    • *
                                                                                    • *

                                                                                      * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                      *
                                                                                    • * @sample AWSWAFRegional.ListActivatedRulesInRuleGroup * @see AWS API Documentation */ @Override public ListActivatedRulesInRuleGroupResult listActivatedRulesInRuleGroup(ListActivatedRulesInRuleGroupRequest request) { request = beforeClientExecution(request); return executeListActivatedRulesInRuleGroup(request); } @SdkInternalApi final ListActivatedRulesInRuleGroupResult executeListActivatedRulesInRuleGroup(ListActivatedRulesInRuleGroupRequest listActivatedRulesInRuleGroupRequest) { ExecutionContext executionContext = createExecutionContext(listActivatedRulesInRuleGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListActivatedRulesInRuleGroupRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listActivatedRulesInRuleGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListActivatedRulesInRuleGroup"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListActivatedRulesInRuleGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                      * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                      *

                                                                                      * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                      *
                                                                                      *

                                                                                      * Returns an array of ByteMatchSetSummary objects. *

                                                                                      * * @param listByteMatchSetsRequest * @return Result of the ListByteMatchSets operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.ListByteMatchSets * @see AWS * API Documentation */ @Override public ListByteMatchSetsResult listByteMatchSets(ListByteMatchSetsRequest request) { request = beforeClientExecution(request); return executeListByteMatchSets(request); } @SdkInternalApi final ListByteMatchSetsResult executeListByteMatchSets(ListByteMatchSetsRequest listByteMatchSetsRequest) { ExecutionContext executionContext = createExecutionContext(listByteMatchSetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListByteMatchSetsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listByteMatchSetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListByteMatchSets"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListByteMatchSetsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                      * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                      *

                                                                                      * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                      *
                                                                                      *

                                                                                      * Returns an array of GeoMatchSetSummary objects in the response. *

                                                                                      * * @param listGeoMatchSetsRequest * @return Result of the ListGeoMatchSets operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.ListGeoMatchSets * @see AWS * API Documentation */ @Override public ListGeoMatchSetsResult listGeoMatchSets(ListGeoMatchSetsRequest request) { request = beforeClientExecution(request); return executeListGeoMatchSets(request); } @SdkInternalApi final ListGeoMatchSetsResult executeListGeoMatchSets(ListGeoMatchSetsRequest listGeoMatchSetsRequest) { ExecutionContext executionContext = createExecutionContext(listGeoMatchSetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListGeoMatchSetsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listGeoMatchSetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListGeoMatchSets"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListGeoMatchSetsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                      * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                      *

                                                                                      * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                      *
                                                                                      *

                                                                                      * Returns an array of IPSetSummary objects in the response. *

                                                                                      * * @param listIPSetsRequest * @return Result of the ListIPSets operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.ListIPSets * @see AWS API * Documentation */ @Override public ListIPSetsResult listIPSets(ListIPSetsRequest request) { request = beforeClientExecution(request); return executeListIPSets(request); } @SdkInternalApi final ListIPSetsResult executeListIPSets(ListIPSetsRequest listIPSetsRequest) { ExecutionContext executionContext = createExecutionContext(listIPSetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListIPSetsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listIPSetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListIPSets"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListIPSetsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                      * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                      *

                                                                                      * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                      *
                                                                                      *

                                                                                      * Returns an array of LoggingConfiguration objects. *

                                                                                      * * @param listLoggingConfigurationsRequest * @return Result of the ListLoggingConfigurations operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                      *
                                                                                        *
                                                                                      • *

                                                                                        * You specified an invalid parameter name. *

                                                                                        *
                                                                                      • *
                                                                                      • *

                                                                                        * You specified an invalid value. *

                                                                                        *
                                                                                      • *
                                                                                      • *

                                                                                        * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                        *
                                                                                      • *
                                                                                      • *

                                                                                        * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                        *
                                                                                      • *
                                                                                      • *

                                                                                        * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                        *
                                                                                      • *
                                                                                      • *

                                                                                        * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                        *
                                                                                      • *
                                                                                      • *

                                                                                        * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                        *
                                                                                      • *
                                                                                      • *

                                                                                        * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                        *
                                                                                      • *
                                                                                      • *

                                                                                        * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                        *
                                                                                      • * @sample AWSWAFRegional.ListLoggingConfigurations * @see AWS API Documentation */ @Override public ListLoggingConfigurationsResult listLoggingConfigurations(ListLoggingConfigurationsRequest request) { request = beforeClientExecution(request); return executeListLoggingConfigurations(request); } @SdkInternalApi final ListLoggingConfigurationsResult executeListLoggingConfigurations(ListLoggingConfigurationsRequest listLoggingConfigurationsRequest) { ExecutionContext executionContext = createExecutionContext(listLoggingConfigurationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListLoggingConfigurationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listLoggingConfigurationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListLoggingConfigurations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListLoggingConfigurationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                        * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                        *

                                                                                        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                        *
                                                                                        *

                                                                                        * Returns an array of RuleSummary objects. *

                                                                                        * * @param listRateBasedRulesRequest * @return Result of the ListRateBasedRules operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.ListRateBasedRules * @see AWS API Documentation */ @Override public ListRateBasedRulesResult listRateBasedRules(ListRateBasedRulesRequest request) { request = beforeClientExecution(request); return executeListRateBasedRules(request); } @SdkInternalApi final ListRateBasedRulesResult executeListRateBasedRules(ListRateBasedRulesRequest listRateBasedRulesRequest) { ExecutionContext executionContext = createExecutionContext(listRateBasedRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListRateBasedRulesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listRateBasedRulesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListRateBasedRules"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListRateBasedRulesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                        * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                        *

                                                                                        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                        *
                                                                                        *

                                                                                        * Returns an array of RegexMatchSetSummary objects. *

                                                                                        * * @param listRegexMatchSetsRequest * @return Result of the ListRegexMatchSets operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.ListRegexMatchSets * @see AWS API Documentation */ @Override public ListRegexMatchSetsResult listRegexMatchSets(ListRegexMatchSetsRequest request) { request = beforeClientExecution(request); return executeListRegexMatchSets(request); } @SdkInternalApi final ListRegexMatchSetsResult executeListRegexMatchSets(ListRegexMatchSetsRequest listRegexMatchSetsRequest) { ExecutionContext executionContext = createExecutionContext(listRegexMatchSetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListRegexMatchSetsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listRegexMatchSetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListRegexMatchSets"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListRegexMatchSetsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                        * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                        *

                                                                                        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                        *
                                                                                        *

                                                                                        * Returns an array of RegexPatternSetSummary objects. *

                                                                                        * * @param listRegexPatternSetsRequest * @return Result of the ListRegexPatternSets operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.ListRegexPatternSets * @see AWS API Documentation */ @Override public ListRegexPatternSetsResult listRegexPatternSets(ListRegexPatternSetsRequest request) { request = beforeClientExecution(request); return executeListRegexPatternSets(request); } @SdkInternalApi final ListRegexPatternSetsResult executeListRegexPatternSets(ListRegexPatternSetsRequest listRegexPatternSetsRequest) { ExecutionContext executionContext = createExecutionContext(listRegexPatternSetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListRegexPatternSetsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listRegexPatternSetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListRegexPatternSets"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListRegexPatternSetsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                        * This is AWS WAF Classic Regional documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                        *

                                                                                        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                        *
                                                                                        *

                                                                                        * Returns an array of resources associated with the specified web ACL. *

                                                                                        * * @param listResourcesForWebACLRequest * @return Result of the ListResourcesForWebACL operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                        *
                                                                                          *
                                                                                        • *

                                                                                          * You specified an invalid parameter name. *

                                                                                          *
                                                                                        • *
                                                                                        • *

                                                                                          * You specified an invalid value. *

                                                                                          *
                                                                                        • *
                                                                                        • *

                                                                                          * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                          *
                                                                                        • *
                                                                                        • *

                                                                                          * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                          *
                                                                                        • *
                                                                                        • *

                                                                                          * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                          *
                                                                                        • *
                                                                                        • *

                                                                                          * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                          *
                                                                                        • *
                                                                                        • *

                                                                                          * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                          *
                                                                                        • *
                                                                                        • *

                                                                                          * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                          *
                                                                                        • *
                                                                                        • *

                                                                                          * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                          *
                                                                                        • * @sample AWSWAFRegional.ListResourcesForWebACL * @see AWS API Documentation */ @Override public ListResourcesForWebACLResult listResourcesForWebACL(ListResourcesForWebACLRequest request) { request = beforeClientExecution(request); return executeListResourcesForWebACL(request); } @SdkInternalApi final ListResourcesForWebACLResult executeListResourcesForWebACL(ListResourcesForWebACLRequest listResourcesForWebACLRequest) { ExecutionContext executionContext = createExecutionContext(listResourcesForWebACLRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListResourcesForWebACLRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listResourcesForWebACLRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListResourcesForWebACL"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListResourcesForWebACLResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                          * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                          *

                                                                                          * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                          *
                                                                                          *

                                                                                          * Returns an array of RuleGroup objects. *

                                                                                          * * @param listRuleGroupsRequest * @return Result of the ListRuleGroups operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @sample AWSWAFRegional.ListRuleGroups * @see AWS * API Documentation */ @Override public ListRuleGroupsResult listRuleGroups(ListRuleGroupsRequest request) { request = beforeClientExecution(request); return executeListRuleGroups(request); } @SdkInternalApi final ListRuleGroupsResult executeListRuleGroups(ListRuleGroupsRequest listRuleGroupsRequest) { ExecutionContext executionContext = createExecutionContext(listRuleGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListRuleGroupsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listRuleGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListRuleGroups"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListRuleGroupsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                          * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                          *

                                                                                          * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                          *
                                                                                          *

                                                                                          * Returns an array of RuleSummary objects. *

                                                                                          * * @param listRulesRequest * @return Result of the ListRules operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.ListRules * @see AWS API * Documentation */ @Override public ListRulesResult listRules(ListRulesRequest request) { request = beforeClientExecution(request); return executeListRules(request); } @SdkInternalApi final ListRulesResult executeListRules(ListRulesRequest listRulesRequest) { ExecutionContext executionContext = createExecutionContext(listRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListRulesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listRulesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListRules"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListRulesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                          * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                          *

                                                                                          * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                          *
                                                                                          *

                                                                                          * Returns an array of SizeConstraintSetSummary objects. *

                                                                                          * * @param listSizeConstraintSetsRequest * @return Result of the ListSizeConstraintSets operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.ListSizeConstraintSets * @see AWS API Documentation */ @Override public ListSizeConstraintSetsResult listSizeConstraintSets(ListSizeConstraintSetsRequest request) { request = beforeClientExecution(request); return executeListSizeConstraintSets(request); } @SdkInternalApi final ListSizeConstraintSetsResult executeListSizeConstraintSets(ListSizeConstraintSetsRequest listSizeConstraintSetsRequest) { ExecutionContext executionContext = createExecutionContext(listSizeConstraintSetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListSizeConstraintSetsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listSizeConstraintSetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListSizeConstraintSets"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListSizeConstraintSetsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                          * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                          *

                                                                                          * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                          *
                                                                                          *

                                                                                          * Returns an array of SqlInjectionMatchSet objects. *

                                                                                          * * @param listSqlInjectionMatchSetsRequest * A request to list the SqlInjectionMatchSet objects created by the current AWS account. * @return Result of the ListSqlInjectionMatchSets operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.ListSqlInjectionMatchSets * @see AWS API Documentation */ @Override public ListSqlInjectionMatchSetsResult listSqlInjectionMatchSets(ListSqlInjectionMatchSetsRequest request) { request = beforeClientExecution(request); return executeListSqlInjectionMatchSets(request); } @SdkInternalApi final ListSqlInjectionMatchSetsResult executeListSqlInjectionMatchSets(ListSqlInjectionMatchSetsRequest listSqlInjectionMatchSetsRequest) { ExecutionContext executionContext = createExecutionContext(listSqlInjectionMatchSetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListSqlInjectionMatchSetsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listSqlInjectionMatchSetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListSqlInjectionMatchSets"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListSqlInjectionMatchSetsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                          * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                          *

                                                                                          * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                          *
                                                                                          *

                                                                                          * Returns an array of RuleGroup objects that you are subscribed to. *

                                                                                          * * @param listSubscribedRuleGroupsRequest * @return Result of the ListSubscribedRuleGroups operation returned by the service. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @sample AWSWAFRegional.ListSubscribedRuleGroups * @see AWS API Documentation */ @Override public ListSubscribedRuleGroupsResult listSubscribedRuleGroups(ListSubscribedRuleGroupsRequest request) { request = beforeClientExecution(request); return executeListSubscribedRuleGroups(request); } @SdkInternalApi final ListSubscribedRuleGroupsResult executeListSubscribedRuleGroups(ListSubscribedRuleGroupsRequest listSubscribedRuleGroupsRequest) { ExecutionContext executionContext = createExecutionContext(listSubscribedRuleGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListSubscribedRuleGroupsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listSubscribedRuleGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListSubscribedRuleGroups"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListSubscribedRuleGroupsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                          * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                          *

                                                                                          * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                          *
                                                                                          *

                                                                                          * Retrieves the tags associated with the specified AWS resource. Tags are key:value pairs that you can use to * categorize and manage your resources, for purposes like billing. For example, you might set the tag key to * "customer" and the value to the customer name or ID. You can specify one or more tags to add to each AWS * resource, up to 50 tags for a resource. *

                                                                                          *

                                                                                          * Tagging is only available through the API, SDKs, and CLI. You can't manage or view tags through the AWS WAF * Classic console. You can tag the AWS resources that you manage through AWS WAF Classic: web ACLs, rule groups, * and rules. *

                                                                                          * * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                          *
                                                                                            *
                                                                                          • *

                                                                                            * You specified an invalid parameter name. *

                                                                                            *
                                                                                          • *
                                                                                          • *

                                                                                            * You specified an invalid value. *

                                                                                            *
                                                                                          • *
                                                                                          • *

                                                                                            * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                            *
                                                                                          • *
                                                                                          • *

                                                                                            * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                            *
                                                                                          • *
                                                                                          • *

                                                                                            * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                            *
                                                                                          • *
                                                                                          • *

                                                                                            * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                            *
                                                                                          • *
                                                                                          • *

                                                                                            * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                            *
                                                                                          • *
                                                                                          • *

                                                                                            * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                            *
                                                                                          • *
                                                                                          • *

                                                                                            * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                            *
                                                                                          • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFBadRequestException * @throws WAFTagOperationException * @throws WAFTagOperationInternalErrorException * @sample AWSWAFRegional.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 request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTagsForResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listTagsForResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListTagsForResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListTagsForResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                            * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                            *

                                                                                            * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                            *
                                                                                            *

                                                                                            * Returns an array of WebACLSummary objects in the response. *

                                                                                            * * @param listWebACLsRequest * @return Result of the ListWebACLs operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.ListWebACLs * @see AWS API * Documentation */ @Override public ListWebACLsResult listWebACLs(ListWebACLsRequest request) { request = beforeClientExecution(request); return executeListWebACLs(request); } @SdkInternalApi final ListWebACLsResult executeListWebACLs(ListWebACLsRequest listWebACLsRequest) { ExecutionContext executionContext = createExecutionContext(listWebACLsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListWebACLsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listWebACLsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListWebACLs"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListWebACLsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                            * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                            *

                                                                                            * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                            *
                                                                                            *

                                                                                            * Returns an array of XssMatchSet objects. *

                                                                                            * * @param listXssMatchSetsRequest * A request to list the XssMatchSet objects created by the current AWS account. * @return Result of the ListXssMatchSets operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.ListXssMatchSets * @see AWS * API Documentation */ @Override public ListXssMatchSetsResult listXssMatchSets(ListXssMatchSetsRequest request) { request = beforeClientExecution(request); return executeListXssMatchSets(request); } @SdkInternalApi final ListXssMatchSetsResult executeListXssMatchSets(ListXssMatchSetsRequest listXssMatchSetsRequest) { ExecutionContext executionContext = createExecutionContext(listXssMatchSetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListXssMatchSetsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listXssMatchSetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListXssMatchSets"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListXssMatchSetsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                            * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                            *

                                                                                            * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                            *
                                                                                            *

                                                                                            * Associates a LoggingConfiguration with a specified web ACL. *

                                                                                            *

                                                                                            * You can access information about all traffic that AWS WAF inspects using the following steps: *

                                                                                            *
                                                                                              *
                                                                                            1. *

                                                                                              * Create an Amazon Kinesis Data Firehose. *

                                                                                              *

                                                                                              * Create the data firehose with a PUT source and in the region that you are operating. However, if you are * capturing logs for Amazon CloudFront, always create the firehose in US East (N. Virginia). *

                                                                                              * *

                                                                                              * Do not create the data firehose using a Kinesis stream as your source. *

                                                                                              *
                                                                                            2. *
                                                                                            3. *

                                                                                              * Associate that firehose to your web ACL using a PutLoggingConfiguration request. *

                                                                                              *
                                                                                            4. *
                                                                                            *

                                                                                            * When you successfully enable logging using a PutLoggingConfiguration request, AWS WAF will create a * service linked role with the necessary permissions to write logs to the Amazon Kinesis Data Firehose. For more * information, see Logging Web ACL * Traffic Information in the AWS WAF Developer Guide. *

                                                                                            * * @param putLoggingConfigurationRequest * @return Result of the PutLoggingConfiguration operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFServiceLinkedRoleErrorException * AWS WAF is not able to access the service linked role. This can be caused by a previous * PutLoggingConfiguration request, which can lock the service linked role for about 20 * seconds. Please try your request again. The service linked role can also be locked by a previous * DeleteServiceLinkedRole request, which can lock the role for 15 minutes or more. If you * recently made a DeleteServiceLinkedRole, wait at least 15 minutes and try the request again. * If you receive this same exception again, you will have to wait additional time until the role is * unlocked. * @sample AWSWAFRegional.PutLoggingConfiguration * @see AWS API Documentation */ @Override public PutLoggingConfigurationResult putLoggingConfiguration(PutLoggingConfigurationRequest request) { request = beforeClientExecution(request); return executePutLoggingConfiguration(request); } @SdkInternalApi final PutLoggingConfigurationResult executePutLoggingConfiguration(PutLoggingConfigurationRequest putLoggingConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(putLoggingConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutLoggingConfigurationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(putLoggingConfigurationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutLoggingConfiguration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutLoggingConfigurationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                            * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                            *

                                                                                            * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                            *
                                                                                            *

                                                                                            * Attaches an IAM policy to the specified resource. The only supported use for this action is to share a RuleGroup * across accounts. *

                                                                                            *

                                                                                            * The PutPermissionPolicy is subject to the following restrictions: *

                                                                                            *
                                                                                              *
                                                                                            • *

                                                                                              * You can attach only one policy with each PutPermissionPolicy request. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * The policy must include an Effect, Action and Principal. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * Effect must specify Allow. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * The Action in the policy must be waf:UpdateWebACL, * waf-regional:UpdateWebACL, waf:GetRuleGroup and waf-regional:GetRuleGroup * . Any extra or wildcard actions in the policy will be rejected. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * The policy cannot include a Resource parameter. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup must exist in the same region. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * The user making the request must be the owner of the RuleGroup. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * Your policy must be composed using IAM Policy version 2012-10-17. *

                                                                                              *
                                                                                            • *
                                                                                            *

                                                                                            * For more information, see IAM * Policies. *

                                                                                            *

                                                                                            * An example of a valid policy parameter is shown in the Examples section below. *

                                                                                            * * @param putPermissionPolicyRequest * @return Result of the PutPermissionPolicy operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFInvalidPermissionPolicyException * The operation failed because the specified policy is not in the proper format.

                                                                                            *

                                                                                            * The policy is subject to the following restrictions: *

                                                                                            *
                                                                                              *
                                                                                            • *

                                                                                              * You can attach only one policy with each PutPermissionPolicy request. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * The policy must include an Effect, Action and Principal. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * Effect must specify Allow. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * The Action in the policy must be waf:UpdateWebACL, * waf-regional:UpdateWebACL, waf:GetRuleGroup and * waf-regional:GetRuleGroup . Any extra or wildcard actions in the policy will be rejected. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * The policy cannot include a Resource parameter. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup must exist in the same region. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * The user making the request must be the owner of the RuleGroup. *

                                                                                              *
                                                                                            • *
                                                                                            • *

                                                                                              * Your policy must be composed using IAM Policy version 2012-10-17. *

                                                                                              *
                                                                                            • * @sample AWSWAFRegional.PutPermissionPolicy * @see AWS API Documentation */ @Override public PutPermissionPolicyResult putPermissionPolicy(PutPermissionPolicyRequest request) { request = beforeClientExecution(request); return executePutPermissionPolicy(request); } @SdkInternalApi final PutPermissionPolicyResult executePutPermissionPolicy(PutPermissionPolicyRequest putPermissionPolicyRequest) { ExecutionContext executionContext = createExecutionContext(putPermissionPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutPermissionPolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putPermissionPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutPermissionPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutPermissionPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                              * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                              *

                                                                                              * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                              *
                                                                                              *

                                                                                              * Associates tags with the specified AWS resource. Tags are key:value pairs that you can use to categorize and * manage your resources, for purposes like billing. For example, you might set the tag key to "customer" and the * value to the customer name or ID. You can specify one or more tags to add to each AWS resource, up to 50 tags for * a resource. *

                                                                                              *

                                                                                              * Tagging is only available through the API, SDKs, and CLI. You can't manage or view tags through the AWS WAF * Classic console. You can use this action to tag the AWS resources that you manage through AWS WAF Classic: web * ACLs, rule groups, and rules. *

                                                                                              * * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                              *
                                                                                                *
                                                                                              • *

                                                                                                * You specified an invalid parameter name. *

                                                                                                *
                                                                                              • *
                                                                                              • *

                                                                                                * You specified an invalid value. *

                                                                                                *
                                                                                              • *
                                                                                              • *

                                                                                                * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                *
                                                                                              • *
                                                                                              • *

                                                                                                * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                *
                                                                                              • *
                                                                                              • *

                                                                                                * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                *
                                                                                              • *
                                                                                              • *

                                                                                                * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                *
                                                                                              • *
                                                                                              • *

                                                                                                * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                *
                                                                                              • *
                                                                                              • *

                                                                                                * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                *
                                                                                              • *
                                                                                              • *

                                                                                                * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                *
                                                                                              • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFBadRequestException * @throws WAFTagOperationException * @throws WAFTagOperationInternalErrorException * @sample AWSWAFRegional.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 request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(tagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                *

                                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                *
                                                                                                *

                                                                                                * * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example: *

                                                                                                *
                                                                                                  *
                                                                                                • *

                                                                                                  * You specified an invalid parameter name. *

                                                                                                  *
                                                                                                • *
                                                                                                • *

                                                                                                  * You specified an invalid value. *

                                                                                                  *
                                                                                                • *
                                                                                                • *

                                                                                                  * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                  *
                                                                                                • *
                                                                                                • *

                                                                                                  * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                  *
                                                                                                • *
                                                                                                • *

                                                                                                  * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                  *
                                                                                                • *
                                                                                                • *

                                                                                                  * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                  *
                                                                                                • *
                                                                                                • *

                                                                                                  * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                  *
                                                                                                • *
                                                                                                • *

                                                                                                  * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                  *
                                                                                                • *
                                                                                                • *

                                                                                                  * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                  *
                                                                                                • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFBadRequestException * @throws WAFTagOperationException * @throws WAFTagOperationInternalErrorException * @sample AWSWAFRegional.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 request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UntagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(untagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UntagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UntagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                  * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                  *

                                                                                                  * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                  *
                                                                                                  *

                                                                                                  * Inserts or deletes ByteMatchTuple objects (filters) in a ByteMatchSet. For each * ByteMatchTuple object, you specify the following values: *

                                                                                                  *
                                                                                                    *
                                                                                                  • *

                                                                                                    * Whether to insert or delete the object from the array. If you want to change a ByteMatchSetUpdate * object, you delete the existing object and add a new one. *

                                                                                                    *
                                                                                                  • *
                                                                                                  • *

                                                                                                    * The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the * User-Agent header. *

                                                                                                    *
                                                                                                  • *
                                                                                                  • *

                                                                                                    * The bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to look for. For more * information, including how you specify the values for the AWS WAF API and the AWS CLI or SDKs, see * TargetString in the ByteMatchTuple data type. *

                                                                                                    *
                                                                                                  • *
                                                                                                  • *

                                                                                                    * Where to look, such as at the beginning or the end of a query string. *

                                                                                                    *
                                                                                                  • *
                                                                                                  • *

                                                                                                    * Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for * the specified string. *

                                                                                                    *
                                                                                                  • *
                                                                                                  *

                                                                                                  * For example, you can add a ByteMatchSetUpdate object that matches web requests in which * User-Agent headers contain the string BadBot. You can then configure AWS WAF to block * those requests. *

                                                                                                  *

                                                                                                  * To create and configure a ByteMatchSet, perform the following steps: *

                                                                                                  *
                                                                                                    *
                                                                                                  1. *

                                                                                                    * Create a ByteMatchSet. For more information, see CreateByteMatchSet. *

                                                                                                    *
                                                                                                  2. *
                                                                                                  3. *

                                                                                                    * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of * an UpdateByteMatchSet request. *

                                                                                                    *
                                                                                                  4. *
                                                                                                  5. *

                                                                                                    * Submit an UpdateByteMatchSet request to specify the part of the request that you want AWS WAF to * inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. *

                                                                                                    *
                                                                                                  6. *
                                                                                                  *

                                                                                                  * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                                                                                                  * * @param updateByteMatchSetRequest * @return Result of the UpdateByteMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                  *
                                                                                                    *
                                                                                                  • *

                                                                                                    * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                    *
                                                                                                  • *
                                                                                                  • *

                                                                                                    * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                    *
                                                                                                  • *
                                                                                                  • *

                                                                                                    * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                    *
                                                                                                  • *
                                                                                                  • *

                                                                                                    * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                    *
                                                                                                  • *
                                                                                                  • *

                                                                                                    * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                    *
                                                                                                  • * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                                    *
                                                                                                      *
                                                                                                    • *

                                                                                                      * You specified an invalid parameter name. *

                                                                                                      *
                                                                                                    • *
                                                                                                    • *

                                                                                                      * You specified an invalid value. *

                                                                                                      *
                                                                                                    • *
                                                                                                    • *

                                                                                                      * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                      *
                                                                                                    • *
                                                                                                    • *

                                                                                                      * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                      *
                                                                                                    • *
                                                                                                    • *

                                                                                                      * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                      *
                                                                                                    • *
                                                                                                    • *

                                                                                                      * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                      *
                                                                                                    • *
                                                                                                    • *

                                                                                                      * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                      *
                                                                                                    • *
                                                                                                    • *

                                                                                                      * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                      *
                                                                                                    • *
                                                                                                    • *

                                                                                                      * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                      *
                                                                                                    • * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                      *
                                                                                                        *
                                                                                                      • *

                                                                                                        * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                        *
                                                                                                      • *
                                                                                                      • *

                                                                                                        * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                        *
                                                                                                      • *
                                                                                                      • *

                                                                                                        * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                        *
                                                                                                      • *
                                                                                                      • *

                                                                                                        * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                        *
                                                                                                      • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.UpdateByteMatchSet * @see AWS API Documentation */ @Override public UpdateByteMatchSetResult updateByteMatchSet(UpdateByteMatchSetRequest request) { request = beforeClientExecution(request); return executeUpdateByteMatchSet(request); } @SdkInternalApi final UpdateByteMatchSetResult executeUpdateByteMatchSet(UpdateByteMatchSetRequest updateByteMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(updateByteMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateByteMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateByteMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateByteMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateByteMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                        * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                        *

                                                                                                        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                        *
                                                                                                        *

                                                                                                        * Inserts or deletes GeoMatchConstraint objects in an GeoMatchSet. For each * GeoMatchConstraint object, you specify the following values: *

                                                                                                        *
                                                                                                          *
                                                                                                        • *

                                                                                                          * Whether to insert or delete the object from the array. If you want to change an GeoMatchConstraint * object, you delete the existing object and add a new one. *

                                                                                                          *
                                                                                                        • *
                                                                                                        • *

                                                                                                          * The Type. The only valid value for Type is Country. *

                                                                                                          *
                                                                                                        • *
                                                                                                        • *

                                                                                                          * The Value, which is a two character code for the country to add to the * GeoMatchConstraint object. Valid codes are listed in GeoMatchConstraint$Value. *

                                                                                                          *
                                                                                                        • *
                                                                                                        *

                                                                                                        * To create and configure an GeoMatchSet, perform the following steps: *

                                                                                                        *
                                                                                                          *
                                                                                                        1. *

                                                                                                          * Submit a CreateGeoMatchSet request. *

                                                                                                          *
                                                                                                        2. *
                                                                                                        3. *

                                                                                                          * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of * an UpdateGeoMatchSet request. *

                                                                                                          *
                                                                                                        4. *
                                                                                                        5. *

                                                                                                          * Submit an UpdateGeoMatchSet request to specify the country that you want AWS WAF to watch for. *

                                                                                                          *
                                                                                                        6. *
                                                                                                        *

                                                                                                        * When you update an GeoMatchSet, you specify the country that you want to add and/or the country that * you want to delete. If you want to change a country, you delete the existing country and add the new one. *

                                                                                                        *

                                                                                                        * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                                                                                                        * * @param updateGeoMatchSetRequest * @return Result of the UpdateGeoMatchSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                        *
                                                                                                          *
                                                                                                        • *

                                                                                                          * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                          *
                                                                                                        • *
                                                                                                        • *

                                                                                                          * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                          *
                                                                                                        • *
                                                                                                        • *

                                                                                                          * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                          *
                                                                                                        • *
                                                                                                        • *

                                                                                                          * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                          *
                                                                                                        • *
                                                                                                        • *

                                                                                                          * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                          *
                                                                                                        • * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                                          *
                                                                                                            *
                                                                                                          • *

                                                                                                            * You specified an invalid parameter name. *

                                                                                                            *
                                                                                                          • *
                                                                                                          • *

                                                                                                            * You specified an invalid value. *

                                                                                                            *
                                                                                                          • *
                                                                                                          • *

                                                                                                            * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                            *
                                                                                                          • *
                                                                                                          • *

                                                                                                            * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                            *
                                                                                                          • *
                                                                                                          • *

                                                                                                            * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                            *
                                                                                                          • *
                                                                                                          • *

                                                                                                            * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                            *
                                                                                                          • *
                                                                                                          • *

                                                                                                            * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                            *
                                                                                                          • *
                                                                                                          • *

                                                                                                            * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                            *
                                                                                                          • *
                                                                                                          • *

                                                                                                            * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                            *
                                                                                                          • * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                            *
                                                                                                              *
                                                                                                            • *

                                                                                                              * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                              *
                                                                                                            • *
                                                                                                            • *

                                                                                                              * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                              *
                                                                                                            • *
                                                                                                            • *

                                                                                                              * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                              *
                                                                                                            • *
                                                                                                            • *

                                                                                                              * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                              *
                                                                                                            • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                                                                              *
                                                                                                                *
                                                                                                              • *

                                                                                                                * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                                                                                *
                                                                                                              • *
                                                                                                              • *

                                                                                                                * You tried to delete a Rule that is still referenced by a WebACL. *

                                                                                                                *
                                                                                                              • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.UpdateGeoMatchSet * @see AWS * API Documentation */ @Override public UpdateGeoMatchSetResult updateGeoMatchSet(UpdateGeoMatchSetRequest request) { request = beforeClientExecution(request); return executeUpdateGeoMatchSet(request); } @SdkInternalApi final UpdateGeoMatchSetResult executeUpdateGeoMatchSet(UpdateGeoMatchSetRequest updateGeoMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(updateGeoMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateGeoMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateGeoMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateGeoMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateGeoMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                                *

                                                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                                *
                                                                                                                *

                                                                                                                * Inserts or deletes IPSetDescriptor objects in an IPSet. For each IPSetDescriptor * object, you specify the following values: *

                                                                                                                *
                                                                                                                  *
                                                                                                                • *

                                                                                                                  * Whether to insert or delete the object from the array. If you want to change an IPSetDescriptor * object, you delete the existing object and add a new one. *

                                                                                                                  *
                                                                                                                • *
                                                                                                                • *

                                                                                                                  * The IP address version, IPv4 or IPv6. *

                                                                                                                  *
                                                                                                                • *
                                                                                                                • *

                                                                                                                  * The IP address in CIDR notation, for example, 192.0.2.0/24 (for the range of IP addresses from * 192.0.2.0 to 192.0.2.255) or 192.0.2.44/32 (for the individual IP address * 192.0.2.44). *

                                                                                                                  *
                                                                                                                • *
                                                                                                                *

                                                                                                                * AWS WAF supports IPv4 address ranges: /8 and any range between /16 through /32. AWS WAF supports IPv6 address * ranges: /24, /32, /48, /56, /64, and /128. For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing. *

                                                                                                                *

                                                                                                                * IPv6 addresses can be represented using any of the following formats: *

                                                                                                                *
                                                                                                                  *
                                                                                                                • *

                                                                                                                  * 1111:0000:0000:0000:0000:0000:0000:0111/128 *

                                                                                                                  *
                                                                                                                • *
                                                                                                                • *

                                                                                                                  * 1111:0:0:0:0:0:0:0111/128 *

                                                                                                                  *
                                                                                                                • *
                                                                                                                • *

                                                                                                                  * 1111::0111/128 *

                                                                                                                  *
                                                                                                                • *
                                                                                                                • *

                                                                                                                  * 1111::111/128 *

                                                                                                                  *
                                                                                                                • *
                                                                                                                *

                                                                                                                * You use an IPSet to specify which web requests you want to allow or block based on the IP addresses * that the requests originated from. For example, if you're receiving a lot of requests from one or a small number * of IP addresses and you want to block the requests, you can create an IPSet that specifies those IP * addresses, and then configure AWS WAF to block the requests. *

                                                                                                                *

                                                                                                                * To create and configure an IPSet, perform the following steps: *

                                                                                                                *
                                                                                                                  *
                                                                                                                1. *

                                                                                                                  * Submit a CreateIPSet request. *

                                                                                                                  *
                                                                                                                2. *
                                                                                                                3. *

                                                                                                                  * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of * an UpdateIPSet request. *

                                                                                                                  *
                                                                                                                4. *
                                                                                                                5. *

                                                                                                                  * Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for. *

                                                                                                                  *
                                                                                                                6. *
                                                                                                                *

                                                                                                                * When you update an IPSet, you specify the IP addresses that you want to add and/or the IP addresses * that you want to delete. If you want to change an IP address, you delete the existing IP address and add the new * one. *

                                                                                                                *

                                                                                                                * You can insert a maximum of 1000 addresses in a single request. *

                                                                                                                *

                                                                                                                * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                                                                                                                * * @param updateIPSetRequest * @return Result of the UpdateIPSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                                *
                                                                                                                  *
                                                                                                                • *

                                                                                                                  * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                                  *
                                                                                                                • *
                                                                                                                • *

                                                                                                                  * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                                  *
                                                                                                                • *
                                                                                                                • *

                                                                                                                  * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                                  *
                                                                                                                • *
                                                                                                                • *

                                                                                                                  * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                                  *
                                                                                                                • *
                                                                                                                • *

                                                                                                                  * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                                  *
                                                                                                                • * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                                                  *
                                                                                                                    *
                                                                                                                  • *

                                                                                                                    * You specified an invalid parameter name. *

                                                                                                                    *
                                                                                                                  • *
                                                                                                                  • *

                                                                                                                    * You specified an invalid value. *

                                                                                                                    *
                                                                                                                  • *
                                                                                                                  • *

                                                                                                                    * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                                    *
                                                                                                                  • *
                                                                                                                  • *

                                                                                                                    * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                    *
                                                                                                                  • *
                                                                                                                  • *

                                                                                                                    * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                                    *
                                                                                                                  • *
                                                                                                                  • *

                                                                                                                    * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                    *
                                                                                                                  • *
                                                                                                                  • *

                                                                                                                    * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                                    *
                                                                                                                  • *
                                                                                                                  • *

                                                                                                                    * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                                    *
                                                                                                                  • *
                                                                                                                  • *

                                                                                                                    * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                                    *
                                                                                                                  • * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                                    *
                                                                                                                      *
                                                                                                                    • *

                                                                                                                      * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                                      *
                                                                                                                    • *
                                                                                                                    • *

                                                                                                                      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                                      *
                                                                                                                    • *
                                                                                                                    • *

                                                                                                                      * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                                      *
                                                                                                                    • *
                                                                                                                    • *

                                                                                                                      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                                      *
                                                                                                                    • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                                                                                      *
                                                                                                                        *
                                                                                                                      • *

                                                                                                                        * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                                                                                        *
                                                                                                                      • *
                                                                                                                      • *

                                                                                                                        * You tried to delete a Rule that is still referenced by a WebACL. *

                                                                                                                        *
                                                                                                                      • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.UpdateIPSet * @see AWS API * Documentation */ @Override public UpdateIPSetResult updateIPSet(UpdateIPSetRequest request) { request = beforeClientExecution(request); return executeUpdateIPSet(request); } @SdkInternalApi final UpdateIPSetResult executeUpdateIPSet(UpdateIPSetRequest updateIPSetRequest) { ExecutionContext executionContext = createExecutionContext(updateIPSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateIPSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateIPSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateIPSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateIPSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                                        * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                                        *

                                                                                                                        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                                        *
                                                                                                                        *

                                                                                                                        * Inserts or deletes Predicate objects in a rule and updates the RateLimit in the rule. *

                                                                                                                        *

                                                                                                                        * Each Predicate object identifies a predicate, such as a ByteMatchSet or an IPSet, that * specifies the web requests that you want to block or count. The RateLimit specifies the number of * requests every five minutes that triggers the rule. *

                                                                                                                        *

                                                                                                                        * If you add more than one predicate to a RateBasedRule, a request must match all the predicates and * exceed the RateLimit to be counted or blocked. For example, suppose you add the following to a * RateBasedRule: *

                                                                                                                        *
                                                                                                                          *
                                                                                                                        • *

                                                                                                                          * An IPSet that matches the IP address 192.0.2.44/32 *

                                                                                                                          *
                                                                                                                        • *
                                                                                                                        • *

                                                                                                                          * A ByteMatchSet that matches BadBot in the User-Agent header *

                                                                                                                          *
                                                                                                                        • *
                                                                                                                        *

                                                                                                                        * Further, you specify a RateLimit of 1,000. *

                                                                                                                        *

                                                                                                                        * You then add the RateBasedRule to a WebACL and specify that you want to block requests * that satisfy the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the * User-Agent header in the request must contain the value BadBot. Further, requests that * match these two conditions much be received at a rate of more than 1,000 every five minutes. If the rate drops * below this limit, AWS WAF no longer blocks the requests. *

                                                                                                                        *

                                                                                                                        * As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could * add the following to a RateBasedRule: *

                                                                                                                        *
                                                                                                                          *
                                                                                                                        • *

                                                                                                                          * A ByteMatchSet with FieldToMatch of URI *

                                                                                                                          *
                                                                                                                        • *
                                                                                                                        • *

                                                                                                                          * A PositionalConstraint of STARTS_WITH *

                                                                                                                          *
                                                                                                                        • *
                                                                                                                        • *

                                                                                                                          * A TargetString of login *

                                                                                                                          *
                                                                                                                        • *
                                                                                                                        *

                                                                                                                        * Further, you specify a RateLimit of 1,000. *

                                                                                                                        *

                                                                                                                        * By adding this RateBasedRule to a WebACL, you could limit requests to your login page * without affecting the rest of your site. *

                                                                                                                        * * @param updateRateBasedRuleRequest * @return Result of the UpdateRateBasedRule operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                                        *
                                                                                                                          *
                                                                                                                        • *

                                                                                                                          * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                                          *
                                                                                                                        • *
                                                                                                                        • *

                                                                                                                          * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                                          *
                                                                                                                        • *
                                                                                                                        • *

                                                                                                                          * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                                          *
                                                                                                                        • *
                                                                                                                        • *

                                                                                                                          * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                                          *
                                                                                                                        • *
                                                                                                                        • *

                                                                                                                          * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                                          *
                                                                                                                        • * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                                                          *
                                                                                                                            *
                                                                                                                          • *

                                                                                                                            * You specified an invalid parameter name. *

                                                                                                                            *
                                                                                                                          • *
                                                                                                                          • *

                                                                                                                            * You specified an invalid value. *

                                                                                                                            *
                                                                                                                          • *
                                                                                                                          • *

                                                                                                                            * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                                            *
                                                                                                                          • *
                                                                                                                          • *

                                                                                                                            * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                            *
                                                                                                                          • *
                                                                                                                          • *

                                                                                                                            * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                                            *
                                                                                                                          • *
                                                                                                                          • *

                                                                                                                            * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                            *
                                                                                                                          • *
                                                                                                                          • *

                                                                                                                            * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                                            *
                                                                                                                          • *
                                                                                                                          • *

                                                                                                                            * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                                            *
                                                                                                                          • *
                                                                                                                          • *

                                                                                                                            * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                                            *
                                                                                                                          • * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                                            *
                                                                                                                              *
                                                                                                                            • *

                                                                                                                              * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                                              *
                                                                                                                            • *
                                                                                                                            • *

                                                                                                                              * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                                              *
                                                                                                                            • *
                                                                                                                            • *

                                                                                                                              * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                                              *
                                                                                                                            • *
                                                                                                                            • *

                                                                                                                              * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                                              *
                                                                                                                            • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                                                                                              *
                                                                                                                                *
                                                                                                                              • *

                                                                                                                                * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                                                                                                *
                                                                                                                              • *
                                                                                                                              • *

                                                                                                                                * You tried to delete a Rule that is still referenced by a WebACL. *

                                                                                                                                *
                                                                                                                              • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.UpdateRateBasedRule * @see AWS API Documentation */ @Override public UpdateRateBasedRuleResult updateRateBasedRule(UpdateRateBasedRuleRequest request) { request = beforeClientExecution(request); return executeUpdateRateBasedRule(request); } @SdkInternalApi final UpdateRateBasedRuleResult executeUpdateRateBasedRule(UpdateRateBasedRuleRequest updateRateBasedRuleRequest) { ExecutionContext executionContext = createExecutionContext(updateRateBasedRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateRateBasedRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateRateBasedRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateRateBasedRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateRateBasedRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                                                *

                                                                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                                                *
                                                                                                                                *

                                                                                                                                * Inserts or deletes RegexMatchTuple objects (filters) in a RegexMatchSet. For each * RegexMatchSetUpdate object, you specify the following values: *

                                                                                                                                *
                                                                                                                                  *
                                                                                                                                • *

                                                                                                                                  * Whether to insert or delete the object from the array. If you want to change a RegexMatchSetUpdate * object, you delete the existing object and add a new one. *

                                                                                                                                  *
                                                                                                                                • *
                                                                                                                                • *

                                                                                                                                  * The part of a web request that you want AWS WAF to inspectupdate, such as a query string or the value of the * User-Agent header. *

                                                                                                                                  *
                                                                                                                                • *
                                                                                                                                • *

                                                                                                                                  * The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see * RegexPatternSet. *

                                                                                                                                  *
                                                                                                                                • *
                                                                                                                                • *

                                                                                                                                  * Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for * the specified string. *

                                                                                                                                  *
                                                                                                                                • *
                                                                                                                                *

                                                                                                                                * For example, you can create a RegexPatternSet that matches any requests with User-Agent * headers that contain the string B[a@]dB[o0]t. You can then configure AWS WAF to reject those * requests. *

                                                                                                                                *

                                                                                                                                * To create and configure a RegexMatchSet, perform the following steps: *

                                                                                                                                *
                                                                                                                                  *
                                                                                                                                1. *

                                                                                                                                  * Create a RegexMatchSet. For more information, see CreateRegexMatchSet. *

                                                                                                                                  *
                                                                                                                                2. *
                                                                                                                                3. *

                                                                                                                                  * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of * an UpdateRegexMatchSet request. *

                                                                                                                                  *
                                                                                                                                4. *
                                                                                                                                5. *

                                                                                                                                  * Submit an UpdateRegexMatchSet request to specify the part of the request that you want AWS WAF to * inspect (for example, the header or the URI) and the identifier of the RegexPatternSet that contain * the regular expression patters you want AWS WAF to watch for. *

                                                                                                                                  *
                                                                                                                                6. *
                                                                                                                                *

                                                                                                                                * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                                                                                                                                * * @param updateRegexMatchSetRequest * @return Result of the UpdateRegexMatchSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFDisallowedNameException * The name specified is invalid. * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                                                *
                                                                                                                                  *
                                                                                                                                • *

                                                                                                                                  * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                                                  *
                                                                                                                                • *
                                                                                                                                • *

                                                                                                                                  * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                                                  *
                                                                                                                                • *
                                                                                                                                • *

                                                                                                                                  * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                                                  *
                                                                                                                                • *
                                                                                                                                • *

                                                                                                                                  * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                                                  *
                                                                                                                                • * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                                                  *
                                                                                                                                    *
                                                                                                                                  • *

                                                                                                                                    * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                                                    *
                                                                                                                                  • *
                                                                                                                                  • *

                                                                                                                                    * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                                                    *
                                                                                                                                  • *
                                                                                                                                  • *

                                                                                                                                    * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                                                    *
                                                                                                                                  • *
                                                                                                                                  • *

                                                                                                                                    * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                                                    *
                                                                                                                                  • *
                                                                                                                                  • *

                                                                                                                                    * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                                                    *
                                                                                                                                  • * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @sample AWSWAFRegional.UpdateRegexMatchSet * @see AWS API Documentation */ @Override public UpdateRegexMatchSetResult updateRegexMatchSet(UpdateRegexMatchSetRequest request) { request = beforeClientExecution(request); return executeUpdateRegexMatchSet(request); } @SdkInternalApi final UpdateRegexMatchSetResult executeUpdateRegexMatchSet(UpdateRegexMatchSetRequest updateRegexMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(updateRegexMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateRegexMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateRegexMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateRegexMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateRegexMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                                                    * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                                                    *

                                                                                                                                    * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                                                    *
                                                                                                                                    *

                                                                                                                                    * Inserts or deletes RegexPatternString objects in a RegexPatternSet. For each * RegexPatternString object, you specify the following values: *

                                                                                                                                    *
                                                                                                                                      *
                                                                                                                                    • *

                                                                                                                                      * Whether to insert or delete the RegexPatternString. *

                                                                                                                                      *
                                                                                                                                    • *
                                                                                                                                    • *

                                                                                                                                      * The regular expression pattern that you want to insert or delete. For more information, see * RegexPatternSet. *

                                                                                                                                      *
                                                                                                                                    • *
                                                                                                                                    *

                                                                                                                                    * For example, you can create a RegexPatternString such as B[a@]dB[o0]t. AWS WAF will * match this RegexPatternString to: *

                                                                                                                                    *
                                                                                                                                      *
                                                                                                                                    • *

                                                                                                                                      * BadBot *

                                                                                                                                      *
                                                                                                                                    • *
                                                                                                                                    • *

                                                                                                                                      * BadB0t *

                                                                                                                                      *
                                                                                                                                    • *
                                                                                                                                    • *

                                                                                                                                      * B@dBot *

                                                                                                                                      *
                                                                                                                                    • *
                                                                                                                                    • *

                                                                                                                                      * B@dB0t *

                                                                                                                                      *
                                                                                                                                    • *
                                                                                                                                    *

                                                                                                                                    * To create and configure a RegexPatternSet, perform the following steps: *

                                                                                                                                    *
                                                                                                                                      *
                                                                                                                                    1. *

                                                                                                                                      * Create a RegexPatternSet. For more information, see CreateRegexPatternSet. *

                                                                                                                                      *
                                                                                                                                    2. *
                                                                                                                                    3. *

                                                                                                                                      * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of * an UpdateRegexPatternSet request. *

                                                                                                                                      *
                                                                                                                                    4. *
                                                                                                                                    5. *

                                                                                                                                      * Submit an UpdateRegexPatternSet request to specify the regular expression pattern that you want AWS * WAF to watch for. *

                                                                                                                                      *
                                                                                                                                    6. *
                                                                                                                                    *

                                                                                                                                    * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                                                                                                                                    * * @param updateRegexPatternSetRequest * @return Result of the UpdateRegexPatternSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                                                    *
                                                                                                                                      *
                                                                                                                                    • *

                                                                                                                                      * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                                                      *
                                                                                                                                    • *
                                                                                                                                    • *

                                                                                                                                      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                                                      *
                                                                                                                                    • *
                                                                                                                                    • *

                                                                                                                                      * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                                                      *
                                                                                                                                    • *
                                                                                                                                    • *

                                                                                                                                      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                                                      *
                                                                                                                                    • * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                                                      *
                                                                                                                                        *
                                                                                                                                      • *

                                                                                                                                        * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                                                        *
                                                                                                                                      • *
                                                                                                                                      • *

                                                                                                                                        * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                                                        *
                                                                                                                                      • *
                                                                                                                                      • *

                                                                                                                                        * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                                                        *
                                                                                                                                      • *
                                                                                                                                      • *

                                                                                                                                        * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                                                        *
                                                                                                                                      • *
                                                                                                                                      • *

                                                                                                                                        * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                                                        *
                                                                                                                                      • * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidRegexPatternException * The regular expression (regex) you specified in RegexPatternString is invalid. * @sample AWSWAFRegional.UpdateRegexPatternSet * @see AWS API Documentation */ @Override public UpdateRegexPatternSetResult updateRegexPatternSet(UpdateRegexPatternSetRequest request) { request = beforeClientExecution(request); return executeUpdateRegexPatternSet(request); } @SdkInternalApi final UpdateRegexPatternSetResult executeUpdateRegexPatternSet(UpdateRegexPatternSetRequest updateRegexPatternSetRequest) { ExecutionContext executionContext = createExecutionContext(updateRegexPatternSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateRegexPatternSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateRegexPatternSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateRegexPatternSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateRegexPatternSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                                                        * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                                                        *

                                                                                                                                        * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                                                        *
                                                                                                                                        *

                                                                                                                                        * Inserts or deletes Predicate objects in a Rule. Each Predicate object identifies * a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests that you want to * allow, block, or count. If you add more than one predicate to a Rule, a request must match all of * the specifications to be allowed, blocked, or counted. For example, suppose that you add the following to a * Rule: *

                                                                                                                                        *
                                                                                                                                          *
                                                                                                                                        • *

                                                                                                                                          * A ByteMatchSet that matches the value BadBot in the User-Agent header *

                                                                                                                                          *
                                                                                                                                        • *
                                                                                                                                        • *

                                                                                                                                          * An IPSet that matches the IP address 192.0.2.44 *

                                                                                                                                          *
                                                                                                                                        • *
                                                                                                                                        *

                                                                                                                                        * You then add the Rule to a WebACL and specify that you want to block requests that * satisfy the Rule. For a request to be blocked, the User-Agent header in the request * must contain the value BadBot and the request must originate from the IP address 192.0.2.44. *

                                                                                                                                        *

                                                                                                                                        * To create and configure a Rule, perform the following steps: *

                                                                                                                                        *
                                                                                                                                          *
                                                                                                                                        1. *

                                                                                                                                          * Create and update the predicates that you want to include in the Rule. *

                                                                                                                                          *
                                                                                                                                        2. *
                                                                                                                                        3. *

                                                                                                                                          * Create the Rule. See CreateRule. *

                                                                                                                                          *
                                                                                                                                        4. *
                                                                                                                                        5. *

                                                                                                                                          * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateRule request. *

                                                                                                                                          *
                                                                                                                                        6. *
                                                                                                                                        7. *

                                                                                                                                          * Submit an UpdateRule request to add predicates to the Rule. *

                                                                                                                                          *
                                                                                                                                        8. *
                                                                                                                                        9. *

                                                                                                                                          * Create and update a WebACL that contains the Rule. See CreateWebACL. *

                                                                                                                                          *
                                                                                                                                        10. *
                                                                                                                                        *

                                                                                                                                        * If you want to replace one ByteMatchSet or IPSet with another, you delete the existing * one and add the new one. *

                                                                                                                                        *

                                                                                                                                        * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                                                                                                                                        * * @param updateRuleRequest * @return Result of the UpdateRule operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                                                        *
                                                                                                                                          *
                                                                                                                                        • *

                                                                                                                                          * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                                                          *
                                                                                                                                        • *
                                                                                                                                        • *

                                                                                                                                          * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                                                          *
                                                                                                                                        • *
                                                                                                                                        • *

                                                                                                                                          * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                                                          *
                                                                                                                                        • *
                                                                                                                                        • *

                                                                                                                                          * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                                                          *
                                                                                                                                        • *
                                                                                                                                        • *

                                                                                                                                          * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                                                          *
                                                                                                                                        • * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                                                                          *
                                                                                                                                            *
                                                                                                                                          • *

                                                                                                                                            * You specified an invalid parameter name. *

                                                                                                                                            *
                                                                                                                                          • *
                                                                                                                                          • *

                                                                                                                                            * You specified an invalid value. *

                                                                                                                                            *
                                                                                                                                          • *
                                                                                                                                          • *

                                                                                                                                            * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                                                            *
                                                                                                                                          • *
                                                                                                                                          • *

                                                                                                                                            * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                            *
                                                                                                                                          • *
                                                                                                                                          • *

                                                                                                                                            * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                                                            *
                                                                                                                                          • *
                                                                                                                                          • *

                                                                                                                                            * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                            *
                                                                                                                                          • *
                                                                                                                                          • *

                                                                                                                                            * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                                                            *
                                                                                                                                          • *
                                                                                                                                          • *

                                                                                                                                            * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                                                            *
                                                                                                                                          • *
                                                                                                                                          • *

                                                                                                                                            * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                                                            *
                                                                                                                                          • * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                                                            *
                                                                                                                                              *
                                                                                                                                            • *

                                                                                                                                              * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                                                              *
                                                                                                                                            • *
                                                                                                                                            • *

                                                                                                                                              * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                                                              *
                                                                                                                                            • *
                                                                                                                                            • *

                                                                                                                                              * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                                                              *
                                                                                                                                            • *
                                                                                                                                            • *

                                                                                                                                              * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                                                              *
                                                                                                                                            • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                                                                                                              *
                                                                                                                                                *
                                                                                                                                              • *

                                                                                                                                                * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                                                                                                                *
                                                                                                                                              • *
                                                                                                                                              • *

                                                                                                                                                * You tried to delete a Rule that is still referenced by a WebACL. *

                                                                                                                                                *
                                                                                                                                              • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.UpdateRule * @see AWS API * Documentation */ @Override public UpdateRuleResult updateRule(UpdateRuleRequest request) { request = beforeClientExecution(request); return executeUpdateRule(request); } @SdkInternalApi final UpdateRuleResult executeUpdateRule(UpdateRuleRequest updateRuleRequest) { ExecutionContext executionContext = createExecutionContext(updateRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                                                                * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                                                                *

                                                                                                                                                * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                                                                *
                                                                                                                                                *

                                                                                                                                                * Inserts or deletes ActivatedRule objects in a RuleGroup. *

                                                                                                                                                *

                                                                                                                                                * You can only insert REGULAR rules into a rule group. *

                                                                                                                                                *

                                                                                                                                                * You can have a maximum of ten rules per rule group. *

                                                                                                                                                *

                                                                                                                                                * To create and configure a RuleGroup, perform the following steps: *

                                                                                                                                                *
                                                                                                                                                  *
                                                                                                                                                1. *

                                                                                                                                                  * Create and update the Rules that you want to include in the RuleGroup. See * CreateRule. *

                                                                                                                                                  *
                                                                                                                                                2. *
                                                                                                                                                3. *

                                                                                                                                                  * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateRuleGroup request. *

                                                                                                                                                  *
                                                                                                                                                4. *
                                                                                                                                                5. *

                                                                                                                                                  * Submit an UpdateRuleGroup request to add Rules to the RuleGroup. *

                                                                                                                                                  *
                                                                                                                                                6. *
                                                                                                                                                7. *

                                                                                                                                                  * Create and update a WebACL that contains the RuleGroup. See CreateWebACL. *

                                                                                                                                                  *
                                                                                                                                                8. *
                                                                                                                                                *

                                                                                                                                                * If you want to replace one Rule with another, you delete the existing one and add the new one. *

                                                                                                                                                *

                                                                                                                                                * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                                                                                                                                                * * @param updateRuleGroupRequest * @return Result of the UpdateRuleGroup operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                                                                *
                                                                                                                                                  *
                                                                                                                                                • *

                                                                                                                                                  * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                                                                  *
                                                                                                                                                • *
                                                                                                                                                • *

                                                                                                                                                  * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                                                                  *
                                                                                                                                                • *
                                                                                                                                                • *

                                                                                                                                                  * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                                                                  *
                                                                                                                                                • *
                                                                                                                                                • *

                                                                                                                                                  * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                                                                  *
                                                                                                                                                • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                                                                  *
                                                                                                                                                    *
                                                                                                                                                  • *

                                                                                                                                                    * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                                                                    *
                                                                                                                                                  • *
                                                                                                                                                  • *

                                                                                                                                                    * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                                                                    *
                                                                                                                                                  • *
                                                                                                                                                  • *

                                                                                                                                                    * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                                                                    *
                                                                                                                                                  • *
                                                                                                                                                  • *

                                                                                                                                                    * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                                                                    *
                                                                                                                                                  • *
                                                                                                                                                  • *

                                                                                                                                                    * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                                                                    *
                                                                                                                                                  • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                                                                                    *
                                                                                                                                                      *
                                                                                                                                                    • *

                                                                                                                                                      * You specified an invalid parameter name. *

                                                                                                                                                      *
                                                                                                                                                    • *
                                                                                                                                                    • *

                                                                                                                                                      * You specified an invalid value. *

                                                                                                                                                      *
                                                                                                                                                    • *
                                                                                                                                                    • *

                                                                                                                                                      * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                                                                      *
                                                                                                                                                    • *
                                                                                                                                                    • *

                                                                                                                                                      * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                                      *
                                                                                                                                                    • *
                                                                                                                                                    • *

                                                                                                                                                      * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                                                                      *
                                                                                                                                                    • *
                                                                                                                                                    • *

                                                                                                                                                      * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                                      *
                                                                                                                                                    • *
                                                                                                                                                    • *

                                                                                                                                                      * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                                                                      *
                                                                                                                                                    • *
                                                                                                                                                    • *

                                                                                                                                                      * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                                                                      *
                                                                                                                                                    • *
                                                                                                                                                    • *

                                                                                                                                                      * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                                                                      *
                                                                                                                                                    • * @sample AWSWAFRegional.UpdateRuleGroup * @see AWS * API Documentation */ @Override public UpdateRuleGroupResult updateRuleGroup(UpdateRuleGroupRequest request) { request = beforeClientExecution(request); return executeUpdateRuleGroup(request); } @SdkInternalApi final UpdateRuleGroupResult executeUpdateRuleGroup(UpdateRuleGroupRequest updateRuleGroupRequest) { ExecutionContext executionContext = createExecutionContext(updateRuleGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateRuleGroupRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateRuleGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateRuleGroup"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateRuleGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                                                                      * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                                                                      *

                                                                                                                                                      * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                                                                      *
                                                                                                                                                      *

                                                                                                                                                      * Inserts or deletes SizeConstraint objects (filters) in a SizeConstraintSet. For each * SizeConstraint object, you specify the following values: *

                                                                                                                                                      *
                                                                                                                                                        *
                                                                                                                                                      • *

                                                                                                                                                        * Whether to insert or delete the object from the array. If you want to change a * SizeConstraintSetUpdate object, you delete the existing object and add a new one. *

                                                                                                                                                        *
                                                                                                                                                      • *
                                                                                                                                                      • *

                                                                                                                                                        * The part of a web request that you want AWS WAF to evaluate, such as the length of a query string or the length * of the User-Agent header. *

                                                                                                                                                        *
                                                                                                                                                      • *
                                                                                                                                                      • *

                                                                                                                                                        * Whether to perform any transformations on the request, such as converting it to lowercase, before checking its * length. Note that transformations of the request body are not supported because the AWS resource forwards only * the first 8192 bytes of your request to AWS WAF. *

                                                                                                                                                        *

                                                                                                                                                        * You can only specify a single type of TextTransformation. *

                                                                                                                                                        *
                                                                                                                                                      • *
                                                                                                                                                      • *

                                                                                                                                                        * A ComparisonOperator used for evaluating the selected part of the request against the specified * Size, such as equals, greater than, less than, and so on. *

                                                                                                                                                        *
                                                                                                                                                      • *
                                                                                                                                                      • *

                                                                                                                                                        * The length, in bytes, that you want AWS WAF to watch for in selected part of the request. The length is computed * after applying the transformation. *

                                                                                                                                                        *
                                                                                                                                                      • *
                                                                                                                                                      *

                                                                                                                                                      * For example, you can add a SizeConstraintSetUpdate object that matches web requests in which the * length of the User-Agent header is greater than 100 bytes. You can then configure AWS WAF to block * those requests. *

                                                                                                                                                      *

                                                                                                                                                      * To create and configure a SizeConstraintSet, perform the following steps: *

                                                                                                                                                      *
                                                                                                                                                        *
                                                                                                                                                      1. *

                                                                                                                                                        * Create a SizeConstraintSet. For more information, see CreateSizeConstraintSet. *

                                                                                                                                                        *
                                                                                                                                                      2. *
                                                                                                                                                      3. *

                                                                                                                                                        * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of * an UpdateSizeConstraintSet request. *

                                                                                                                                                        *
                                                                                                                                                      4. *
                                                                                                                                                      5. *

                                                                                                                                                        * Submit an UpdateSizeConstraintSet request to specify the part of the request that you want AWS WAF * to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. *

                                                                                                                                                        *
                                                                                                                                                      6. *
                                                                                                                                                      *

                                                                                                                                                      * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                                                                                                                                                      * * @param updateSizeConstraintSetRequest * @return Result of the UpdateSizeConstraintSet operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                                                                      *
                                                                                                                                                        *
                                                                                                                                                      • *

                                                                                                                                                        * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                                                                        *
                                                                                                                                                      • *
                                                                                                                                                      • *

                                                                                                                                                        * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                                                                        *
                                                                                                                                                      • *
                                                                                                                                                      • *

                                                                                                                                                        * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                                                                        *
                                                                                                                                                      • *
                                                                                                                                                      • *

                                                                                                                                                        * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                                                                        *
                                                                                                                                                      • *
                                                                                                                                                      • *

                                                                                                                                                        * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                                                                        *
                                                                                                                                                      • * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                                                                                        *
                                                                                                                                                          *
                                                                                                                                                        • *

                                                                                                                                                          * You specified an invalid parameter name. *

                                                                                                                                                          *
                                                                                                                                                        • *
                                                                                                                                                        • *

                                                                                                                                                          * You specified an invalid value. *

                                                                                                                                                          *
                                                                                                                                                        • *
                                                                                                                                                        • *

                                                                                                                                                          * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                                                                          *
                                                                                                                                                        • *
                                                                                                                                                        • *

                                                                                                                                                          * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                                          *
                                                                                                                                                        • *
                                                                                                                                                        • *

                                                                                                                                                          * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                                                                          *
                                                                                                                                                        • *
                                                                                                                                                        • *

                                                                                                                                                          * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                                          *
                                                                                                                                                        • *
                                                                                                                                                        • *

                                                                                                                                                          * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                                                                          *
                                                                                                                                                        • *
                                                                                                                                                        • *

                                                                                                                                                          * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                                                                          *
                                                                                                                                                        • *
                                                                                                                                                        • *

                                                                                                                                                          * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                                                                          *
                                                                                                                                                        • * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                                                                          *
                                                                                                                                                            *
                                                                                                                                                          • *

                                                                                                                                                            * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                                                                            *
                                                                                                                                                          • *
                                                                                                                                                          • *

                                                                                                                                                            * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                                                                            *
                                                                                                                                                          • *
                                                                                                                                                          • *

                                                                                                                                                            * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                                                                            *
                                                                                                                                                          • *
                                                                                                                                                          • *

                                                                                                                                                            * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                                                                            *
                                                                                                                                                          • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                                                                                                                            *
                                                                                                                                                              *
                                                                                                                                                            • *

                                                                                                                                                              * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                                                                                                                              *
                                                                                                                                                            • *
                                                                                                                                                            • *

                                                                                                                                                              * You tried to delete a Rule that is still referenced by a WebACL. *

                                                                                                                                                              *
                                                                                                                                                            • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.UpdateSizeConstraintSet * @see AWS API Documentation */ @Override public UpdateSizeConstraintSetResult updateSizeConstraintSet(UpdateSizeConstraintSetRequest request) { request = beforeClientExecution(request); return executeUpdateSizeConstraintSet(request); } @SdkInternalApi final UpdateSizeConstraintSetResult executeUpdateSizeConstraintSet(UpdateSizeConstraintSetRequest updateSizeConstraintSetRequest) { ExecutionContext executionContext = createExecutionContext(updateSizeConstraintSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateSizeConstraintSetRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(updateSizeConstraintSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateSizeConstraintSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateSizeConstraintSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                                                                              * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                                                                              *

                                                                                                                                                              * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                                                                              *
                                                                                                                                                              *

                                                                                                                                                              * Inserts or deletes SqlInjectionMatchTuple objects (filters) in a SqlInjectionMatchSet. For each * SqlInjectionMatchTuple object, you specify the following values: *

                                                                                                                                                              *
                                                                                                                                                                *
                                                                                                                                                              • *

                                                                                                                                                                * Action: Whether to insert the object into or delete the object from the array. To change a * SqlInjectionMatchTuple, you delete the existing object and add a new one. *

                                                                                                                                                                *
                                                                                                                                                              • *
                                                                                                                                                              • *

                                                                                                                                                                * FieldToMatch: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to * inspect a header or custom query parameter, the name of the header or parameter. *

                                                                                                                                                                *
                                                                                                                                                              • *
                                                                                                                                                              • *

                                                                                                                                                                * TextTransformation: Which text transformation, if any, to perform on the web request before * inspecting the request for snippets of malicious SQL code. *

                                                                                                                                                                *

                                                                                                                                                                * You can only specify a single type of TextTransformation. *

                                                                                                                                                                *
                                                                                                                                                              • *
                                                                                                                                                              *

                                                                                                                                                              * You use SqlInjectionMatchSet objects to specify which CloudFront requests that you want to allow, * block, or count. For example, if you're receiving requests that contain snippets of SQL code in the query string * and you want to block the requests, you can create a SqlInjectionMatchSet with the applicable * settings, and then configure AWS WAF to block the requests. *

                                                                                                                                                              *

                                                                                                                                                              * To create and configure a SqlInjectionMatchSet, perform the following steps: *

                                                                                                                                                              *
                                                                                                                                                                *
                                                                                                                                                              1. *

                                                                                                                                                                * Submit a CreateSqlInjectionMatchSet request. *

                                                                                                                                                                *
                                                                                                                                                              2. *
                                                                                                                                                              3. *

                                                                                                                                                                * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of * an UpdateIPSet request. *

                                                                                                                                                                *
                                                                                                                                                              4. *
                                                                                                                                                              5. *

                                                                                                                                                                * Submit an UpdateSqlInjectionMatchSet request to specify the parts of web requests that you want AWS * WAF to inspect for snippets of SQL code. *

                                                                                                                                                                *
                                                                                                                                                              6. *
                                                                                                                                                              *

                                                                                                                                                              * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                                                                                                                                                              * * @param updateSqlInjectionMatchSetRequest * A request to update a SqlInjectionMatchSet. * @return Result of the UpdateSqlInjectionMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                                                                              *
                                                                                                                                                                *
                                                                                                                                                              • *

                                                                                                                                                                * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                                                                                *
                                                                                                                                                              • *
                                                                                                                                                              • *

                                                                                                                                                                * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                                                                                *
                                                                                                                                                              • *
                                                                                                                                                              • *

                                                                                                                                                                * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                                                                                *
                                                                                                                                                              • *
                                                                                                                                                              • *

                                                                                                                                                                * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                                                                                *
                                                                                                                                                              • *
                                                                                                                                                              • *

                                                                                                                                                                * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                                                                                *
                                                                                                                                                              • * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                                                                                                *
                                                                                                                                                                  *
                                                                                                                                                                • *

                                                                                                                                                                  * You specified an invalid parameter name. *

                                                                                                                                                                  *
                                                                                                                                                                • *
                                                                                                                                                                • *

                                                                                                                                                                  * You specified an invalid value. *

                                                                                                                                                                  *
                                                                                                                                                                • *
                                                                                                                                                                • *

                                                                                                                                                                  * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                                                                                  *
                                                                                                                                                                • *
                                                                                                                                                                • *

                                                                                                                                                                  * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                                                  *
                                                                                                                                                                • *
                                                                                                                                                                • *

                                                                                                                                                                  * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                                                                                  *
                                                                                                                                                                • *
                                                                                                                                                                • *

                                                                                                                                                                  * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                                                  *
                                                                                                                                                                • *
                                                                                                                                                                • *

                                                                                                                                                                  * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                                                                                  *
                                                                                                                                                                • *
                                                                                                                                                                • *

                                                                                                                                                                  * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                                                                                  *
                                                                                                                                                                • *
                                                                                                                                                                • *

                                                                                                                                                                  * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                                                                                  *
                                                                                                                                                                • * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                                                                                  *
                                                                                                                                                                    *
                                                                                                                                                                  • *

                                                                                                                                                                    * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                                                                                    *
                                                                                                                                                                  • *
                                                                                                                                                                  • *

                                                                                                                                                                    * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                                                                                    *
                                                                                                                                                                  • *
                                                                                                                                                                  • *

                                                                                                                                                                    * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                                                                                    *
                                                                                                                                                                  • *
                                                                                                                                                                  • *

                                                                                                                                                                    * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                                                                                    *
                                                                                                                                                                  • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.UpdateSqlInjectionMatchSet * @see AWS API Documentation */ @Override public UpdateSqlInjectionMatchSetResult updateSqlInjectionMatchSet(UpdateSqlInjectionMatchSetRequest request) { request = beforeClientExecution(request); return executeUpdateSqlInjectionMatchSet(request); } @SdkInternalApi final UpdateSqlInjectionMatchSetResult executeUpdateSqlInjectionMatchSet(UpdateSqlInjectionMatchSetRequest updateSqlInjectionMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(updateSqlInjectionMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateSqlInjectionMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(updateSqlInjectionMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateSqlInjectionMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateSqlInjectionMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                                                                                    * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                                                                                    *

                                                                                                                                                                    * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                                                                                    *
                                                                                                                                                                    *

                                                                                                                                                                    * Inserts or deletes ActivatedRule objects in a WebACL. Each Rule identifies web * requests that you want to allow, block, or count. When you update a WebACL, you specify the * following values: *

                                                                                                                                                                    *
                                                                                                                                                                      *
                                                                                                                                                                    • *

                                                                                                                                                                      * A default action for the WebACL, either ALLOW or BLOCK. AWS WAF performs * the default action if a request doesn't match the criteria in any of the Rules in a * WebACL. *

                                                                                                                                                                      *
                                                                                                                                                                    • *
                                                                                                                                                                    • *

                                                                                                                                                                      * The Rules that you want to add or delete. If you want to replace one Rule with another, * you delete the existing Rule and add the new one. *

                                                                                                                                                                      *
                                                                                                                                                                    • *
                                                                                                                                                                    • *

                                                                                                                                                                      * For each Rule, whether you want AWS WAF to allow requests, block requests, or count requests that * match the conditions in the Rule. *

                                                                                                                                                                      *
                                                                                                                                                                    • *
                                                                                                                                                                    • *

                                                                                                                                                                      * The order in which you want AWS WAF to evaluate the Rules in a WebACL. If you add more * than one Rule to a WebACL, AWS WAF evaluates each request against the * Rules in order based on the value of Priority. (The Rule that has the * lowest value for Priority is evaluated first.) When a web request matches all the predicates (such * as ByteMatchSets and IPSets) in a Rule, AWS WAF immediately takes the * corresponding action, allow or block, and doesn't evaluate the request against the remaining Rules * in the WebACL, if any. *

                                                                                                                                                                      *
                                                                                                                                                                    • *
                                                                                                                                                                    *

                                                                                                                                                                    * To create and configure a WebACL, perform the following steps: *

                                                                                                                                                                    *
                                                                                                                                                                      *
                                                                                                                                                                    1. *

                                                                                                                                                                      * Create and update the predicates that you want to include in Rules. For more information, see * CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, * CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. *

                                                                                                                                                                      *
                                                                                                                                                                    2. *
                                                                                                                                                                    3. *

                                                                                                                                                                      * Create and update the Rules that you want to include in the WebACL. For more * information, see CreateRule and UpdateRule. *

                                                                                                                                                                      *
                                                                                                                                                                    4. *
                                                                                                                                                                    5. *

                                                                                                                                                                      * Create a WebACL. See CreateWebACL. *

                                                                                                                                                                      *
                                                                                                                                                                    6. *
                                                                                                                                                                    7. *

                                                                                                                                                                      * Use GetChangeToken to get the change token that you provide in the ChangeToken * parameter of an UpdateWebACL request. *

                                                                                                                                                                      *
                                                                                                                                                                    8. *
                                                                                                                                                                    9. *

                                                                                                                                                                      * Submit an UpdateWebACL request to specify the Rules that you want to include in the * WebACL, to specify the default action, and to associate the WebACL with a CloudFront * distribution. *

                                                                                                                                                                      *

                                                                                                                                                                      * The ActivatedRule can be a rule group. If you specify a rule group as your * ActivatedRule , you can exclude specific rules from that rule group. *

                                                                                                                                                                      *

                                                                                                                                                                      * If you already have a rule group associated with a web ACL and want to submit an UpdateWebACL * request to exclude certain rules from that rule group, you must first remove the rule group from the web ACL, the * re-insert it again, specifying the excluded rules. For details, see ActivatedRule$ExcludedRules . *

                                                                                                                                                                      *
                                                                                                                                                                    10. *
                                                                                                                                                                    *

                                                                                                                                                                    * Be aware that if you try to add a RATE_BASED rule to a web ACL without setting the rule type when first creating * the rule, the UpdateWebACL request will fail because the request tries to add a REGULAR rule (the default * rule type) with the specified ID, which does not exist. *

                                                                                                                                                                    *

                                                                                                                                                                    * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                                                                                                                                                                    * * @param updateWebACLRequest * @return Result of the UpdateWebACL operation returned by the service. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                                                                                    *
                                                                                                                                                                      *
                                                                                                                                                                    • *

                                                                                                                                                                      * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                                                                                      *
                                                                                                                                                                    • *
                                                                                                                                                                    • *

                                                                                                                                                                      * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                                                                                      *
                                                                                                                                                                    • *
                                                                                                                                                                    • *

                                                                                                                                                                      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                                                                                      *
                                                                                                                                                                    • *
                                                                                                                                                                    • *

                                                                                                                                                                      * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                                                                                      *
                                                                                                                                                                    • *
                                                                                                                                                                    • *

                                                                                                                                                                      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                                                                                      *
                                                                                                                                                                    • * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                                                                                                      *
                                                                                                                                                                        *
                                                                                                                                                                      • *

                                                                                                                                                                        * You specified an invalid parameter name. *

                                                                                                                                                                        *
                                                                                                                                                                      • *
                                                                                                                                                                      • *

                                                                                                                                                                        * You specified an invalid value. *

                                                                                                                                                                        *
                                                                                                                                                                      • *
                                                                                                                                                                      • *

                                                                                                                                                                        * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                                                                                        *
                                                                                                                                                                      • *
                                                                                                                                                                      • *

                                                                                                                                                                        * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                                                        *
                                                                                                                                                                      • *
                                                                                                                                                                      • *

                                                                                                                                                                        * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                                                                                        *
                                                                                                                                                                      • *
                                                                                                                                                                      • *

                                                                                                                                                                        * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                                                        *
                                                                                                                                                                      • *
                                                                                                                                                                      • *

                                                                                                                                                                        * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                                                                                        *
                                                                                                                                                                      • *
                                                                                                                                                                      • *

                                                                                                                                                                        * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                                                                                        *
                                                                                                                                                                      • *
                                                                                                                                                                      • *

                                                                                                                                                                        * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                                                                                        *
                                                                                                                                                                      • * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                                                                                        *
                                                                                                                                                                          *
                                                                                                                                                                        • *

                                                                                                                                                                          * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                                                                                          *
                                                                                                                                                                        • *
                                                                                                                                                                        • *

                                                                                                                                                                          * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                                                                                          *
                                                                                                                                                                        • *
                                                                                                                                                                        • *

                                                                                                                                                                          * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                                                                                          *
                                                                                                                                                                        • *
                                                                                                                                                                        • *

                                                                                                                                                                          * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                                                                                          *
                                                                                                                                                                        • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFReferencedItemException * The operation failed because you tried to delete an object that is still in use. For example:

                                                                                                                                                                          *
                                                                                                                                                                            *
                                                                                                                                                                          • *

                                                                                                                                                                            * You tried to delete a ByteMatchSet that is still referenced by a Rule. *

                                                                                                                                                                            *
                                                                                                                                                                          • *
                                                                                                                                                                          • *

                                                                                                                                                                            * You tried to delete a Rule that is still referenced by a WebACL. *

                                                                                                                                                                            *
                                                                                                                                                                          • * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @throws WAFSubscriptionNotFoundException * The specified subscription does not exist. * @sample AWSWAFRegional.UpdateWebACL * @see AWS API * Documentation */ @Override public UpdateWebACLResult updateWebACL(UpdateWebACLRequest request) { request = beforeClientExecution(request); return executeUpdateWebACL(request); } @SdkInternalApi final UpdateWebACLResult executeUpdateWebACL(UpdateWebACLRequest updateWebACLRequest) { ExecutionContext executionContext = createExecutionContext(updateWebACLRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateWebACLRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateWebACLRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateWebACL"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateWebACLResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * *

                                                                                                                                                                            * This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the * developer guide. *

                                                                                                                                                                            *

                                                                                                                                                                            * For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With * the latest version, AWS WAF has a single set of endpoints for regional and global use. *

                                                                                                                                                                            *
                                                                                                                                                                            *

                                                                                                                                                                            * Inserts or deletes XssMatchTuple objects (filters) in an XssMatchSet. For each * XssMatchTuple object, you specify the following values: *

                                                                                                                                                                            *
                                                                                                                                                                              *
                                                                                                                                                                            • *

                                                                                                                                                                              * Action: Whether to insert the object into or delete the object from the array. To change an * XssMatchTuple, you delete the existing object and add a new one. *

                                                                                                                                                                              *
                                                                                                                                                                            • *
                                                                                                                                                                            • *

                                                                                                                                                                              * FieldToMatch: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to * inspect a header or custom query parameter, the name of the header or parameter. *

                                                                                                                                                                              *
                                                                                                                                                                            • *
                                                                                                                                                                            • *

                                                                                                                                                                              * TextTransformation: Which text transformation, if any, to perform on the web request before * inspecting the request for cross-site scripting attacks. *

                                                                                                                                                                              *

                                                                                                                                                                              * You can only specify a single type of TextTransformation. *

                                                                                                                                                                              *
                                                                                                                                                                            • *
                                                                                                                                                                            *

                                                                                                                                                                            * You use XssMatchSet objects to specify which CloudFront requests that you want to allow, block, or * count. For example, if you're receiving requests that contain cross-site scripting attacks in the request body * and you want to block the requests, you can create an XssMatchSet with the applicable settings, and * then configure AWS WAF to block the requests. *

                                                                                                                                                                            *

                                                                                                                                                                            * To create and configure an XssMatchSet, perform the following steps: *

                                                                                                                                                                            *
                                                                                                                                                                              *
                                                                                                                                                                            1. *

                                                                                                                                                                              * Submit a CreateXssMatchSet request. *

                                                                                                                                                                              *
                                                                                                                                                                            2. *
                                                                                                                                                                            3. *

                                                                                                                                                                              * Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of * an UpdateIPSet request. *

                                                                                                                                                                              *
                                                                                                                                                                            4. *
                                                                                                                                                                            5. *

                                                                                                                                                                              * Submit an UpdateXssMatchSet request to specify the parts of web requests that you want AWS WAF to * inspect for cross-site scripting attacks. *

                                                                                                                                                                              *
                                                                                                                                                                            6. *
                                                                                                                                                                            *

                                                                                                                                                                            * For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. *

                                                                                                                                                                            * * @param updateXssMatchSetRequest * A request to update an XssMatchSet. * @return Result of the UpdateXssMatchSet operation returned by the service. * @throws WAFInternalErrorException * The operation failed because of a system problem, even though the request was valid. Retry your request. * @throws WAFInvalidAccountException * The operation failed because you tried to create, update, or delete an object by using an invalid account * identifier. * @throws WAFInvalidOperationException * The operation failed because there was nothing to do. For example:

                                                                                                                                                                            *
                                                                                                                                                                              *
                                                                                                                                                                            • *

                                                                                                                                                                              * You tried to remove a Rule from a WebACL, but the Rule isn't in * the specified WebACL. *

                                                                                                                                                                              *
                                                                                                                                                                            • *
                                                                                                                                                                            • *

                                                                                                                                                                              * You tried to remove an IP address from an IPSet, but the IP address isn't in the specified * IPSet. *

                                                                                                                                                                              *
                                                                                                                                                                            • *
                                                                                                                                                                            • *

                                                                                                                                                                              * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the * ByteMatchTuple isn't in the specified WebACL. *

                                                                                                                                                                              *
                                                                                                                                                                            • *
                                                                                                                                                                            • *

                                                                                                                                                                              * You tried to add a Rule to a WebACL, but the Rule already exists * in the specified WebACL. *

                                                                                                                                                                              *
                                                                                                                                                                            • *
                                                                                                                                                                            • *

                                                                                                                                                                              * You tried to add a ByteMatchTuple to a ByteMatchSet, but the * ByteMatchTuple already exists in the specified WebACL. *

                                                                                                                                                                              *
                                                                                                                                                                            • * @throws WAFInvalidParameterException * The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

                                                                                                                                                                              *
                                                                                                                                                                                *
                                                                                                                                                                              • *

                                                                                                                                                                                * You specified an invalid parameter name. *

                                                                                                                                                                                *
                                                                                                                                                                              • *
                                                                                                                                                                              • *

                                                                                                                                                                                * You specified an invalid value. *

                                                                                                                                                                                *
                                                                                                                                                                              • *
                                                                                                                                                                              • *

                                                                                                                                                                                * You tried to update an object (ByteMatchSet, IPSet, Rule, or * WebACL) using an action other than INSERT or DELETE. *

                                                                                                                                                                                *
                                                                                                                                                                              • *
                                                                                                                                                                              • *

                                                                                                                                                                                * You tried to create a WebACL with a DefaultAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                                                                *
                                                                                                                                                                              • *
                                                                                                                                                                              • *

                                                                                                                                                                                * You tried to create a RateBasedRule with a RateKey value other than * IP. *

                                                                                                                                                                                *
                                                                                                                                                                              • *
                                                                                                                                                                              • *

                                                                                                                                                                                * You tried to update a WebACL with a WafAction Type other than * ALLOW, BLOCK, or COUNT. *

                                                                                                                                                                                *
                                                                                                                                                                              • *
                                                                                                                                                                              • *

                                                                                                                                                                                * You tried to update a ByteMatchSet with a FieldToMatch Type other * than HEADER, METHOD, QUERY_STRING, URI, or BODY. *

                                                                                                                                                                                *
                                                                                                                                                                              • *
                                                                                                                                                                              • *

                                                                                                                                                                                * You tried to update a ByteMatchSet with a Field of HEADER but no * value for Data. *

                                                                                                                                                                                *
                                                                                                                                                                              • *
                                                                                                                                                                              • *

                                                                                                                                                                                * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL * cannot be associated. *

                                                                                                                                                                                *
                                                                                                                                                                              • * @throws WAFNonexistentContainerException * The operation failed because you tried to add an object to or delete an object from another object that * doesn't exist. For example:

                                                                                                                                                                                *
                                                                                                                                                                                  *
                                                                                                                                                                                • *

                                                                                                                                                                                  * You tried to add a Rule to or delete a Rule from a WebACL that * doesn't exist. *

                                                                                                                                                                                  *
                                                                                                                                                                                • *
                                                                                                                                                                                • *

                                                                                                                                                                                  * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a * Rule that doesn't exist. *

                                                                                                                                                                                  *
                                                                                                                                                                                • *
                                                                                                                                                                                • *

                                                                                                                                                                                  * You tried to add an IP address to or delete an IP address from an IPSet that doesn't exist. *

                                                                                                                                                                                  *
                                                                                                                                                                                • *
                                                                                                                                                                                • *

                                                                                                                                                                                  * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from a * ByteMatchSet that doesn't exist. *

                                                                                                                                                                                  *
                                                                                                                                                                                • * @throws WAFNonexistentItemException * The operation failed because the referenced object doesn't exist. * @throws WAFStaleDataException * The operation failed because you tried to create, update, or delete an object by using a change token * that has already been used. * @throws WAFLimitsExceededException * The operation exceeds a resource limit, for example, the maximum number of WebACL objects * that you can create for an AWS account. For more information, see Limits in the AWS WAF * Developer Guide. * @sample AWSWAFRegional.UpdateXssMatchSet * @see AWS * API Documentation */ @Override public UpdateXssMatchSetResult updateXssMatchSet(UpdateXssMatchSetRequest request) { request = beforeClientExecution(request); return executeUpdateXssMatchSet(request); } @SdkInternalApi final UpdateXssMatchSetResult executeUpdateXssMatchSet(UpdateXssMatchSetRequest updateXssMatchSetRequest) { ExecutionContext executionContext = createExecutionContext(updateXssMatchSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateXssMatchSetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateXssMatchSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "WAF Regional"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateXssMatchSet"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateXssMatchSetResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *

                                                                                                                                                                                  * 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 Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return invoke(request, responseHandler, executionContext, null, null); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI cachedEndpoint, URI uriFromEndpointTrait) { executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext, cachedEndpoint, uriFromEndpointTrait); } /** * Invoke with no authentication. Credentials are not required and any credentials set on the client or request will * be ignored for this operation. **/ private Response anonymousInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext, null, null); } /** * Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the * ExecutionContext beforehand. **/ private Response doInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI discoveredEndpoint, URI uriFromEndpointTrait) { if (discoveredEndpoint != null) { request.setEndpoint(discoveredEndpoint); request.getOriginalRequest().getRequestClientOptions().appendUserAgent("endpoint-discovery"); } else if (uriFromEndpointTrait != null) { request.setEndpoint(uriFromEndpointTrait); } else { request.setEndpoint(endpoint); } request.setTimeOffset(timeOffset); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } @com.amazonaws.annotation.SdkInternalApi static com.amazonaws.protocol.json.SdkJsonProtocolFactory getProtocolFactory() { return protocolFactory; } @Override public void shutdown() { super.shutdown(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy