R/wafv2_operations.R

Defines functions wafv2_update_web_acl wafv2_update_rule_group wafv2_update_regex_pattern_set wafv2_update_managed_rule_set_version_expiry_date wafv2_update_ip_set wafv2_untag_resource wafv2_tag_resource wafv2_put_permission_policy wafv2_put_managed_rule_set_versions wafv2_put_logging_configuration wafv2_list_web_ac_ls wafv2_list_tags_for_resource wafv2_list_settlement_records wafv2_list_rule_groups wafv2_list_resources_for_web_acl wafv2_list_regex_pattern_sets wafv2_list_mobile_sdk_releases wafv2_list_managed_rule_sets wafv2_list_logging_configurations wafv2_list_ip_sets wafv2_list_available_managed_rule_groups wafv2_list_available_managed_rule_group_versions wafv2_list_api_keys wafv2_get_web_acl_for_resource wafv2_get_web_acl wafv2_get_top_path_statistics_by_traffic wafv2_get_sampled_requests wafv2_get_rule_group wafv2_get_revenue_statistics_time_series wafv2_get_revenue_statistics_summary wafv2_get_revenue_statistics wafv2_get_regex_pattern_set wafv2_get_rate_based_statement_managed_keys wafv2_get_permission_policy wafv2_get_mobile_sdk_release wafv2_get_managed_rule_set wafv2_get_logging_configuration wafv2_get_ip_set wafv2_get_decrypted_api_key wafv2_generate_mobile_sdk_release_url wafv2_disassociate_web_acl wafv2_describe_managed_rule_group wafv2_describe_managed_products_by_vendor wafv2_describe_all_managed_products wafv2_delete_web_acl wafv2_delete_rule_group wafv2_delete_regex_pattern_set wafv2_delete_permission_policy wafv2_delete_logging_configuration wafv2_delete_ip_set wafv2_delete_firewall_manager_rule_groups wafv2_delete_api_key wafv2_create_web_acl wafv2_create_rule_group wafv2_create_regex_pattern_set wafv2_create_ip_set wafv2_create_api_key wafv2_check_capacity wafv2_associate_web_acl

Documented in wafv2_associate_web_acl wafv2_check_capacity wafv2_create_api_key wafv2_create_ip_set wafv2_create_regex_pattern_set wafv2_create_rule_group wafv2_create_web_acl wafv2_delete_api_key wafv2_delete_firewall_manager_rule_groups wafv2_delete_ip_set wafv2_delete_logging_configuration wafv2_delete_permission_policy wafv2_delete_regex_pattern_set wafv2_delete_rule_group wafv2_delete_web_acl wafv2_describe_all_managed_products wafv2_describe_managed_products_by_vendor wafv2_describe_managed_rule_group wafv2_disassociate_web_acl wafv2_generate_mobile_sdk_release_url wafv2_get_decrypted_api_key wafv2_get_ip_set wafv2_get_logging_configuration wafv2_get_managed_rule_set wafv2_get_mobile_sdk_release wafv2_get_permission_policy wafv2_get_rate_based_statement_managed_keys wafv2_get_regex_pattern_set wafv2_get_revenue_statistics wafv2_get_revenue_statistics_summary wafv2_get_revenue_statistics_time_series wafv2_get_rule_group wafv2_get_sampled_requests wafv2_get_top_path_statistics_by_traffic wafv2_get_web_acl wafv2_get_web_acl_for_resource wafv2_list_api_keys wafv2_list_available_managed_rule_groups wafv2_list_available_managed_rule_group_versions wafv2_list_ip_sets wafv2_list_logging_configurations wafv2_list_managed_rule_sets wafv2_list_mobile_sdk_releases wafv2_list_regex_pattern_sets wafv2_list_resources_for_web_acl wafv2_list_rule_groups wafv2_list_settlement_records wafv2_list_tags_for_resource wafv2_list_web_ac_ls wafv2_put_logging_configuration wafv2_put_managed_rule_set_versions wafv2_put_permission_policy wafv2_tag_resource wafv2_untag_resource wafv2_update_ip_set wafv2_update_managed_rule_set_version_expiry_date wafv2_update_regex_pattern_set wafv2_update_rule_group wafv2_update_web_acl

# This file is generated by make.paws. Please do not edit here.
#' @importFrom paws.common get_config new_operation new_request send_request
#' @include wafv2_service.R
NULL

