import { type HostHeaderInputConfig, type HostHeaderResolvedConfig } from "@aws-sdk/middleware-host-header"; import { type UserAgentInputConfig, type UserAgentResolvedConfig } from "@aws-sdk/middleware-user-agent"; import { type RegionInputConfig, type RegionResolvedConfig } from "@smithy/config-resolver"; import { type EndpointInputConfig, type EndpointResolvedConfig } from "@smithy/middleware-endpoint"; import { type RetryInputConfig, type RetryResolvedConfig } from "@smithy/middleware-retry"; import type { HttpHandlerUserInput as __HttpHandlerUserInput } from "@smithy/protocol-http"; import { type DefaultsMode as __DefaultsMode, type SmithyConfiguration as __SmithyConfiguration, type SmithyResolvedConfiguration as __SmithyResolvedConfiguration, Client as __Client } from "@smithy/smithy-client"; import { type BodyLengthCalculator as __BodyLengthCalculator, type CheckOptionalClientConfig as __CheckOptionalClientConfig, type ChecksumConstructor as __ChecksumConstructor, type Decoder as __Decoder, type Encoder as __Encoder, type HashConstructor as __HashConstructor, type HttpHandlerOptions as __HttpHandlerOptions, type Logger as __Logger, type Provider as __Provider, type StreamCollector as __StreamCollector, type UrlParser as __UrlParser, AwsCredentialIdentityProvider, Provider, UserAgent as __UserAgent } from "@smithy/types"; import { type HttpAuthSchemeInputConfig, type HttpAuthSchemeResolvedConfig } from "./auth/httpAuthSchemeProvider"; import { AssociateWebACLCommandInput, AssociateWebACLCommandOutput } from "./commands/AssociateWebACLCommand"; import { CheckCapacityCommandInput, CheckCapacityCommandOutput } from "./commands/CheckCapacityCommand"; import { CreateAPIKeyCommandInput, CreateAPIKeyCommandOutput } from "./commands/CreateAPIKeyCommand"; import { CreateIPSetCommandInput, CreateIPSetCommandOutput } from "./commands/CreateIPSetCommand"; import { CreateRegexPatternSetCommandInput, CreateRegexPatternSetCommandOutput } from "./commands/CreateRegexPatternSetCommand"; import { CreateRuleGroupCommandInput, CreateRuleGroupCommandOutput } from "./commands/CreateRuleGroupCommand"; import { CreateWebACLCommandInput, CreateWebACLCommandOutput } from "./commands/CreateWebACLCommand"; import { DeleteAPIKeyCommandInput, DeleteAPIKeyCommandOutput } from "./commands/DeleteAPIKeyCommand"; import { DeleteFirewallManagerRuleGroupsCommandInput, DeleteFirewallManagerRuleGroupsCommandOutput } from "./commands/DeleteFirewallManagerRuleGroupsCommand"; import { DeleteIPSetCommandInput, DeleteIPSetCommandOutput } from "./commands/DeleteIPSetCommand"; import { DeleteLoggingConfigurationCommandInput, DeleteLoggingConfigurationCommandOutput } from "./commands/DeleteLoggingConfigurationCommand"; import { DeletePermissionPolicyCommandInput, DeletePermissionPolicyCommandOutput } from "./commands/DeletePermissionPolicyCommand"; import { DeleteRegexPatternSetCommandInput, DeleteRegexPatternSetCommandOutput } from "./commands/DeleteRegexPatternSetCommand"; import { DeleteRuleGroupCommandInput, DeleteRuleGroupCommandOutput } from "./commands/DeleteRuleGroupCommand"; import { DeleteWebACLCommandInput, DeleteWebACLCommandOutput } from "./commands/DeleteWebACLCommand"; import { DescribeAllManagedProductsCommandInput, DescribeAllManagedProductsCommandOutput } from "./commands/DescribeAllManagedProductsCommand"; import { DescribeManagedProductsByVendorCommandInput, DescribeManagedProductsByVendorCommandOutput } from "./commands/DescribeManagedProductsByVendorCommand"; import { DescribeManagedRuleGroupCommandInput, DescribeManagedRuleGroupCommandOutput } from "./commands/DescribeManagedRuleGroupCommand"; import { DisassociateWebACLCommandInput, DisassociateWebACLCommandOutput } from "./commands/DisassociateWebACLCommand"; import { GenerateMobileSdkReleaseUrlCommandInput, GenerateMobileSdkReleaseUrlCommandOutput } from "./commands/GenerateMobileSdkReleaseUrlCommand"; import { GetDecryptedAPIKeyCommandInput, GetDecryptedAPIKeyCommandOutput } from "./commands/GetDecryptedAPIKeyCommand"; import { GetIPSetCommandInput, GetIPSetCommandOutput } from "./commands/GetIPSetCommand"; import { GetLoggingConfigurationCommandInput, GetLoggingConfigurationCommandOutput } from "./commands/GetLoggingConfigurationCommand"; import { GetManagedRuleSetCommandInput, GetManagedRuleSetCommandOutput } from "./commands/GetManagedRuleSetCommand"; import { GetMobileSdkReleaseCommandInput, GetMobileSdkReleaseCommandOutput } from "./commands/GetMobileSdkReleaseCommand"; import { GetPermissionPolicyCommandInput, GetPermissionPolicyCommandOutput } from "./commands/GetPermissionPolicyCommand"; import { GetRateBasedStatementManagedKeysCommandInput, GetRateBasedStatementManagedKeysCommandOutput } from "./commands/GetRateBasedStatementManagedKeysCommand"; import { GetRegexPatternSetCommandInput, GetRegexPatternSetCommandOutput } from "./commands/GetRegexPatternSetCommand"; import { GetRuleGroupCommandInput, GetRuleGroupCommandOutput } from "./commands/GetRuleGroupCommand"; import { GetSampledRequestsCommandInput, GetSampledRequestsCommandOutput } from "./commands/GetSampledRequestsCommand"; import { GetTopPathStatisticsByTrafficCommandInput, GetTopPathStatisticsByTrafficCommandOutput } from "./commands/GetTopPathStatisticsByTrafficCommand"; import { GetWebACLCommandInput, GetWebACLCommandOutput } from "./commands/GetWebACLCommand"; import { GetWebACLForResourceCommandInput, GetWebACLForResourceCommandOutput } from "./commands/GetWebACLForResourceCommand"; import { ListAPIKeysCommandInput, ListAPIKeysCommandOutput } from "./commands/ListAPIKeysCommand"; import { ListAvailableManagedRuleGroupsCommandInput, ListAvailableManagedRuleGroupsCommandOutput } from "./commands/ListAvailableManagedRuleGroupsCommand"; import { ListAvailableManagedRuleGroupVersionsCommandInput, ListAvailableManagedRuleGroupVersionsCommandOutput } from "./commands/ListAvailableManagedRuleGroupVersionsCommand"; import { ListIPSetsCommandInput, ListIPSetsCommandOutput } from "./commands/ListIPSetsCommand"; import { ListLoggingConfigurationsCommandInput, ListLoggingConfigurationsCommandOutput } from "./commands/ListLoggingConfigurationsCommand"; import { ListManagedRuleSetsCommandInput, ListManagedRuleSetsCommandOutput } from "./commands/ListManagedRuleSetsCommand"; import { ListMobileSdkReleasesCommandInput, ListMobileSdkReleasesCommandOutput } from "./commands/ListMobileSdkReleasesCommand"; import { ListRegexPatternSetsCommandInput, ListRegexPatternSetsCommandOutput } from "./commands/ListRegexPatternSetsCommand"; import { ListResourcesForWebACLCommandInput, ListResourcesForWebACLCommandOutput } from "./commands/ListResourcesForWebACLCommand"; import { ListRuleGroupsCommandInput, ListRuleGroupsCommandOutput } from "./commands/ListRuleGroupsCommand"; import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput } from "./commands/ListTagsForResourceCommand"; import { ListWebACLsCommandInput, ListWebACLsCommandOutput } from "./commands/ListWebACLsCommand"; import { PutLoggingConfigurationCommandInput, PutLoggingConfigurationCommandOutput } from "./commands/PutLoggingConfigurationCommand"; import { PutManagedRuleSetVersionsCommandInput, PutManagedRuleSetVersionsCommandOutput } from "./commands/PutManagedRuleSetVersionsCommand"; import { PutPermissionPolicyCommandInput, PutPermissionPolicyCommandOutput } from "./commands/PutPermissionPolicyCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { UpdateIPSetCommandInput, UpdateIPSetCommandOutput } from "./commands/UpdateIPSetCommand"; import { UpdateManagedRuleSetVersionExpiryDateCommandInput, UpdateManagedRuleSetVersionExpiryDateCommandOutput } from "./commands/UpdateManagedRuleSetVersionExpiryDateCommand"; import { UpdateRegexPatternSetCommandInput, UpdateRegexPatternSetCommandOutput } from "./commands/UpdateRegexPatternSetCommand"; import { UpdateRuleGroupCommandInput, UpdateRuleGroupCommandOutput } from "./commands/UpdateRuleGroupCommand"; import { UpdateWebACLCommandInput, UpdateWebACLCommandOutput } from "./commands/UpdateWebACLCommand"; import { ClientInputEndpointParameters, ClientResolvedEndpointParameters, EndpointParameters } from "./endpoint/EndpointParameters"; import { type RuntimeExtension, type RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; /** * @public */ export type ServiceInputTypes = AssociateWebACLCommandInput | CheckCapacityCommandInput | CreateAPIKeyCommandInput | CreateIPSetCommandInput | CreateRegexPatternSetCommandInput | CreateRuleGroupCommandInput | CreateWebACLCommandInput | DeleteAPIKeyCommandInput | DeleteFirewallManagerRuleGroupsCommandInput | DeleteIPSetCommandInput | DeleteLoggingConfigurationCommandInput | DeletePermissionPolicyCommandInput | DeleteRegexPatternSetCommandInput | DeleteRuleGroupCommandInput | DeleteWebACLCommandInput | DescribeAllManagedProductsCommandInput | DescribeManagedProductsByVendorCommandInput | DescribeManagedRuleGroupCommandInput | DisassociateWebACLCommandInput | GenerateMobileSdkReleaseUrlCommandInput | GetDecryptedAPIKeyCommandInput | GetIPSetCommandInput | GetLoggingConfigurationCommandInput | GetManagedRuleSetCommandInput | GetMobileSdkReleaseCommandInput | GetPermissionPolicyCommandInput | GetRateBasedStatementManagedKeysCommandInput | GetRegexPatternSetCommandInput | GetRuleGroupCommandInput | GetSampledRequestsCommandInput | GetTopPathStatisticsByTrafficCommandInput | GetWebACLCommandInput | GetWebACLForResourceCommandInput | ListAPIKeysCommandInput | ListAvailableManagedRuleGroupVersionsCommandInput | ListAvailableManagedRuleGroupsCommandInput | ListIPSetsCommandInput | ListLoggingConfigurationsCommandInput | ListManagedRuleSetsCommandInput | ListMobileSdkReleasesCommandInput | ListRegexPatternSetsCommandInput | ListResourcesForWebACLCommandInput | ListRuleGroupsCommandInput | ListTagsForResourceCommandInput | ListWebACLsCommandInput | PutLoggingConfigurationCommandInput | PutManagedRuleSetVersionsCommandInput | PutPermissionPolicyCommandInput | TagResourceCommandInput | UntagResourceCommandInput | UpdateIPSetCommandInput | UpdateManagedRuleSetVersionExpiryDateCommandInput | UpdateRegexPatternSetCommandInput | UpdateRuleGroupCommandInput | UpdateWebACLCommandInput; /** * @public */ export type ServiceOutputTypes = AssociateWebACLCommandOutput | CheckCapacityCommandOutput | CreateAPIKeyCommandOutput | CreateIPSetCommandOutput | CreateRegexPatternSetCommandOutput | CreateRuleGroupCommandOutput | CreateWebACLCommandOutput | DeleteAPIKeyCommandOutput | DeleteFirewallManagerRuleGroupsCommandOutput | DeleteIPSetCommandOutput | DeleteLoggingConfigurationCommandOutput | DeletePermissionPolicyCommandOutput | DeleteRegexPatternSetCommandOutput | DeleteRuleGroupCommandOutput | DeleteWebACLCommandOutput | DescribeAllManagedProductsCommandOutput | DescribeManagedProductsByVendorCommandOutput | DescribeManagedRuleGroupCommandOutput | DisassociateWebACLCommandOutput | GenerateMobileSdkReleaseUrlCommandOutput | GetDecryptedAPIKeyCommandOutput | GetIPSetCommandOutput | GetLoggingConfigurationCommandOutput | GetManagedRuleSetCommandOutput | GetMobileSdkReleaseCommandOutput | GetPermissionPolicyCommandOutput | GetRateBasedStatementManagedKeysCommandOutput | GetRegexPatternSetCommandOutput | GetRuleGroupCommandOutput | GetSampledRequestsCommandOutput | GetTopPathStatisticsByTrafficCommandOutput | GetWebACLCommandOutput | GetWebACLForResourceCommandOutput | ListAPIKeysCommandOutput | ListAvailableManagedRuleGroupVersionsCommandOutput | ListAvailableManagedRuleGroupsCommandOutput | ListIPSetsCommandOutput | ListLoggingConfigurationsCommandOutput | ListManagedRuleSetsCommandOutput | ListMobileSdkReleasesCommandOutput | ListRegexPatternSetsCommandOutput | ListResourcesForWebACLCommandOutput | ListRuleGroupsCommandOutput | ListTagsForResourceCommandOutput | ListWebACLsCommandOutput | PutLoggingConfigurationCommandOutput | PutManagedRuleSetVersionsCommandOutput | PutPermissionPolicyCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput | UpdateIPSetCommandOutput | UpdateManagedRuleSetVersionExpiryDateCommandOutput | UpdateRegexPatternSetCommandOutput | UpdateRuleGroupCommandOutput | UpdateWebACLCommandOutput; /** * @public */ export interface ClientDefaults extends Partial<__SmithyConfiguration<__HttpHandlerOptions>> { /** * The HTTP handler to use or its constructor options. Fetch in browser and Https in Nodejs. */ requestHandler?: __HttpHandlerUserInput; /** * A constructor for a class implementing the {@link @smithy/types#ChecksumConstructor} interface * that computes the SHA-256 HMAC or checksum of a string or binary buffer. * @internal */ sha256?: __ChecksumConstructor | __HashConstructor; /** * The function that will be used to convert strings into HTTP endpoints. * @internal */ urlParser?: __UrlParser; /** * A function that can calculate the length of a request body. * @internal */ bodyLengthChecker?: __BodyLengthCalculator; /** * A function that converts a stream into an array of bytes. * @internal */ streamCollector?: __StreamCollector; /** * The function that will be used to convert a base64-encoded string to a byte array. * @internal */ base64Decoder?: __Decoder; /** * The function that will be used to convert binary data to a base64-encoded string. * @internal */ base64Encoder?: __Encoder; /** * The function that will be used to convert a UTF8-encoded string to a byte array. * @internal */ utf8Decoder?: __Decoder; /** * The function that will be used to convert binary data to a UTF-8 encoded string. * @internal */ utf8Encoder?: __Encoder; /** * The runtime environment. * @internal */ runtime?: string; /** * Disable dynamically changing the endpoint of the client based on the hostPrefix * trait of an operation. */ disableHostPrefix?: boolean; /** * Unique service identifier. * @internal */ serviceId?: string; /** * Enables IPv6/IPv4 dualstack endpoint. */ useDualstackEndpoint?: boolean | __Provider; /** * Enables FIPS compatible endpoints. */ useFipsEndpoint?: boolean | __Provider; /** * The AWS region to which this client will send requests */ region?: string | __Provider; /** * Setting a client profile is similar to setting a value for the * AWS_PROFILE environment variable. Setting a profile on a client * in code only affects the single client instance, unlike AWS_PROFILE. * * When set, and only for environments where an AWS configuration * file exists, fields configurable by this file will be retrieved * from the specified profile within that file. * Conflicting code configuration and environment variables will * still have higher priority. * * For client credential resolution that involves checking the AWS * configuration file, the client's profile (this value) will be * used unless a different profile is set in the credential * provider options. * */ profile?: string; /** * The provider populating default tracking information to be sent with `user-agent`, `x-amz-user-agent` header * @internal */ defaultUserAgentProvider?: Provider<__UserAgent>; /** * Default credentials provider; Not available in browser runtime. * @deprecated * @internal */ credentialDefaultProvider?: (input: any) => AwsCredentialIdentityProvider; /** * Value for how many times a request will be made at most in case of retry. */ maxAttempts?: number | __Provider; /** * Specifies which retry algorithm to use. * @see https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-smithy-util-retry/Enum/RETRY_MODES/ * */ retryMode?: string | __Provider; /** * Optional logger for logging debug/info/warn/error. */ logger?: __Logger; /** * Optional extensions */ extensions?: RuntimeExtension[]; /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ defaultsMode?: __DefaultsMode | __Provider<__DefaultsMode>; } /** * @public */ export type WAFV2ClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & ClientDefaults & UserAgentInputConfig & RetryInputConfig & RegionInputConfig & HostHeaderInputConfig & EndpointInputConfig & HttpAuthSchemeInputConfig & ClientInputEndpointParameters; /** * @public * * The configuration interface of WAFV2Client class constructor that set the region, credentials and other options. */ export interface WAFV2ClientConfig extends WAFV2ClientConfigType { } /** * @public */ export type WAFV2ClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & RuntimeExtensionsConfig & UserAgentResolvedConfig & RetryResolvedConfig & RegionResolvedConfig & HostHeaderResolvedConfig & EndpointResolvedConfig & HttpAuthSchemeResolvedConfig & ClientResolvedEndpointParameters; /** * @public * * The resolved configuration interface of WAFV2Client class. This is resolved and normalized from the {@link WAFV2ClientConfig | constructor configuration interface}. */ export interface WAFV2ClientResolvedConfig extends WAFV2ClientResolvedConfigType { } /** * WAF * *