#' Associates a web ACL with a resource, to protect the resource
#'
#' @description
#' Associates a web ACL with a resource, to protect the resource.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_associate_web_acl/](https://www.paws-r-sdk.com/docs/wafv2_associate_web_acl/) for full documentation.
#'
#' @param WebACLArn [required] The Amazon Resource Name (ARN) of the web ACL that you want to associate with the resource.
#' @param ResourceArn [required] The Amazon Resource Name (ARN) of the resource to associate with the web ACL.
#' 
#' The ARN must be in one of the following formats:
#' 
#' -   For an Application Load Balancer: `arn:partition:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id `
#' 
#' -   For an Amazon API Gateway REST API: `arn:partition:apigateway:region::/restapis/api-id/stages/stage-name `
#' 
#' -   For an AppSync GraphQL API: `arn:partition:appsync:region:account-id:apis/GraphQLApiId `
#' 
#' -   For an Amazon Cognito user pool: `arn:partition:cognito-idp:region:account-id:userpool/user-pool-id `
#' 
#' -   For an App Runner service: `arn:partition:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id `
#' 
#' -   For an Amazon Web Services Verified Access instance: `arn:partition:ec2:region:account-id:verified-access-instance/instance-id `
#' 
#' -   For an Amplify application: `arn:partition:amplify:region:account-id:apps/app-id `
#' 
#' -   For an Amazon Bedrock AgentCore Gateway: `arn:partition:bedrock-agentcore:region:account-id:gateway/gateway-id `
#'
#' @keywords internal
#'
#' @rdname wafv2_associate_web_acl
wafv2_associate_web_acl <- function(WebACLArn, ResourceArn) {
  op <- new_operation(
    name = "AssociateWebACL",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$associate_web_acl_input(WebACLArn = WebACLArn, ResourceArn = ResourceArn)
  output <- .wafv2$associate_web_acl_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$associate_web_acl <- wafv2_associate_web_acl

#' Returns the web ACL capacity unit (WCU) requirements for a specified
#' scope and set of rules
#'
#' @description
#' Returns the web ACL capacity unit (WCU) requirements for a specified scope and set of rules. You can use this to check the capacity requirements for the rules you want to use in a RuleGroup or WebACL.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_check_capacity/](https://www.paws-r-sdk.com/docs/wafv2_check_capacity/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Rules &#91;required&#93; An array of Rule that you're configuring to use in a rule group or web ACL.
#'
#' @keywords internal
#'
#' @rdname wafv2_check_capacity
wafv2_check_capacity <- function(Scope, Rules) {
  op <- new_operation(
    name = "CheckCapacity",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$check_capacity_input(Scope = Scope, Rules = Rules)
  output <- .wafv2$check_capacity_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$check_capacity <- wafv2_check_capacity

#' Creates an API key that contains a set of token domains
#'
#' @description
#' Creates an API key that contains a set of token domains.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_create_api_key/](https://www.paws-r-sdk.com/docs/wafv2_create_api_key/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param TokenDomains &#91;required&#93; The client application domains that you want to use this API key for.
#' 
#' Example JSON: `"TokenDomains": ["abc.com", "store.abc.com"]`
#' 
#' Public suffixes aren't allowed. For example, you can't use `gov.au` or `co.uk` as token domains.
#'
#' @keywords internal
#'
#' @rdname wafv2_create_api_key
wafv2_create_api_key <- function(Scope, TokenDomains) {
  op <- new_operation(
    name = "CreateAPIKey",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$create_api_key_input(Scope = Scope, TokenDomains = TokenDomains)
  output <- .wafv2$create_api_key_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$create_api_key <- wafv2_create_api_key

#' Creates an IPSet, which you use to identify web requests that originate
#' from specific IP addresses or ranges of IP addresses
#'
#' @description
#' Creates an IPSet, which you use to identify web requests that originate from specific IP addresses or ranges of IP addresses. For example, if you're receiving a lot of requests from a ranges of IP addresses, you can configure WAF to block them using an IPSet that lists those IP addresses.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_create_ip_set/](https://www.paws-r-sdk.com/docs/wafv2_create_ip_set/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the IP set. You cannot change the name of an `IPSet` after you create it.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Description A description of the IP set that helps with identification.
#' @param IPAddressVersion &#91;required&#93; The version of the IP addresses, either `IPV4` or `IPV6`.
#' @param Addresses &#91;required&#93; Contains an array of strings that specifies zero or more IP addresses or blocks of IP addresses that you want WAF to inspect for in incoming requests. All addresses must be specified using Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for `/0`.
#' 
#' Example address strings:
#' 
#' -   For requests that originated from the IP address 192.0.2.44, specify `192.0.2.44/32`.
#' 
#' -   For requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify `192.0.2.0/24`.
#' 
#' -   For requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify `1111:0000:0000:0000:0000:0000:0000:0111/128`.
#' 
#' -   For requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify `1111:0000:0000:0000:0000:0000:0000:0000/64`.
#' 
#' For more information about CIDR notation, see the Wikipedia entry [Classless Inter-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
#' 
#' Example JSON `Addresses` specifications:
#' 
#' -   Empty array: `"Addresses": []`
#' 
#' -   Array with one address: `"Addresses": ["192.0.2.44/32"]`
#' 
#' -   Array with three addresses: `"Addresses": ["192.0.2.44/32", "192.0.2.0/24", "192.0.0.0/16"]`
#' 
#' -   INVALID specification: `"Addresses": [""]` INVALID
#' @param Tags An array of key:value pairs to associate with the resource.
#'
#' @keywords internal
#'
#' @rdname wafv2_create_ip_set
wafv2_create_ip_set <- function(Name, Scope, Description = NULL, IPAddressVersion, Addresses, Tags = NULL) {
  op <- new_operation(
    name = "CreateIPSet",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$create_ip_set_input(Name = Name, Scope = Scope, Description = Description, IPAddressVersion = IPAddressVersion, Addresses = Addresses, Tags = Tags)
  output <- .wafv2$create_ip_set_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$create_ip_set <- wafv2_create_ip_set

#' Creates a RegexPatternSet, which you reference in a
#' RegexPatternSetReferenceStatement, to have WAF inspect a web request
#' component for the specified patterns
#'
#' @description
#' Creates a RegexPatternSet, which you reference in a RegexPatternSetReferenceStatement, to have WAF inspect a web request component for the specified patterns.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_create_regex_pattern_set/](https://www.paws-r-sdk.com/docs/wafv2_create_regex_pattern_set/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the set. You cannot change the name after you create the set.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Description A description of the set that helps with identification.
#' @param RegularExpressionList &#91;required&#93; Array of regular expression strings.
#' @param Tags An array of key:value pairs to associate with the resource.
#'
#' @keywords internal
#'
#' @rdname wafv2_create_regex_pattern_set
wafv2_create_regex_pattern_set <- function(Name, Scope, Description = NULL, RegularExpressionList, Tags = NULL) {
  op <- new_operation(
    name = "CreateRegexPatternSet",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$create_regex_pattern_set_input(Name = Name, Scope = Scope, Description = Description, RegularExpressionList = RegularExpressionList, Tags = Tags)
  output <- .wafv2$create_regex_pattern_set_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$create_regex_pattern_set <- wafv2_create_regex_pattern_set

#' Creates a RuleGroup per the specifications provided
#'
#' @description
#' Creates a RuleGroup per the specifications provided.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_create_rule_group/](https://www.paws-r-sdk.com/docs/wafv2_create_rule_group/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the rule group. You cannot change the name of a rule group after you create it.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Capacity &#91;required&#93; The web ACL capacity units (WCUs) required for this rule group.
#' 
#' When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, WAF enforces this limit. You can check the capacity for a set of rules using [`check_capacity`][wafv2_check_capacity].
#' 
#' WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. For more information, see [WAF web ACL capacity units (WCU)](https://docs.aws.amazon.com/waf/latest/developerguide/aws-waf-capacity-units.html) in the *WAF Developer Guide*.
#' @param Description A description of the rule group that helps with identification.
#' @param Rules The Rule statements used to identify the web requests that you want to manage. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them.
#' @param VisibilityConfig &#91;required&#93; Defines and enables Amazon CloudWatch metrics and web request sample collection.
#' @param Tags An array of key:value pairs to associate with the resource.
#' @param CustomResponseBodies A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.
#' 
#' For information about customizing web requests and responses, see [Customizing web requests and responses in WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the *WAF Developer Guide*.
#' 
#' For information about the limits on count and size for custom request and response settings, see [WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the *WAF Developer Guide*.
#' @param MonetizationConfig The monetization configuration for the rule group. Provide this when any rule in the rule group uses the `Monetize` action.
#'
#' @keywords internal
#'
#' @rdname wafv2_create_rule_group
wafv2_create_rule_group <- function(Name, Scope, Capacity, Description = NULL, Rules = NULL, VisibilityConfig, Tags = NULL, CustomResponseBodies = NULL, MonetizationConfig = NULL) {
  op <- new_operation(
    name = "CreateRuleGroup",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$create_rule_group_input(Name = Name, Scope = Scope, Capacity = Capacity, Description = Description, Rules = Rules, VisibilityConfig = VisibilityConfig, Tags = Tags, CustomResponseBodies = CustomResponseBodies, MonetizationConfig = MonetizationConfig)
  output <- .wafv2$create_rule_group_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$create_rule_group <- wafv2_create_rule_group

#' Creates a WebACL per the specifications provided
#'
#' @description
#' Creates a WebACL per the specifications provided.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_create_web_acl/](https://www.paws-r-sdk.com/docs/wafv2_create_web_acl/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the web ACL. You cannot change the name of a web ACL after you create it.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param DefaultAction &#91;required&#93; The action to perform if none of the `Rules` contained in the `WebACL` match.
#' @param Description A description of the web ACL that helps with identification.
#' @param Rules The Rule statements used to identify the web requests that you want to manage. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them.
#' @param VisibilityConfig &#91;required&#93; Defines and enables Amazon CloudWatch metrics and web request sample collection.
#' @param DataProtectionConfig Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option.
#' 
#' The data protection that you configure for the web ACL alters the data that's available for any other data collection activity, including your WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging.
#' @param Tags An array of key:value pairs to associate with the resource.
#' @param CustomResponseBodies A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.
#' 
#' For information about customizing web requests and responses, see [Customizing web requests and responses in WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the *WAF Developer Guide*.
#' 
#' For information about the limits on count and size for custom request and response settings, see [WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the *WAF Developer Guide*.
#' @param CaptchaConfig Specifies how WAF should handle `CAPTCHA` evaluations for rules that don't have their own `CaptchaConfig` settings. If you don't specify this, WAF uses its default settings for `CaptchaConfig`.
#' @param ChallengeConfig Specifies how WAF should handle challenge evaluations for rules that don't have their own `ChallengeConfig` settings. If you don't specify this, WAF uses its default settings for `ChallengeConfig`.
#' @param TokenDomains Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.
#' 
#' Example JSON: `"TokenDomains": { "mywebsite.com", "myotherwebsite.com" }`
#' 
#' Public suffixes aren't allowed. For example, you can't use `gov.au` or `co.uk` as token domains.
#' @param AssociationConfig Specifies custom configurations for the associations between the web ACL and protected resources.
#' 
#' Use this to customize the maximum size of the request body that your protected resources forward to WAF for inspection. You can customize this setting for CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 bytes).
#' 
#' You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see [WAF Pricing](https://aws.amazon.com/waf/pricing/).
#' 
#' For Application Load Balancer and AppSync, the limit is fixed at 8 KB (8,192 bytes).
#' @param OnSourceDDoSProtectionConfig Specifies the type of DDoS protection to apply to web request data for a web ACL. For most scenarios, it is recommended to use the default protection level, `ACTIVE_UNDER_DDOS`. If a web ACL is associated with multiple Application Load Balancers, the changes you make to DDoS protection in that web ACL will apply to all associated Application Load Balancers.
#' @param ApplicationConfig Configures the ability for the WAF console to store and retrieve application attributes during the web ACL creation process. Application attributes help WAF give recommendations for protection packs.
#' @param MonetizationConfig The monetization configuration for the web ACL. Provide this when any rule in the web ACL uses the `Monetize` action.
#'
#' @keywords internal
#'
#' @rdname wafv2_create_web_acl
wafv2_create_web_acl <- function(Name, Scope, DefaultAction, Description = NULL, Rules = NULL, VisibilityConfig, DataProtectionConfig = NULL, Tags = NULL, CustomResponseBodies = NULL, CaptchaConfig = NULL, ChallengeConfig = NULL, TokenDomains = NULL, AssociationConfig = NULL, OnSourceDDoSProtectionConfig = NULL, ApplicationConfig = NULL, MonetizationConfig = NULL) {
  op <- new_operation(
    name = "CreateWebACL",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$create_web_acl_input(Name = Name, Scope = Scope, DefaultAction = DefaultAction, Description = Description, Rules = Rules, VisibilityConfig = VisibilityConfig, DataProtectionConfig = DataProtectionConfig, Tags = Tags, CustomResponseBodies = CustomResponseBodies, CaptchaConfig = CaptchaConfig, ChallengeConfig = ChallengeConfig, TokenDomains = TokenDomains, AssociationConfig = AssociationConfig, OnSourceDDoSProtectionConfig = OnSourceDDoSProtectionConfig, ApplicationConfig = ApplicationConfig, MonetizationConfig = MonetizationConfig)
  output <- .wafv2$create_web_acl_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$create_web_acl <- wafv2_create_web_acl

#' Deletes the specified API key
#'
#' @description
#' Deletes the specified API key.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_delete_api_key/](https://www.paws-r-sdk.com/docs/wafv2_delete_api_key/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param APIKey &#91;required&#93; The encrypted API key that you want to delete.
#'
#' @keywords internal
#'
#' @rdname wafv2_delete_api_key
wafv2_delete_api_key <- function(Scope, APIKey) {
  op <- new_operation(
    name = "DeleteAPIKey",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$delete_api_key_input(Scope = Scope, APIKey = APIKey)
  output <- .wafv2$delete_api_key_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$delete_api_key <- wafv2_delete_api_key

#' Deletes all rule groups that are managed by Firewall Manager from the
#' specified WebACL
#'
#' @description
#' Deletes all rule groups that are managed by Firewall Manager from the specified WebACL.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_delete_firewall_manager_rule_groups/](https://www.paws-r-sdk.com/docs/wafv2_delete_firewall_manager_rule_groups/) for full documentation.
#'
#' @param WebACLArn &#91;required&#93; The Amazon Resource Name (ARN) of the web ACL.
#' @param WebACLLockToken &#91;required&#93; A token used for optimistic locking. WAF returns a token to your `get` and `list` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like `update` and `delete`. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a `WAFOptimisticLockException`. If this happens, perform another `get`, and use the new token returned by that operation.
#'
#' @keywords internal
#'
#' @rdname wafv2_delete_firewall_manager_rule_groups
wafv2_delete_firewall_manager_rule_groups <- function(WebACLArn, WebACLLockToken) {
  op <- new_operation(
    name = "DeleteFirewallManagerRuleGroups",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$delete_firewall_manager_rule_groups_input(WebACLArn = WebACLArn, WebACLLockToken = WebACLLockToken)
  output <- .wafv2$delete_firewall_manager_rule_groups_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$delete_firewall_manager_rule_groups <- wafv2_delete_firewall_manager_rule_groups

#' Deletes the specified IPSet
#'
#' @description
#' Deletes the specified IPSet.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_delete_ip_set/](https://www.paws-r-sdk.com/docs/wafv2_delete_ip_set/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the IP set. You cannot change the name of an `IPSet` after you create it.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#' @param LockToken &#91;required&#93; A token used for optimistic locking. WAF returns a token to your `get` and `list` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like `update` and `delete`. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a `WAFOptimisticLockException`. If this happens, perform another `get`, and use the new token returned by that operation.
#'
#' @keywords internal
#'
#' @rdname wafv2_delete_ip_set
wafv2_delete_ip_set <- function(Name, Scope, Id, LockToken) {
  op <- new_operation(
    name = "DeleteIPSet",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$delete_ip_set_input(Name = Name, Scope = Scope, Id = Id, LockToken = LockToken)
  output <- .wafv2$delete_ip_set_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$delete_ip_set <- wafv2_delete_ip_set

#' Deletes the LoggingConfiguration from the specified web ACL
#'
#' @description
#' Deletes the LoggingConfiguration from the specified web ACL.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_delete_logging_configuration/](https://www.paws-r-sdk.com/docs/wafv2_delete_logging_configuration/) for full documentation.
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the web ACL from which you want to delete the LoggingConfiguration.
#' @param LogType Used to distinguish between various logging options. Currently, there is one option.
#' 
#' Default: `WAF_LOGS`
#' @param LogScope The owner of the logging configuration, which must be set to `CUSTOMER` for the configurations that you manage.
#' 
#' The log scope `SECURITY_LAKE` indicates a configuration that is managed through Amazon Security Lake. You can use Security Lake to collect log and event data from various sources for normalization, analysis, and management. For information, see [Collecting data from Amazon Web Services services](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html) in the *Amazon Security Lake user guide*.
#' 
#' The log scope `CLOUDWATCH_TELEMETRY_RULE_MANAGED` indicates a configuration that is managed through Amazon CloudWatch Logs for telemetry data collection and analysis. For information, see [What is Amazon CloudWatch Logs ?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) in the *Amazon CloudWatch Logs user guide*.
#' 
#' Default: `CUSTOMER`
#'
#' @keywords internal
#'
#' @rdname wafv2_delete_logging_configuration
wafv2_delete_logging_configuration <- function(ResourceArn, LogType = NULL, LogScope = NULL) {
  op <- new_operation(
    name = "DeleteLoggingConfiguration",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$delete_logging_configuration_input(ResourceArn = ResourceArn, LogType = LogType, LogScope = LogScope)
  output <- .wafv2$delete_logging_configuration_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$delete_logging_configuration <- wafv2_delete_logging_configuration

#' Permanently deletes an IAM policy from the specified rule group
#'
#' @description
#' Permanently deletes an IAM policy from the specified rule group.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_delete_permission_policy/](https://www.paws-r-sdk.com/docs/wafv2_delete_permission_policy/) for full documentation.
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the rule group from which you want to delete the policy.
#' 
#' You must be the owner of the rule group to perform this operation.
#'
#' @keywords internal
#'
#' @rdname wafv2_delete_permission_policy
wafv2_delete_permission_policy <- function(ResourceArn) {
  op <- new_operation(
    name = "DeletePermissionPolicy",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$delete_permission_policy_input(ResourceArn = ResourceArn)
  output <- .wafv2$delete_permission_policy_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$delete_permission_policy <- wafv2_delete_permission_policy

#' Deletes the specified RegexPatternSet
#'
#' @description
#' Deletes the specified RegexPatternSet.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_delete_regex_pattern_set/](https://www.paws-r-sdk.com/docs/wafv2_delete_regex_pattern_set/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the set. You cannot change the name after you create the set.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#' @param LockToken &#91;required&#93; A token used for optimistic locking. WAF returns a token to your `get` and `list` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like `update` and `delete`. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a `WAFOptimisticLockException`. If this happens, perform another `get`, and use the new token returned by that operation.
#'
#' @keywords internal
#'
#' @rdname wafv2_delete_regex_pattern_set
wafv2_delete_regex_pattern_set <- function(Name, Scope, Id, LockToken) {
  op <- new_operation(
    name = "DeleteRegexPatternSet",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$delete_regex_pattern_set_input(Name = Name, Scope = Scope, Id = Id, LockToken = LockToken)
  output <- .wafv2$delete_regex_pattern_set_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$delete_regex_pattern_set <- wafv2_delete_regex_pattern_set

#' Deletes the specified RuleGroup
#'
#' @description
#' Deletes the specified RuleGroup.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_delete_rule_group/](https://www.paws-r-sdk.com/docs/wafv2_delete_rule_group/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the rule group. You cannot change the name of a rule group after you create it.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#' @param LockToken &#91;required&#93; A token used for optimistic locking. WAF returns a token to your `get` and `list` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like `update` and `delete`. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a `WAFOptimisticLockException`. If this happens, perform another `get`, and use the new token returned by that operation.
#'
#' @keywords internal
#'
#' @rdname wafv2_delete_rule_group
wafv2_delete_rule_group <- function(Name, Scope, Id, LockToken) {
  op <- new_operation(
    name = "DeleteRuleGroup",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$delete_rule_group_input(Name = Name, Scope = Scope, Id = Id, LockToken = LockToken)
  output <- .wafv2$delete_rule_group_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$delete_rule_group <- wafv2_delete_rule_group

#' Deletes the specified WebACL
#'
#' @description
#' Deletes the specified WebACL.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_delete_web_acl/](https://www.paws-r-sdk.com/docs/wafv2_delete_web_acl/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the web ACL. You cannot change the name of a web ACL after you create it.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#' @param LockToken &#91;required&#93; A token used for optimistic locking. WAF returns a token to your `get` and `list` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like `update` and `delete`. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a `WAFOptimisticLockException`. If this happens, perform another `get`, and use the new token returned by that operation.
#'
#' @keywords internal
#'
#' @rdname wafv2_delete_web_acl
wafv2_delete_web_acl <- function(Name, Scope, Id, LockToken) {
  op <- new_operation(
    name = "DeleteWebACL",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$delete_web_acl_input(Name = Name, Scope = Scope, Id = Id, LockToken = LockToken)
  output <- .wafv2$delete_web_acl_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$delete_web_acl <- wafv2_delete_web_acl

#' Provides high-level information for the Amazon Web Services Managed
#' Rules rule groups and Amazon Web Services Marketplace managed rule
#' groups
#'
#' @description
#' Provides high-level information for the Amazon Web Services Managed Rules rule groups and Amazon Web Services Marketplace managed rule groups.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_describe_all_managed_products/](https://www.paws-r-sdk.com/docs/wafv2_describe_all_managed_products/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#'
#' @keywords internal
#'
#' @rdname wafv2_describe_all_managed_products
wafv2_describe_all_managed_products <- function(Scope) {
  op <- new_operation(
    name = "DescribeAllManagedProducts",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$describe_all_managed_products_input(Scope = Scope)
  output <- .wafv2$describe_all_managed_products_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$describe_all_managed_products <- wafv2_describe_all_managed_products

#' Provides high-level information for the managed rule groups owned by a
#' specific vendor
#'
#' @description
#' Provides high-level information for the managed rule groups owned by a specific vendor.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_describe_managed_products_by_vendor/](https://www.paws-r-sdk.com/docs/wafv2_describe_managed_products_by_vendor/) for full documentation.
#'
#' @param VendorName &#91;required&#93; The name of the managed rule group vendor. You use this, along with the rule group name, to identify a rule group.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#'
#' @keywords internal
#'
#' @rdname wafv2_describe_managed_products_by_vendor
wafv2_describe_managed_products_by_vendor <- function(VendorName, Scope) {
  op <- new_operation(
    name = "DescribeManagedProductsByVendor",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$describe_managed_products_by_vendor_input(VendorName = VendorName, Scope = Scope)
  output <- .wafv2$describe_managed_products_by_vendor_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$describe_managed_products_by_vendor <- wafv2_describe_managed_products_by_vendor

#' Provides high-level information for a managed rule group, including
#' descriptions of the rules
#'
#' @description
#' Provides high-level information for a managed rule group, including descriptions of the rules.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_describe_managed_rule_group/](https://www.paws-r-sdk.com/docs/wafv2_describe_managed_rule_group/) for full documentation.
#'
#' @param VendorName &#91;required&#93; The name of the managed rule group vendor. You use this, along with the rule group name, to identify a rule group.
#' @param Name &#91;required&#93; The name of the managed rule group. You use this, along with the vendor name, to identify the rule group.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param VersionName The version of the rule group. You can only use a version that is not scheduled for expiration. If you don't provide this, WAF uses the vendor's default version.
#'
#' @keywords internal
#'
#' @rdname wafv2_describe_managed_rule_group
wafv2_describe_managed_rule_group <- function(VendorName, Name, Scope, VersionName = NULL) {
  op <- new_operation(
    name = "DescribeManagedRuleGroup",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$describe_managed_rule_group_input(VendorName = VendorName, Name = Name, Scope = Scope, VersionName = VersionName)
  output <- .wafv2$describe_managed_rule_group_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$describe_managed_rule_group <- wafv2_describe_managed_rule_group

#' Disassociates the specified resource from its web ACL association, if it
#' has one
#'
#' @description
#' Disassociates the specified resource from its web ACL association, if it has one.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_disassociate_web_acl/](https://www.paws-r-sdk.com/docs/wafv2_disassociate_web_acl/) for full documentation.
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the resource to disassociate from the web ACL.
#' 
#' The ARN must be in one of the following formats:
#' 
#' -   For an Application Load Balancer: `arn:partition:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id `
#' 
#' -   For an Amazon API Gateway REST API: `arn:partition:apigateway:region::/restapis/api-id/stages/stage-name `
#' 
#' -   For an AppSync GraphQL API: `arn:partition:appsync:region:account-id:apis/GraphQLApiId `
#' 
#' -   For an Amazon Cognito user pool: `arn:partition:cognito-idp:region:account-id:userpool/user-pool-id `
#' 
#' -   For an App Runner service: `arn:partition:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id `
#' 
#' -   For an Amazon Web Services Verified Access instance: `arn:partition:ec2:region:account-id:verified-access-instance/instance-id `
#' 
#' -   For an Amplify application: `arn:partition:amplify:region:account-id:apps/app-id `
#' 
#' -   For an Amazon Bedrock AgentCore Gateway: `arn:partition:bedrock-agentcore:region:account-id:gateway/gateway-id `
#'
#' @keywords internal
#'
#' @rdname wafv2_disassociate_web_acl
wafv2_disassociate_web_acl <- function(ResourceArn) {
  op <- new_operation(
    name = "DisassociateWebACL",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$disassociate_web_acl_input(ResourceArn = ResourceArn)
  output <- .wafv2$disassociate_web_acl_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$disassociate_web_acl <- wafv2_disassociate_web_acl

#' Generates a presigned download URL for the specified release of the
#' mobile SDK
#'
#' @description
#' Generates a presigned download URL for the specified release of the mobile SDK.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_generate_mobile_sdk_release_url/](https://www.paws-r-sdk.com/docs/wafv2_generate_mobile_sdk_release_url/) for full documentation.
#'
#' @param Platform &#91;required&#93; The device platform.
#' @param ReleaseVersion &#91;required&#93; The release version. For the latest available version, specify `LATEST`.
#'
#' @keywords internal
#'
#' @rdname wafv2_generate_mobile_sdk_release_url
wafv2_generate_mobile_sdk_release_url <- function(Platform, ReleaseVersion) {
  op <- new_operation(
    name = "GenerateMobileSdkReleaseUrl",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$generate_mobile_sdk_release_url_input(Platform = Platform, ReleaseVersion = ReleaseVersion)
  output <- .wafv2$generate_mobile_sdk_release_url_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$generate_mobile_sdk_release_url <- wafv2_generate_mobile_sdk_release_url

#' Returns your API key in decrypted form
#'
#' @description
#' Returns your API key in decrypted form. Use this to check the token domains that you have defined for the key.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_decrypted_api_key/](https://www.paws-r-sdk.com/docs/wafv2_get_decrypted_api_key/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param APIKey &#91;required&#93; The encrypted API key.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_decrypted_api_key
wafv2_get_decrypted_api_key <- function(Scope, APIKey) {
  op <- new_operation(
    name = "GetDecryptedAPIKey",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_decrypted_api_key_input(Scope = Scope, APIKey = APIKey)
  output <- .wafv2$get_decrypted_api_key_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_decrypted_api_key <- wafv2_get_decrypted_api_key

#' Retrieves the specified IPSet
#'
#' @description
#' Retrieves the specified IPSet.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_ip_set/](https://www.paws-r-sdk.com/docs/wafv2_get_ip_set/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the IP set. You cannot change the name of an `IPSet` after you create it.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_ip_set
wafv2_get_ip_set <- function(Name, Scope, Id) {
  op <- new_operation(
    name = "GetIPSet",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_ip_set_input(Name = Name, Scope = Scope, Id = Id)
  output <- .wafv2$get_ip_set_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_ip_set <- wafv2_get_ip_set

#' Returns the LoggingConfiguration for the specified web ACL
#'
#' @description
#' Returns the LoggingConfiguration for the specified web ACL.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_logging_configuration/](https://www.paws-r-sdk.com/docs/wafv2_get_logging_configuration/) for full documentation.
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the web ACL for which you want to get the LoggingConfiguration.
#' @param LogType Used to distinguish between various logging options. Currently, there is one option.
#' 
#' Default: `WAF_LOGS`
#' @param LogScope The owner of the logging configuration, which must be set to `CUSTOMER` for the configurations that you manage.
#' 
#' The log scope `SECURITY_LAKE` indicates a configuration that is managed through Amazon Security Lake. You can use Security Lake to collect log and event data from various sources for normalization, analysis, and management. For information, see [Collecting data from Amazon Web Services services](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html) in the *Amazon Security Lake user guide*.
#' 
#' The log scope `CLOUDWATCH_TELEMETRY_RULE_MANAGED` indicates a configuration that is managed through Amazon CloudWatch Logs for telemetry data collection and analysis. For information, see [What is Amazon CloudWatch Logs ?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) in the *Amazon CloudWatch Logs user guide*.
#' 
#' Default: `CUSTOMER`
#'
#' @keywords internal
#'
#' @rdname wafv2_get_logging_configuration
wafv2_get_logging_configuration <- function(ResourceArn, LogType = NULL, LogScope = NULL) {
  op <- new_operation(
    name = "GetLoggingConfiguration",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_logging_configuration_input(ResourceArn = ResourceArn, LogType = LogType, LogScope = LogScope)
  output <- .wafv2$get_logging_configuration_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_logging_configuration <- wafv2_get_logging_configuration

#' Retrieves the specified managed rule set
#'
#' @description
#' Retrieves the specified managed rule set.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_managed_rule_set/](https://www.paws-r-sdk.com/docs/wafv2_get_managed_rule_set/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the managed rule set. You use this, along with the rule set ID, to identify the rule set.
#' 
#' This name is assigned to the corresponding managed rule group, which your customers can access and use.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; A unique identifier for the managed rule set. The ID is returned in the responses to commands like `list`. You provide it to operations like `get` and `update`.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_managed_rule_set
wafv2_get_managed_rule_set <- function(Name, Scope, Id) {
  op <- new_operation(
    name = "GetManagedRuleSet",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_managed_rule_set_input(Name = Name, Scope = Scope, Id = Id)
  output <- .wafv2$get_managed_rule_set_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_managed_rule_set <- wafv2_get_managed_rule_set

#' Retrieves information for the specified mobile SDK release, including
#' release notes and tags
#'
#' @description
#' Retrieves information for the specified mobile SDK release, including release notes and tags.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_mobile_sdk_release/](https://www.paws-r-sdk.com/docs/wafv2_get_mobile_sdk_release/) for full documentation.
#'
#' @param Platform &#91;required&#93; The device platform.
#' @param ReleaseVersion &#91;required&#93; The release version. For the latest available version, specify `LATEST`.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_mobile_sdk_release
wafv2_get_mobile_sdk_release <- function(Platform, ReleaseVersion) {
  op <- new_operation(
    name = "GetMobileSdkRelease",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_mobile_sdk_release_input(Platform = Platform, ReleaseVersion = ReleaseVersion)
  output <- .wafv2$get_mobile_sdk_release_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_mobile_sdk_release <- wafv2_get_mobile_sdk_release

#' Returns the IAM policy that is attached to the specified rule group
#'
#' @description
#' Returns the IAM policy that is attached to the specified rule group.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_permission_policy/](https://www.paws-r-sdk.com/docs/wafv2_get_permission_policy/) for full documentation.
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the rule group for which you want to get the policy.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_permission_policy
wafv2_get_permission_policy <- function(ResourceArn) {
  op <- new_operation(
    name = "GetPermissionPolicy",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_permission_policy_input(ResourceArn = ResourceArn)
  output <- .wafv2$get_permission_policy_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_permission_policy <- wafv2_get_permission_policy

#' Retrieves the IP addresses that are currently blocked by a rate-based
#' rule instance
#'
#' @description
#' Retrieves the IP addresses that are currently blocked by a rate-based rule instance. This is only available for rate-based rules that aggregate solely on the IP address or on the forwarded IP address.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_rate_based_statement_managed_keys/](https://www.paws-r-sdk.com/docs/wafv2_get_rate_based_statement_managed_keys/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param WebACLName &#91;required&#93; The name of the web ACL. You cannot change the name of a web ACL after you create it.
#' @param WebACLId &#91;required&#93; The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#' @param RuleGroupRuleName The name of the rule group reference statement in your web ACL. This is required only when you have the rate-based rule nested inside a rule group.
#' @param RuleName &#91;required&#93; The name of the rate-based rule to get the keys for. If you have the rule defined inside a rule group that you're using in your web ACL, also provide the name of the rule group reference statement in the request parameter `RuleGroupRuleName`.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_rate_based_statement_managed_keys
wafv2_get_rate_based_statement_managed_keys <- function(Scope, WebACLName, WebACLId, RuleGroupRuleName = NULL, RuleName) {
  op <- new_operation(
    name = "GetRateBasedStatementManagedKeys",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_rate_based_statement_managed_keys_input(Scope = Scope, WebACLName = WebACLName, WebACLId = WebACLId, RuleGroupRuleName = RuleGroupRuleName, RuleName = RuleName)
  output <- .wafv2$get_rate_based_statement_managed_keys_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_rate_based_statement_managed_keys <- wafv2_get_rate_based_statement_managed_keys

#' Retrieves the specified RegexPatternSet
#'
#' @description
#' Retrieves the specified RegexPatternSet.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_regex_pattern_set/](https://www.paws-r-sdk.com/docs/wafv2_get_regex_pattern_set/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the set. You cannot change the name after you create the set.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_regex_pattern_set
wafv2_get_regex_pattern_set <- function(Name, Scope, Id) {
  op <- new_operation(
    name = "GetRegexPatternSet",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_regex_pattern_set_input(Name = Name, Scope = Scope, Id = Id)
  output <- .wafv2$get_regex_pattern_set_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_regex_pattern_set <- wafv2_get_regex_pattern_set

#' Retrieves ranked monetization statistics
#'
#' @description
#' Retrieves ranked monetization statistics. Use the `StatisticType` parameter to specify the ranking: `TOP_SOURCES_BY_REVENUE` for top sources by revenue, or `TOP_PATHS_BY_REVENUE` for top content paths by revenue. This operation is only available for `CLOUDFRONT` scope. The maximum supported time window is 90 days. When no `CurrencyMode` filter is provided, results default to `REAL`. To retrieve test data, include a `CurrencyMode` filter with the value `TEST`.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_revenue_statistics/](https://www.paws-r-sdk.com/docs/wafv2_get_revenue_statistics/) for full documentation.
#'
#' @param StatisticType &#91;required&#93; `TOP_SOURCES_BY_REVENUE` ranks revenue from AI bot traffic, grouped by the dimension you specify in the `GroupBy` parameter (`NAME`, `CATEGORY`, `INTENT`, `ORGANIZATION`, or `WEBACL`); `GroupBy` is required for this statistic type. `TOP_PATHS_BY_REVENUE` ranks revenue by path.
#' @param TimeWindow &#91;required&#93; The time range for the query. Specify start and end timestamps.
#' @param Scope &#91;required&#93; Specifies whether this is for a Amazon CloudFront distribution (`CLOUDFRONT`) or for a regional application (`REGIONAL`).
#' @param Currency &#91;required&#93; The currency for the revenue amounts in the response.
#' @param GroupBy The dimension to group results by: `NAME`, `CATEGORY`, `INTENT`, `ORGANIZATION`, or `WEBACL`. Required when `StatisticType` is `TOP_SOURCES_BY_REVENUE`. Not required for `TOP_PATHS_BY_REVENUE`, where results are grouped by content path. If `StatisticType` is `TOP_SOURCES_BY_REVENUE` and `GroupBy` is omitted, the request is rejected with a `WAFInvalidParameterException`.
#' @param Filters Optional filters to narrow the results.
#' @param NextMarker When you get a paginated response, this marker indicates that additional results are available. Use it in a subsequent request to retrieve the next page of results.
#' @param Limit The maximum number of results to return.
#' @param SortBy The field to sort results by: `REVENUE`, `PERCENTAGE`, or `NAME`.
#' @param SortOrder The sort order: `ASC` for ascending or `DESC` for descending.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_revenue_statistics
wafv2_get_revenue_statistics <- function(StatisticType, TimeWindow, Scope, Currency, GroupBy = NULL, Filters = NULL, NextMarker = NULL, Limit = NULL, SortBy = NULL, SortOrder = NULL) {
  op <- new_operation(
    name = "GetRevenueStatistics",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_revenue_statistics_input(StatisticType = StatisticType, TimeWindow = TimeWindow, Scope = Scope, Currency = Currency, GroupBy = GroupBy, Filters = Filters, NextMarker = NextMarker, Limit = Limit, SortBy = SortBy, SortOrder = SortOrder)
  output <- .wafv2$get_revenue_statistics_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_revenue_statistics <- wafv2_get_revenue_statistics

#' Retrieves a summary of monetization revenue for the specified time
#' window
#'
#' @description
#' Retrieves a summary of monetization revenue for the specified time window. Returns total revenue, revenue by verification tier, total settlements, and total HTTP 402 responses served. This operation is only available for `CLOUDFRONT` scope. The maximum supported time window is 90 days. When no `CurrencyMode` filter is provided, results default to `REAL`. To retrieve test data, include a `CurrencyMode` filter with the value `TEST`.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_revenue_statistics_summary/](https://www.paws-r-sdk.com/docs/wafv2_get_revenue_statistics_summary/) for full documentation.
#'
#' @param TimeWindow &#91;required&#93; The time range for the revenue summary query. Specify start and end timestamps.
#' @param Scope &#91;required&#93; Specifies whether this is for a Amazon CloudFront distribution (`CLOUDFRONT`) or for a regional application (`REGIONAL`). AI bot monetization is only available for `CLOUDFRONT` scope.
#' @param Currency &#91;required&#93; The currency for the revenue amounts in the response. Currently only `USDC` is supported.
#' @param Filters Optional filters to narrow the results. You can filter by source name, category, organization, intent, verified status, content path, web ACL ARN, or currency mode.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_revenue_statistics_summary
wafv2_get_revenue_statistics_summary <- function(TimeWindow, Scope, Currency, Filters = NULL) {
  op <- new_operation(
    name = "GetRevenueStatisticsSummary",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_revenue_statistics_summary_input(TimeWindow = TimeWindow, Scope = Scope, Currency = Currency, Filters = Filters)
  output <- .wafv2$get_revenue_statistics_summary_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_revenue_statistics_summary <- wafv2_get_revenue_statistics_summary

#' Retrieves time series data for monetization revenue
#'
#' @description
#' Retrieves time series data for monetization revenue. Returns data points aggregated at the specified interval for the given time window. This operation is only available for `CLOUDFRONT` scope. The maximum supported time window is 90 days. When no `CurrencyMode` filter is provided, results default to `REAL`. To retrieve test data, include a `CurrencyMode` filter with the value `TEST`.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_revenue_statistics_time_series/](https://www.paws-r-sdk.com/docs/wafv2_get_revenue_statistics_time_series/) for full documentation.
#'
#' @param StatisticType &#91;required&#93; The type of time series data to retrieve: `DATE_HISTOGRAM` for revenue over time, or `PAYMENT_TRAFFIC` for payment traffic patterns.
#' @param TimeWindow &#91;required&#93; The time range for the query. Specify start and end timestamps.
#' @param Scope &#91;required&#93; Specifies whether this is for a Amazon CloudFront distribution (`CLOUDFRONT`) or for a regional application (`REGIONAL`).
#' @param Interval &#91;required&#93; The time interval for aggregating data points: `MINUTELY`, `FIVE_MINUTELY`, `HOURLY`, or `DAILY`.
#' @param Currency &#91;required&#93; The currency for the amounts in the response.
#' @param GroupBy The dimension to group results by.
#' @param Filters Optional filters to narrow the results.
#' @param Limit The maximum number of data points to return. Minimum: 1. Maximum: 10000.
#' @param NextMarker When you get a paginated response, this marker indicates that additional results are available.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_revenue_statistics_time_series
wafv2_get_revenue_statistics_time_series <- function(StatisticType, TimeWindow, Scope, Interval, Currency, GroupBy = NULL, Filters = NULL, Limit = NULL, NextMarker = NULL) {
  op <- new_operation(
    name = "GetRevenueStatisticsTimeSeries",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_revenue_statistics_time_series_input(StatisticType = StatisticType, TimeWindow = TimeWindow, Scope = Scope, Interval = Interval, Currency = Currency, GroupBy = GroupBy, Filters = Filters, Limit = Limit, NextMarker = NextMarker)
  output <- .wafv2$get_revenue_statistics_time_series_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_revenue_statistics_time_series <- wafv2_get_revenue_statistics_time_series

#' Retrieves the specified RuleGroup
#'
#' @description
#' Retrieves the specified RuleGroup.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_rule_group/](https://www.paws-r-sdk.com/docs/wafv2_get_rule_group/) for full documentation.
#'
#' @param Name The name of the rule group. You cannot change the name of a rule group after you create it.
#' @param Scope Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#' @param ARN The Amazon Resource Name (ARN) of the entity.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_rule_group
wafv2_get_rule_group <- function(Name = NULL, Scope = NULL, Id = NULL, ARN = NULL) {
  op <- new_operation(
    name = "GetRuleGroup",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_rule_group_input(Name = Name, Scope = Scope, Id = Id, ARN = ARN)
  output <- .wafv2$get_rule_group_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_rule_group <- wafv2_get_rule_group

#' Gets detailed information about a specified number of requests--a
#' sample--that WAF randomly selects from among the first 5,000 requests
#' that your Amazon Web Services resource received during a time range that
#' you choose
#'
#' @description
#' Gets detailed information about a specified number of requests--a sample--that WAF randomly selects from among the first 5,000 requests that your Amazon Web Services 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.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_sampled_requests/](https://www.paws-r-sdk.com/docs/wafv2_get_sampled_requests/) for full documentation.
#'
#' @param WebAclArn &#91;required&#93; The Amazon resource name (ARN) of the `WebACL` for which you want a sample of requests.
#' @param RuleMetricName &#91;required&#93; The metric name assigned to the `Rule` or `RuleGroup` dimension for which you want a sample of requests.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param TimeWindow &#91;required&#93; The start date and time and the end date and time of the range for which you want [`get_sampled_requests`][wafv2_get_sampled_requests] to return a sample of requests. You must specify the times in Coordinated Universal Time (UTC) format. UTC format includes the special designator, `Z`. For example, `"2016-09-27T14:50Z"`. You can specify any time range in the previous three hours. If you specify a start time that's earlier than three hours ago, WAF sets it to three hours ago.
#' @param MaxItems &#91;required&#93; The number of requests that you want WAF to return from among the first 5,000 requests that your Amazon Web Services resource received during the time range. If your resource received fewer requests than the value of `MaxItems`, [`get_sampled_requests`][wafv2_get_sampled_requests] returns information about all of them.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_sampled_requests
wafv2_get_sampled_requests <- function(WebAclArn, RuleMetricName, Scope, TimeWindow, MaxItems) {
  op <- new_operation(
    name = "GetSampledRequests",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_sampled_requests_input(WebAclArn = WebAclArn, RuleMetricName = RuleMetricName, Scope = Scope, TimeWindow = TimeWindow, MaxItems = MaxItems)
  output <- .wafv2$get_sampled_requests_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_sampled_requests <- wafv2_get_sampled_requests

#' Retrieves aggregated statistics about the top URI paths accessed by bot
#' traffic for a specified web ACL and time window
#'
#' @description
#' Retrieves aggregated statistics about the top URI paths accessed by bot traffic for a specified web ACL and time window. You can use this operation to analyze which paths on your web application receive the most bot traffic and identify the specific bots accessing those paths. The operation supports filtering by bot category, organization, or name, and allows you to drill down into specific path prefixes to view detailed URI-level statistics.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_top_path_statistics_by_traffic/](https://www.paws-r-sdk.com/docs/wafv2_get_top_path_statistics_by_traffic/) for full documentation.
#'
#' @param WebAclArn &#91;required&#93; The Amazon Resource Name (ARN) of the web ACL for which you want to retrieve path statistics.
#' @param Scope &#91;required&#93; Specifies whether the web ACL is for an Amazon Web Services CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer, an AppSync GraphQL API, an Amazon Cognito user pool, an Amazon Web Services App Runner service, or an Amazon Web Services Verified Access instance.
#' @param UriPathPrefix A URI path prefix to filter the results. When you specify this parameter, the operation returns statistics for individual URIs within the specified path prefix. For example, if you specify `/api`, the response includes statistics for paths like `/api/v1/users` and `/api/v2/orders`. If you don't specify this parameter, the operation returns top-level path statistics.
#' @param TimeWindow &#91;required&#93; The time window for which you want to retrieve path statistics. The time window must be within the data retention period for your web ACL.
#' @param BotCategory Filters the results to include only traffic from bots in the specified category. For example, you can filter by `ai` to see only AI crawler traffic, or `search_engine` to see only search engine bot traffic. When you apply this filter, the `Source` field is populated in the response.
#' @param BotOrganization Filters the results to include only traffic from bots belonging to the specified organization. For example, you can filter by `openai` or `google`. When you apply this filter, the `Source` field is populated in the response.
#' @param BotName Filters the results to include only traffic from the specified bot. For example, you can filter by `gptbot` or `googlebot`. When you apply this filter, the `Source` field is populated in the response.
#' @param Limit &#91;required&#93; The maximum number of path statistics to return. Valid values are 1 to 100.
#' @param NumberOfTopTrafficBotsPerPath &#91;required&#93; The maximum number of top bots to include in the statistics for each path. Valid values are 1 to 10.
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_top_path_statistics_by_traffic
wafv2_get_top_path_statistics_by_traffic <- function(WebAclArn, Scope, UriPathPrefix = NULL, TimeWindow, BotCategory = NULL, BotOrganization = NULL, BotName = NULL, Limit, NumberOfTopTrafficBotsPerPath, NextMarker = NULL) {
  op <- new_operation(
    name = "GetTopPathStatisticsByTraffic",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_top_path_statistics_by_traffic_input(WebAclArn = WebAclArn, Scope = Scope, UriPathPrefix = UriPathPrefix, TimeWindow = TimeWindow, BotCategory = BotCategory, BotOrganization = BotOrganization, BotName = BotName, Limit = Limit, NumberOfTopTrafficBotsPerPath = NumberOfTopTrafficBotsPerPath, NextMarker = NextMarker)
  output <- .wafv2$get_top_path_statistics_by_traffic_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_top_path_statistics_by_traffic <- wafv2_get_top_path_statistics_by_traffic

#' Retrieves the specified WebACL
#'
#' @description
#' Retrieves the specified WebACL.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_web_acl/](https://www.paws-r-sdk.com/docs/wafv2_get_web_acl/) for full documentation.
#'
#' @param Name The name of the web ACL. You cannot change the name of a web ACL after you create it.
#' @param Scope Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#' @param ARN The Amazon Resource Name (ARN) of the web ACL that you want to retrieve.
#'
#' @keywords internal
#'
#' @rdname wafv2_get_web_acl
wafv2_get_web_acl <- function(Name = NULL, Scope = NULL, Id = NULL, ARN = NULL) {
  op <- new_operation(
    name = "GetWebACL",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_web_acl_input(Name = Name, Scope = Scope, Id = Id, ARN = ARN)
  output <- .wafv2$get_web_acl_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_web_acl <- wafv2_get_web_acl

#' Retrieves the WebACL for the specified resource
#'
#' @description
#' Retrieves the WebACL for the specified resource.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_get_web_acl_for_resource/](https://www.paws-r-sdk.com/docs/wafv2_get_web_acl_for_resource/) for full documentation.
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the resource whose web ACL you want to retrieve.
#' 
#' The ARN must be in one of the following formats:
#' 
#' -   For an Application Load Balancer: `arn:partition:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id `
#' 
#' -   For an Amazon API Gateway REST API: `arn:partition:apigateway:region::/restapis/api-id/stages/stage-name `
#' 
#' -   For an AppSync GraphQL API: `arn:partition:appsync:region:account-id:apis/GraphQLApiId `
#' 
#' -   For an Amazon Cognito user pool: `arn:partition:cognito-idp:region:account-id:userpool/user-pool-id `
#' 
#' -   For an App Runner service: `arn:partition:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id `
#' 
#' -   For an Amazon Web Services Verified Access instance: `arn:partition:ec2:region:account-id:verified-access-instance/instance-id `
#' 
#' -   For an Amplify application: `arn:partition:amplify:region:account-id:apps/app-id `
#' 
#' -   For an Amazon Bedrock AgentCore Gateway: `arn:partition:bedrock-agentcore:region:account-id:gateway/gateway-id `
#'
#' @keywords internal
#'
#' @rdname wafv2_get_web_acl_for_resource
wafv2_get_web_acl_for_resource <- function(ResourceArn) {
  op <- new_operation(
    name = "GetWebACLForResource",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$get_web_acl_for_resource_input(ResourceArn = ResourceArn)
  output <- .wafv2$get_web_acl_for_resource_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$get_web_acl_for_resource <- wafv2_get_web_acl_for_resource

#' Retrieves a list of the API keys that you've defined for the specified
#' scope
#'
#' @description
#' Retrieves a list of the API keys that you've defined for the specified scope.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_api_keys/](https://www.paws-r-sdk.com/docs/wafv2_list_api_keys/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#' @param Limit The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a `NextMarker` value that you can use in a subsequent call to get the next batch of objects.
#'
#' @keywords internal
#'
#' @rdname wafv2_list_api_keys
wafv2_list_api_keys <- function(Scope, NextMarker = NULL, Limit = NULL) {
  op <- new_operation(
    name = "ListAPIKeys",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_api_keys_input(Scope = Scope, NextMarker = NextMarker, Limit = Limit)
  output <- .wafv2$list_api_keys_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_api_keys <- wafv2_list_api_keys

#' Returns a list of the available versions for the specified managed rule
#' group
#'
#' @description
#' Returns a list of the available versions for the specified managed rule group.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_available_managed_rule_group_versions/](https://www.paws-r-sdk.com/docs/wafv2_list_available_managed_rule_group_versions/) for full documentation.
#'
#' @param VendorName &#91;required&#93; The name of the managed rule group vendor. You use this, along with the rule group name, to identify a rule group.
#' @param Name &#91;required&#93; The name of the managed rule group. You use this, along with the vendor name, to identify the rule group.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#' @param Limit The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a `NextMarker` value that you can use in a subsequent call to get the next batch of objects.
#'
#' @keywords internal
#'
#' @rdname wafv2_list_available_managed_rule_group_versions
wafv2_list_available_managed_rule_group_versions <- function(VendorName, Name, Scope, NextMarker = NULL, Limit = NULL) {
  op <- new_operation(
    name = "ListAvailableManagedRuleGroupVersions",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_available_managed_rule_group_versions_input(VendorName = VendorName, Name = Name, Scope = Scope, NextMarker = NextMarker, Limit = Limit)
  output <- .wafv2$list_available_managed_rule_group_versions_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_available_managed_rule_group_versions <- wafv2_list_available_managed_rule_group_versions

#' Retrieves an array of managed rule groups that are available for you to
#' use
#'
#' @description
#' Retrieves an array of managed rule groups that are available for you to use. This list includes all Amazon Web Services Managed Rules rule groups and all of the Amazon Web Services Marketplace managed rule groups that you're subscribed to.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_available_managed_rule_groups/](https://www.paws-r-sdk.com/docs/wafv2_list_available_managed_rule_groups/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#' @param Limit The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a `NextMarker` value that you can use in a subsequent call to get the next batch of objects.
#'
#' @keywords internal
#'
#' @rdname wafv2_list_available_managed_rule_groups
wafv2_list_available_managed_rule_groups <- function(Scope, NextMarker = NULL, Limit = NULL) {
  op <- new_operation(
    name = "ListAvailableManagedRuleGroups",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_available_managed_rule_groups_input(Scope = Scope, NextMarker = NextMarker, Limit = Limit)
  output <- .wafv2$list_available_managed_rule_groups_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_available_managed_rule_groups <- wafv2_list_available_managed_rule_groups

#' Retrieves an array of IPSetSummary objects for the IP sets that you
#' manage
#'
#' @description
#' Retrieves an array of IPSetSummary objects for the IP sets that you manage.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_ip_sets/](https://www.paws-r-sdk.com/docs/wafv2_list_ip_sets/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#' @param Limit The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a `NextMarker` value that you can use in a subsequent call to get the next batch of objects.
#'
#' @keywords internal
#'
#' @rdname wafv2_list_ip_sets
wafv2_list_ip_sets <- function(Scope, NextMarker = NULL, Limit = NULL) {
  op <- new_operation(
    name = "ListIPSets",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_ip_sets_input(Scope = Scope, NextMarker = NextMarker, Limit = Limit)
  output <- .wafv2$list_ip_sets_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_ip_sets <- wafv2_list_ip_sets

#' Retrieves an array of your LoggingConfiguration objects
#'
#' @description
#' Retrieves an array of your LoggingConfiguration objects.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_logging_configurations/](https://www.paws-r-sdk.com/docs/wafv2_list_logging_configurations/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#' @param Limit The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a `NextMarker` value that you can use in a subsequent call to get the next batch of objects.
#' @param LogScope The owner of the logging configuration, which must be set to `CUSTOMER` for the configurations that you manage.
#' 
#' The log scope `SECURITY_LAKE` indicates a configuration that is managed through Amazon Security Lake. You can use Security Lake to collect log and event data from various sources for normalization, analysis, and management. For information, see [Collecting data from Amazon Web Services services](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html) in the *Amazon Security Lake user guide*.
#' 
#' The log scope `CLOUDWATCH_TELEMETRY_RULE_MANAGED` indicates a configuration that is managed through Amazon CloudWatch Logs for telemetry data collection and analysis. For information, see [What is Amazon CloudWatch Logs ?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) in the *Amazon CloudWatch Logs user guide*.
#' 
#' Default: `CUSTOMER`
#'
#' @keywords internal
#'
#' @rdname wafv2_list_logging_configurations
wafv2_list_logging_configurations <- function(Scope, NextMarker = NULL, Limit = NULL, LogScope = NULL) {
  op <- new_operation(
    name = "ListLoggingConfigurations",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_logging_configurations_input(Scope = Scope, NextMarker = NextMarker, Limit = Limit, LogScope = LogScope)
  output <- .wafv2$list_logging_configurations_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_logging_configurations <- wafv2_list_logging_configurations

#' Retrieves the managed rule sets that you own
#'
#' @description
#' Retrieves the managed rule sets that you own.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_managed_rule_sets/](https://www.paws-r-sdk.com/docs/wafv2_list_managed_rule_sets/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#' @param Limit The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a `NextMarker` value that you can use in a subsequent call to get the next batch of objects.
#'
#' @keywords internal
#'
#' @rdname wafv2_list_managed_rule_sets
wafv2_list_managed_rule_sets <- function(Scope, NextMarker = NULL, Limit = NULL) {
  op <- new_operation(
    name = "ListManagedRuleSets",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_managed_rule_sets_input(Scope = Scope, NextMarker = NextMarker, Limit = Limit)
  output <- .wafv2$list_managed_rule_sets_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_managed_rule_sets <- wafv2_list_managed_rule_sets

#' Retrieves a list of the available releases for the mobile SDK and the
#' specified device platform
#'
#' @description
#' Retrieves a list of the available releases for the mobile SDK and the specified device platform.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_mobile_sdk_releases/](https://www.paws-r-sdk.com/docs/wafv2_list_mobile_sdk_releases/) for full documentation.
#'
#' @param Platform &#91;required&#93; The device platform to retrieve the list for.
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#' @param Limit The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a `NextMarker` value that you can use in a subsequent call to get the next batch of objects.
#'
#' @keywords internal
#'
#' @rdname wafv2_list_mobile_sdk_releases
wafv2_list_mobile_sdk_releases <- function(Platform, NextMarker = NULL, Limit = NULL) {
  op <- new_operation(
    name = "ListMobileSdkReleases",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_mobile_sdk_releases_input(Platform = Platform, NextMarker = NextMarker, Limit = Limit)
  output <- .wafv2$list_mobile_sdk_releases_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_mobile_sdk_releases <- wafv2_list_mobile_sdk_releases

#' Retrieves an array of RegexPatternSetSummary objects for the regex
#' pattern sets that you manage
#'
#' @description
#' Retrieves an array of RegexPatternSetSummary objects for the regex pattern sets that you manage.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_regex_pattern_sets/](https://www.paws-r-sdk.com/docs/wafv2_list_regex_pattern_sets/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#' @param Limit The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a `NextMarker` value that you can use in a subsequent call to get the next batch of objects.
#'
#' @keywords internal
#'
#' @rdname wafv2_list_regex_pattern_sets
wafv2_list_regex_pattern_sets <- function(Scope, NextMarker = NULL, Limit = NULL) {
  op <- new_operation(
    name = "ListRegexPatternSets",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_regex_pattern_sets_input(Scope = Scope, NextMarker = NextMarker, Limit = Limit)
  output <- .wafv2$list_regex_pattern_sets_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_regex_pattern_sets <- wafv2_list_regex_pattern_sets

#' Retrieves an array of the Amazon Resource Names (ARNs) for the resources
#' that are associated with the specified web ACL
#'
#' @description
#' Retrieves an array of the Amazon Resource Names (ARNs) for the resources that are associated with the specified web ACL.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_resources_for_web_acl/](https://www.paws-r-sdk.com/docs/wafv2_list_resources_for_web_acl/) for full documentation.
#'
#' @param WebACLArn &#91;required&#93; The Amazon Resource Name (ARN) of the web ACL.
#' @param ResourceType Retrieves the web ACLs that are used by the specified resource type.
#' 
#' For Amazon CloudFront, don't use this call. Instead, use the CloudFront call `ListDistributionsByWebACLId`. For information, see [ListDistributionsByWebACLId](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListDistributionsByWebACLId.html) in the *Amazon CloudFront API Reference*.
#' 
#' If you don't provide a resource type, the call uses the resource type `APPLICATION_LOAD_BALANCER`.
#' 
#' Default: `APPLICATION_LOAD_BALANCER`
#'
#' @keywords internal
#'
#' @rdname wafv2_list_resources_for_web_acl
wafv2_list_resources_for_web_acl <- function(WebACLArn, ResourceType = NULL) {
  op <- new_operation(
    name = "ListResourcesForWebACL",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_resources_for_web_acl_input(WebACLArn = WebACLArn, ResourceType = ResourceType)
  output <- .wafv2$list_resources_for_web_acl_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_resources_for_web_acl <- wafv2_list_resources_for_web_acl

#' Retrieves an array of RuleGroupSummary objects for the rule groups that
#' you manage
#'
#' @description
#' Retrieves an array of RuleGroupSummary objects for the rule groups that you manage.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_rule_groups/](https://www.paws-r-sdk.com/docs/wafv2_list_rule_groups/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#' @param Limit The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a `NextMarker` value that you can use in a subsequent call to get the next batch of objects.
#'
#' @keywords internal
#'
#' @rdname wafv2_list_rule_groups
wafv2_list_rule_groups <- function(Scope, NextMarker = NULL, Limit = NULL) {
  op <- new_operation(
    name = "ListRuleGroups",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_rule_groups_input(Scope = Scope, NextMarker = NextMarker, Limit = Limit)
  output <- .wafv2$list_rule_groups_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_rule_groups <- wafv2_list_rule_groups

#' Retrieves individual settlement transaction records for monetization
#'
#' @description
#' Retrieves individual settlement transaction records for monetization. Each record represents a single payment transaction between a client and your protected resource. This operation is only available for `CLOUDFRONT` scope. The maximum supported time window is 90 days. When no `CurrencyMode` filter is provided, results default to `REAL`. To retrieve test data, include a `CurrencyMode` filter with the value `TEST`.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_settlement_records/](https://www.paws-r-sdk.com/docs/wafv2_list_settlement_records/) for full documentation.
#'
#' @param TimeWindow &#91;required&#93; The time range for the query. Specify start and end timestamps.
#' @param Scope &#91;required&#93; Specifies whether this is for a Amazon CloudFront distribution (`CLOUDFRONT`) or for a regional application (`REGIONAL`).
#' @param Currency &#91;required&#93; The currency for the amounts in the response.
#' @param Filters Optional filters to narrow the results. You can filter by payer address, status, source name, network, or other settlement fields.
#' @param SortBy The field to sort settlement records by: `TIMESTAMP`, `AMOUNT`, `NAME`, or `STATUS`.
#' @param SortOrder The sort order: `ASC` for ascending or `DESC` for descending.
#' @param Limit The maximum number of settlement records to return. Minimum: 1. Maximum: 100.
#' @param NextMarker When you get a paginated response, this marker indicates that additional results are available.
#'
#' @keywords internal
#'
#' @rdname wafv2_list_settlement_records
wafv2_list_settlement_records <- function(TimeWindow, Scope, Currency, Filters = NULL, SortBy = NULL, SortOrder = NULL, Limit = NULL, NextMarker = NULL) {
  op <- new_operation(
    name = "ListSettlementRecords",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_settlement_records_input(TimeWindow = TimeWindow, Scope = Scope, Currency = Currency, Filters = Filters, SortBy = SortBy, SortOrder = SortOrder, Limit = Limit, NextMarker = NextMarker)
  output <- .wafv2$list_settlement_records_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_settlement_records <- wafv2_list_settlement_records

#' Retrieves the TagInfoForResource for the specified resource
#'
#' @description
#' Retrieves the TagInfoForResource for the specified 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 Amazon Web Services resource, up to 50 tags for a resource.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_tags_for_resource/](https://www.paws-r-sdk.com/docs/wafv2_list_tags_for_resource/) for full documentation.
#'
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#' @param Limit The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a `NextMarker` value that you can use in a subsequent call to get the next batch of objects.
#' @param ResourceARN &#91;required&#93; The Amazon Resource Name (ARN) of the resource.
#'
#' @keywords internal
#'
#' @rdname wafv2_list_tags_for_resource
wafv2_list_tags_for_resource <- function(NextMarker = NULL, Limit = NULL, ResourceARN) {
  op <- new_operation(
    name = "ListTagsForResource",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_tags_for_resource_input(NextMarker = NextMarker, Limit = Limit, ResourceARN = ResourceARN)
  output <- .wafv2$list_tags_for_resource_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_tags_for_resource <- wafv2_list_tags_for_resource

#' Retrieves an array of WebACLSummary objects for the web ACLs that you
#' manage
#'
#' @description
#' Retrieves an array of WebACLSummary objects for the web ACLs that you manage.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_list_web_ac_ls/](https://www.paws-r-sdk.com/docs/wafv2_list_web_ac_ls/) for full documentation.
#'
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param NextMarker When you request a list of objects with a `Limit` setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a `NextMarker` value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.
#' @param Limit The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a `NextMarker` value that you can use in a subsequent call to get the next batch of objects.
#'
#' @keywords internal
#'
#' @rdname wafv2_list_web_ac_ls
wafv2_list_web_ac_ls <- function(Scope, NextMarker = NULL, Limit = NULL) {
  op <- new_operation(
    name = "ListWebACLs",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$list_web_ac_ls_input(Scope = Scope, NextMarker = NextMarker, Limit = Limit)
  output <- .wafv2$list_web_ac_ls_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$list_web_ac_ls <- wafv2_list_web_ac_ls

#' Enables the specified LoggingConfiguration, to start logging from a web
#' ACL, according to the configuration provided
#'
#' @description
#' Enables the specified LoggingConfiguration, to start logging from a web ACL, according to the configuration provided.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_put_logging_configuration/](https://www.paws-r-sdk.com/docs/wafv2_put_logging_configuration/) for full documentation.
#'
#' @param LoggingConfiguration &#91;required&#93; 
#'
#' @keywords internal
#'
#' @rdname wafv2_put_logging_configuration
wafv2_put_logging_configuration <- function(LoggingConfiguration) {
  op <- new_operation(
    name = "PutLoggingConfiguration",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$put_logging_configuration_input(LoggingConfiguration = LoggingConfiguration)
  output <- .wafv2$put_logging_configuration_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$put_logging_configuration <- wafv2_put_logging_configuration

#' Defines the versions of your managed rule set that you are offering to
#' the customers
#'
#' @description
#' Defines the versions of your managed rule set that you are offering to the customers. Customers see your offerings as managed rule groups with versioning.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_put_managed_rule_set_versions/](https://www.paws-r-sdk.com/docs/wafv2_put_managed_rule_set_versions/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the managed rule set. You use this, along with the rule set ID, to identify the rule set.
#' 
#' This name is assigned to the corresponding managed rule group, which your customers can access and use.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; A unique identifier for the managed rule set. The ID is returned in the responses to commands like `list`. You provide it to operations like `get` and `update`.
#' @param LockToken &#91;required&#93; A token used for optimistic locking. WAF returns a token to your `get` and `list` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like `update` and `delete`. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a `WAFOptimisticLockException`. If this happens, perform another `get`, and use the new token returned by that operation.
#' @param RecommendedVersion The version of the named managed rule group that you'd like your customers to choose, from among your version offerings.
#' @param VersionsToPublish The versions of the named managed rule group that you want to offer to your customers.
#'
#' @keywords internal
#'
#' @rdname wafv2_put_managed_rule_set_versions
wafv2_put_managed_rule_set_versions <- function(Name, Scope, Id, LockToken, RecommendedVersion = NULL, VersionsToPublish = NULL) {
  op <- new_operation(
    name = "PutManagedRuleSetVersions",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$put_managed_rule_set_versions_input(Name = Name, Scope = Scope, Id = Id, LockToken = LockToken, RecommendedVersion = RecommendedVersion, VersionsToPublish = VersionsToPublish)
  output <- .wafv2$put_managed_rule_set_versions_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$put_managed_rule_set_versions <- wafv2_put_managed_rule_set_versions

#' Use this to share a rule group with other accounts
#'
#' @description
#' Use this to share a rule group with other accounts.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_put_permission_policy/](https://www.paws-r-sdk.com/docs/wafv2_put_permission_policy/) for full documentation.
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the RuleGroup to which you want to attach the policy.
#' @param Policy &#91;required&#93; The policy to attach to the specified rule group.
#' 
#' The policy specifications must conform to the following:
#' 
#' -   The policy must be composed using IAM Policy version 2012-10-17.
#' 
#' -   The policy must include specifications for `Effect`, `Action`, and `Principal`.
#' 
#' -   `Effect` must specify `Allow`.
#' 
#' -   `Action` must specify `wafv2:CreateWebACL`, `wafv2:UpdateWebACL`, and `wafv2:PutFirewallManagerRuleGroups` and may optionally specify `wafv2:GetRuleGroup`. WAF rejects any extra actions or wildcard actions in the policy.
#' 
#' -   The policy must not include a `Resource` parameter.
#' 
#' For more information, see [IAM Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).
#'
#' @keywords internal
#'
#' @rdname wafv2_put_permission_policy
wafv2_put_permission_policy <- function(ResourceArn, Policy) {
  op <- new_operation(
    name = "PutPermissionPolicy",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$put_permission_policy_input(ResourceArn = ResourceArn, Policy = Policy)
  output <- .wafv2$put_permission_policy_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$put_permission_policy <- wafv2_put_permission_policy

#' Associates tags with the specified Amazon Web Services resource
#'
#' @description
#' Associates tags with the specified Amazon Web Services 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 Amazon Web Services resource, up to 50 tags for a resource.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_tag_resource/](https://www.paws-r-sdk.com/docs/wafv2_tag_resource/) for full documentation.
#'
#' @param ResourceARN &#91;required&#93; The Amazon Resource Name (ARN) of the resource.
#' @param Tags &#91;required&#93; An array of key:value pairs to associate with the resource.
#'
#' @keywords internal
#'
#' @rdname wafv2_tag_resource
wafv2_tag_resource <- function(ResourceARN, Tags) {
  op <- new_operation(
    name = "TagResource",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$tag_resource_input(ResourceARN = ResourceARN, Tags = Tags)
  output <- .wafv2$tag_resource_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$tag_resource <- wafv2_tag_resource

#' Disassociates tags from an Amazon Web Services resource
#'
#' @description
#' Disassociates tags from an Amazon Web Services resource. Tags are key:value pairs that you can associate with Amazon Web Services resources. For example, the tag key might be "customer" and the tag value might be "companyA." You can specify one or more tags to add to each container. You can add up to 50 tags to each Amazon Web Services resource.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_untag_resource/](https://www.paws-r-sdk.com/docs/wafv2_untag_resource/) for full documentation.
#'
#' @param ResourceARN &#91;required&#93; The Amazon Resource Name (ARN) of the resource.
#' @param TagKeys &#91;required&#93; An array of keys identifying the tags to disassociate from the resource.
#'
#' @keywords internal
#'
#' @rdname wafv2_untag_resource
wafv2_untag_resource <- function(ResourceARN, TagKeys) {
  op <- new_operation(
    name = "UntagResource",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$untag_resource_input(ResourceARN = ResourceARN, TagKeys = TagKeys)
  output <- .wafv2$untag_resource_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$untag_resource <- wafv2_untag_resource

#' Updates the specified IPSet
#'
#' @description
#' Updates the specified IPSet.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_update_ip_set/](https://www.paws-r-sdk.com/docs/wafv2_update_ip_set/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the IP set. You cannot change the name of an `IPSet` after you create it.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#' @param Description A description of the IP set that helps with identification.
#' @param Addresses &#91;required&#93; Contains an array of strings that specifies zero or more IP addresses or blocks of IP addresses that you want WAF to inspect for in incoming requests. All addresses must be specified using Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for `/0`.
#' 
#' Example address strings:
#' 
#' -   For requests that originated from the IP address 192.0.2.44, specify `192.0.2.44/32`.
#' 
#' -   For requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify `192.0.2.0/24`.
#' 
#' -   For requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify `1111:0000:0000:0000:0000:0000:0000:0111/128`.
#' 
#' -   For requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify `1111:0000:0000:0000:0000:0000:0000:0000/64`.
#' 
#' For more information about CIDR notation, see the Wikipedia entry [Classless Inter-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
#' 
#' Example JSON `Addresses` specifications:
#' 
#' -   Empty array: `"Addresses": []`
#' 
#' -   Array with one address: `"Addresses": ["192.0.2.44/32"]`
#' 
#' -   Array with three addresses: `"Addresses": ["192.0.2.44/32", "192.0.2.0/24", "192.0.0.0/16"]`
#' 
#' -   INVALID specification: `"Addresses": [""]` INVALID
#' @param LockToken &#91;required&#93; A token used for optimistic locking. WAF returns a token to your `get` and `list` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like `update` and `delete`. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a `WAFOptimisticLockException`. If this happens, perform another `get`, and use the new token returned by that operation.
#'
#' @keywords internal
#'
#' @rdname wafv2_update_ip_set
wafv2_update_ip_set <- function(Name, Scope, Id, Description = NULL, Addresses, LockToken) {
  op <- new_operation(
    name = "UpdateIPSet",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$update_ip_set_input(Name = Name, Scope = Scope, Id = Id, Description = Description, Addresses = Addresses, LockToken = LockToken)
  output <- .wafv2$update_ip_set_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$update_ip_set <- wafv2_update_ip_set

#' Updates the expiration information for your managed rule set
#'
#' @description
#' Updates the expiration information for your managed rule set. Use this to initiate the expiration of a managed rule group version. After you initiate expiration for a version, WAF excludes it from the response to [`list_available_managed_rule_group_versions`][wafv2_list_available_managed_rule_group_versions] for the managed rule group.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_update_managed_rule_set_version_expiry_date/](https://www.paws-r-sdk.com/docs/wafv2_update_managed_rule_set_version_expiry_date/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the managed rule set. You use this, along with the rule set ID, to identify the rule set.
#' 
#' This name is assigned to the corresponding managed rule group, which your customers can access and use.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; A unique identifier for the managed rule set. The ID is returned in the responses to commands like `list`. You provide it to operations like `get` and `update`.
#' @param LockToken &#91;required&#93; A token used for optimistic locking. WAF returns a token to your `get` and `list` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like `update` and `delete`. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a `WAFOptimisticLockException`. If this happens, perform another `get`, and use the new token returned by that operation.
#' @param VersionToExpire &#91;required&#93; The version that you want to remove from your list of offerings for the named managed rule group.
#' @param ExpiryTimestamp &#91;required&#93; The time that you want the version to expire.
#' 
#' Times are in Coordinated Universal Time (UTC) format. UTC format includes the special designator, Z. For example, "2016-09-27T14:50Z".
#'
#' @keywords internal
#'
#' @rdname wafv2_update_managed_rule_set_version_expiry_date
wafv2_update_managed_rule_set_version_expiry_date <- function(Name, Scope, Id, LockToken, VersionToExpire, ExpiryTimestamp) {
  op <- new_operation(
    name = "UpdateManagedRuleSetVersionExpiryDate",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$update_managed_rule_set_version_expiry_date_input(Name = Name, Scope = Scope, Id = Id, LockToken = LockToken, VersionToExpire = VersionToExpire, ExpiryTimestamp = ExpiryTimestamp)
  output <- .wafv2$update_managed_rule_set_version_expiry_date_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$update_managed_rule_set_version_expiry_date <- wafv2_update_managed_rule_set_version_expiry_date

#' Updates the specified RegexPatternSet
#'
#' @description
#' Updates the specified RegexPatternSet.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_update_regex_pattern_set/](https://www.paws-r-sdk.com/docs/wafv2_update_regex_pattern_set/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the set. You cannot change the name after you create the set.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#' @param Description A description of the set that helps with identification.
#' @param RegularExpressionList &#91;required&#93; 
#' @param LockToken &#91;required&#93; A token used for optimistic locking. WAF returns a token to your `get` and `list` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like `update` and `delete`. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a `WAFOptimisticLockException`. If this happens, perform another `get`, and use the new token returned by that operation.
#'
#' @keywords internal
#'
#' @rdname wafv2_update_regex_pattern_set
wafv2_update_regex_pattern_set <- function(Name, Scope, Id, Description = NULL, RegularExpressionList, LockToken) {
  op <- new_operation(
    name = "UpdateRegexPatternSet",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$update_regex_pattern_set_input(Name = Name, Scope = Scope, Id = Id, Description = Description, RegularExpressionList = RegularExpressionList, LockToken = LockToken)
  output <- .wafv2$update_regex_pattern_set_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$update_regex_pattern_set <- wafv2_update_regex_pattern_set

#' Updates the specified RuleGroup
#'
#' @description
#' Updates the specified RuleGroup.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_update_rule_group/](https://www.paws-r-sdk.com/docs/wafv2_update_rule_group/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the rule group. You cannot change the name of a rule group after you create it.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#' @param Description A description of the rule group that helps with identification.
#' @param Rules The Rule statements used to identify the web requests that you want to manage. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them.
#' @param VisibilityConfig &#91;required&#93; Defines and enables Amazon CloudWatch metrics and web request sample collection.
#' @param LockToken &#91;required&#93; A token used for optimistic locking. WAF returns a token to your `get` and `list` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like `update` and `delete`. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a `WAFOptimisticLockException`. If this happens, perform another `get`, and use the new token returned by that operation.
#' @param CustomResponseBodies A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.
#' 
#' For information about customizing web requests and responses, see [Customizing web requests and responses in WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the *WAF Developer Guide*.
#' 
#' For information about the limits on count and size for custom request and response settings, see [WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the *WAF Developer Guide*.
#' @param MonetizationConfig The monetization configuration for the rule group. Provide this when any rule in the rule group uses the `Monetize` action.
#'
#' @keywords internal
#'
#' @rdname wafv2_update_rule_group
wafv2_update_rule_group <- function(Name, Scope, Id, Description = NULL, Rules = NULL, VisibilityConfig, LockToken, CustomResponseBodies = NULL, MonetizationConfig = NULL) {
  op <- new_operation(
    name = "UpdateRuleGroup",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$update_rule_group_input(Name = Name, Scope = Scope, Id = Id, Description = Description, Rules = Rules, VisibilityConfig = VisibilityConfig, LockToken = LockToken, CustomResponseBodies = CustomResponseBodies, MonetizationConfig = MonetizationConfig)
  output <- .wafv2$update_rule_group_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$update_rule_group <- wafv2_update_rule_group

#' Updates the specified WebACL
#'
#' @description
#' Updates the specified WebACL. While updating a web ACL, WAF provides continuous coverage to the resources that you have associated with the web ACL.
#'
#' See [https://www.paws-r-sdk.com/docs/wafv2_update_web_acl/](https://www.paws-r-sdk.com/docs/wafv2_update_web_acl/) for full documentation.
#'
#' @param Name &#91;required&#93; The name of the web ACL. You cannot change the name of a web ACL after you create it.
#' @param Scope &#91;required&#93; Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use `CLOUDFRONT`.
#' 
#' To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:
#' 
#' -   CLI - Specify the Region when you use the CloudFront scope: `--scope=CLOUDFRONT --region=us-east-1`.
#' 
#' -   API and SDKs - For all calls, use the Region endpoint us-east-1.
#' @param Id &#91;required&#93; The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
#' @param DefaultAction &#91;required&#93; The action to perform if none of the `Rules` contained in the `WebACL` match.
#' @param Description A description of the web ACL that helps with identification.
#' @param Rules The Rule statements used to identify the web requests that you want to manage. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them.
#' @param VisibilityConfig &#91;required&#93; Defines and enables Amazon CloudWatch metrics and web request sample collection.
#' @param DataProtectionConfig Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option.
#' 
#' The data protection that you configure for the web ACL alters the data that's available for any other data collection activity, including your WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging.
#' @param LockToken &#91;required&#93; A token used for optimistic locking. WAF returns a token to your `get` and `list` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like `update` and `delete`. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a `WAFOptimisticLockException`. If this happens, perform another `get`, and use the new token returned by that operation.
#' @param CustomResponseBodies A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.
#' 
#' For information about customizing web requests and responses, see [Customizing web requests and responses in WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the *WAF Developer Guide*.
#' 
#' For information about the limits on count and size for custom request and response settings, see [WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the *WAF Developer Guide*.
#' @param CaptchaConfig Specifies how WAF should handle `CAPTCHA` evaluations for rules that don't have their own `CaptchaConfig` settings. If you don't specify this, WAF uses its default settings for `CaptchaConfig`.
#' @param ChallengeConfig Specifies how WAF should handle challenge evaluations for rules that don't have their own `ChallengeConfig` settings. If you don't specify this, WAF uses its default settings for `ChallengeConfig`.
#' @param TokenDomains Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.
#' 
#' Example JSON: `"TokenDomains": { "mywebsite.com", "myotherwebsite.com" }`
#' 
#' Public suffixes aren't allowed. For example, you can't use `gov.au` or `co.uk` as token domains.
#' @param AssociationConfig Specifies custom configurations for the associations between the web ACL and protected resources.
#' 
#' Use this to customize the maximum size of the request body that your protected resources forward to WAF for inspection. You can customize this setting for CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 bytes).
#' 
#' You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see [WAF Pricing](https://aws.amazon.com/waf/pricing/).
#' 
#' For Application Load Balancer and AppSync, the limit is fixed at 8 KB (8,192 bytes).
#' @param OnSourceDDoSProtectionConfig Specifies the type of DDoS protection to apply to web request data for a web ACL. For most scenarios, it is recommended to use the default protection level, `ACTIVE_UNDER_DDOS`. If a web ACL is associated with multiple Application Load Balancers, the changes you make to DDoS protection in that web ACL will apply to all associated Application Load Balancers.
#' @param ApplicationConfig Configures the ability for the WAF console to store and retrieve application attributes. Application attributes help WAF give recommendations for protection packs.
#' 
#' When using [`update_web_acl`][wafv2_update_web_acl], `ApplicationConfig` follows these rules:
#' 
#' -   If you omit `ApplicationConfig` from the request, all existing entries in the web ACL are retained.
#' 
#' -   If you include `ApplicationConfig`, entries must match the existing values exactly. Any attempt to modify existing entries will result in an error.
#' @param MonetizationConfig The monetization configuration for the web ACL. Provide this when any rule in the web ACL uses the `Monetize` action.
#'
#' @keywords internal
#'
#' @rdname wafv2_update_web_acl
wafv2_update_web_acl <- function(Name, Scope, Id, DefaultAction, Description = NULL, Rules = NULL, VisibilityConfig, DataProtectionConfig = NULL, LockToken, CustomResponseBodies = NULL, CaptchaConfig = NULL, ChallengeConfig = NULL, TokenDomains = NULL, AssociationConfig = NULL, OnSourceDDoSProtectionConfig = NULL, ApplicationConfig = NULL, MonetizationConfig = NULL) {
  op <- new_operation(
    name = "UpdateWebACL",
    http_method = "POST",
    http_path = "/",
    host_prefix = "",
    paginator = list(),
    stream_api = FALSE,
    http_checksum = NULL
  )
  input <- .wafv2$update_web_acl_input(Name = Name, Scope = Scope, Id = Id, DefaultAction = DefaultAction, Description = Description, Rules = Rules, VisibilityConfig = VisibilityConfig, DataProtectionConfig = DataProtectionConfig, LockToken = LockToken, CustomResponseBodies = CustomResponseBodies, CaptchaConfig = CaptchaConfig, ChallengeConfig = ChallengeConfig, TokenDomains = TokenDomains, AssociationConfig = AssociationConfig, OnSourceDDoSProtectionConfig = OnSourceDDoSProtectionConfig, ApplicationConfig = ApplicationConfig, MonetizationConfig = MonetizationConfig)
  output <- .wafv2$update_web_acl_output()
  config <- get_config()
  svc <- .wafv2$service(config, op)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.wafv2$operations$update_web_acl <- wafv2_update_web_acl

Try the paws.security.identity package in your browser

Any scripts or data that you put into this service are public.

paws.security.identity documentation built on Oct. 8, 2026, 9:12 a.m.