This is the latest version of the WAF API, * released in November, 2019. The names of the entities that you use to access this API, * like endpoints and namespaces, all have the versioning information added, like "V2" or * "v2", to distinguish from the prior version. We recommend migrating your resources to * this version, because it has a number of significant improvements.

*

If you used WAF prior to this release, you can't use this WAFV2 API to access any * WAF resources that you created before. WAF Classic support will end on September 30, 2025.

*

For information about WAF, including how to migrate your WAF Classic resources to this version, * see the WAF Developer Guide.

*
*

WAF is a web application firewall that lets you monitor the HTTP and HTTPS * requests that are forwarded to a protected resource. Protected resource types include Amazon CloudFront distribution, Amazon API Gateway REST API, Application Load Balancer, AppSync * GraphQL API, Amazon Cognito user pool, App Runner service, Amplify application, and Amazon Web Services Verified Access instance. WAF also lets you control access to your content, * to protect the Amazon Web Services resource that WAF is monitoring. Based on conditions that * you specify, such as the IP addresses that requests originate from or the values of query * strings, the protected resource responds to requests with either the requested content, an HTTP 403 status code * (Forbidden), or with a custom response.

*

This API guide is for developers who need detailed information about WAF API actions, * data types, and errors. For detailed information about WAF features and guidance for configuring and using * WAF, see the WAF Developer * Guide.

*

You can make calls using the endpoints listed in WAF endpoints and quotas.

*
    *
  • *

    For regional resources, you can use any of the endpoints in the list. * A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, an App Runner service, or an Amazon Web Services Verified Access instance.

    *
  • *
  • *

    For Amazon CloudFront and Amplify, you must use the API endpoint listed for * US East (N. Virginia): us-east-1.

    *
  • *
*

Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to the * programming language or platform that you're using. For more information, see Amazon Web Services SDKs.

* @public */ export declare class WAFV2Client extends __Client<__HttpHandlerOptions, ServiceInputTypes, ServiceOutputTypes, WAFV2ClientResolvedConfig> { /** * The resolved configuration of WAFV2Client class. This is resolved and normalized from the {@link WAFV2ClientConfig | constructor configuration interface}. */ readonly config: WAFV2ClientResolvedConfig; constructor(...[configuration]: __CheckOptionalClientConfig); /** * Destroy underlying resources, like sockets. It's usually not necessary to do this. * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. * Otherwise, sockets might stay open for quite a long time before the server terminates them. */ destroy(): void; }