1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/wafv2/WAFV2_EXPORTS.h> 8 #include <aws/wafv2/WAFV2Errors.h> 9 #include <aws/core/client/AWSError.h> 10 #include <aws/core/client/ClientConfiguration.h> 11 #include <aws/core/client/AWSClient.h> 12 #include <aws/core/utils/memory/stl/AWSString.h> 13 #include <aws/core/utils/json/JsonSerializer.h> 14 #include <aws/wafv2/model/AssociateWebACLResult.h> 15 #include <aws/wafv2/model/CheckCapacityResult.h> 16 #include <aws/wafv2/model/CreateIPSetResult.h> 17 #include <aws/wafv2/model/CreateRegexPatternSetResult.h> 18 #include <aws/wafv2/model/CreateRuleGroupResult.h> 19 #include <aws/wafv2/model/CreateWebACLResult.h> 20 #include <aws/wafv2/model/DeleteFirewallManagerRuleGroupsResult.h> 21 #include <aws/wafv2/model/DeleteIPSetResult.h> 22 #include <aws/wafv2/model/DeleteLoggingConfigurationResult.h> 23 #include <aws/wafv2/model/DeletePermissionPolicyResult.h> 24 #include <aws/wafv2/model/DeleteRegexPatternSetResult.h> 25 #include <aws/wafv2/model/DeleteRuleGroupResult.h> 26 #include <aws/wafv2/model/DeleteWebACLResult.h> 27 #include <aws/wafv2/model/DescribeManagedRuleGroupResult.h> 28 #include <aws/wafv2/model/DisassociateWebACLResult.h> 29 #include <aws/wafv2/model/GetIPSetResult.h> 30 #include <aws/wafv2/model/GetLoggingConfigurationResult.h> 31 #include <aws/wafv2/model/GetManagedRuleSetResult.h> 32 #include <aws/wafv2/model/GetPermissionPolicyResult.h> 33 #include <aws/wafv2/model/GetRateBasedStatementManagedKeysResult.h> 34 #include <aws/wafv2/model/GetRegexPatternSetResult.h> 35 #include <aws/wafv2/model/GetRuleGroupResult.h> 36 #include <aws/wafv2/model/GetSampledRequestsResult.h> 37 #include <aws/wafv2/model/GetWebACLResult.h> 38 #include <aws/wafv2/model/GetWebACLForResourceResult.h> 39 #include <aws/wafv2/model/ListAvailableManagedRuleGroupVersionsResult.h> 40 #include <aws/wafv2/model/ListAvailableManagedRuleGroupsResult.h> 41 #include <aws/wafv2/model/ListIPSetsResult.h> 42 #include <aws/wafv2/model/ListLoggingConfigurationsResult.h> 43 #include <aws/wafv2/model/ListManagedRuleSetsResult.h> 44 #include <aws/wafv2/model/ListRegexPatternSetsResult.h> 45 #include <aws/wafv2/model/ListResourcesForWebACLResult.h> 46 #include <aws/wafv2/model/ListRuleGroupsResult.h> 47 #include <aws/wafv2/model/ListTagsForResourceResult.h> 48 #include <aws/wafv2/model/ListWebACLsResult.h> 49 #include <aws/wafv2/model/PutLoggingConfigurationResult.h> 50 #include <aws/wafv2/model/PutManagedRuleSetVersionsResult.h> 51 #include <aws/wafv2/model/PutPermissionPolicyResult.h> 52 #include <aws/wafv2/model/TagResourceResult.h> 53 #include <aws/wafv2/model/UntagResourceResult.h> 54 #include <aws/wafv2/model/UpdateIPSetResult.h> 55 #include <aws/wafv2/model/UpdateManagedRuleSetVersionExpiryDateResult.h> 56 #include <aws/wafv2/model/UpdateRegexPatternSetResult.h> 57 #include <aws/wafv2/model/UpdateRuleGroupResult.h> 58 #include <aws/wafv2/model/UpdateWebACLResult.h> 59 #include <aws/core/client/AsyncCallerContext.h> 60 #include <aws/core/http/HttpTypes.h> 61 #include <future> 62 #include <functional> 63 64 namespace Aws 65 { 66 67 namespace Http 68 { 69 class HttpClient; 70 class HttpClientFactory; 71 } // namespace Http 72 73 namespace Utils 74 { 75 template< typename R, typename E> class Outcome; 76 namespace Threading 77 { 78 class Executor; 79 } // namespace Threading 80 } // namespace Utils 81 82 namespace Auth 83 { 84 class AWSCredentials; 85 class AWSCredentialsProvider; 86 } // namespace Auth 87 88 namespace Client 89 { 90 class RetryStrategy; 91 } // namespace Client 92 93 namespace WAFV2 94 { 95 96 namespace Model 97 { 98 class AssociateWebACLRequest; 99 class CheckCapacityRequest; 100 class CreateIPSetRequest; 101 class CreateRegexPatternSetRequest; 102 class CreateRuleGroupRequest; 103 class CreateWebACLRequest; 104 class DeleteFirewallManagerRuleGroupsRequest; 105 class DeleteIPSetRequest; 106 class DeleteLoggingConfigurationRequest; 107 class DeletePermissionPolicyRequest; 108 class DeleteRegexPatternSetRequest; 109 class DeleteRuleGroupRequest; 110 class DeleteWebACLRequest; 111 class DescribeManagedRuleGroupRequest; 112 class DisassociateWebACLRequest; 113 class GetIPSetRequest; 114 class GetLoggingConfigurationRequest; 115 class GetManagedRuleSetRequest; 116 class GetPermissionPolicyRequest; 117 class GetRateBasedStatementManagedKeysRequest; 118 class GetRegexPatternSetRequest; 119 class GetRuleGroupRequest; 120 class GetSampledRequestsRequest; 121 class GetWebACLRequest; 122 class GetWebACLForResourceRequest; 123 class ListAvailableManagedRuleGroupVersionsRequest; 124 class ListAvailableManagedRuleGroupsRequest; 125 class ListIPSetsRequest; 126 class ListLoggingConfigurationsRequest; 127 class ListManagedRuleSetsRequest; 128 class ListRegexPatternSetsRequest; 129 class ListResourcesForWebACLRequest; 130 class ListRuleGroupsRequest; 131 class ListTagsForResourceRequest; 132 class ListWebACLsRequest; 133 class PutLoggingConfigurationRequest; 134 class PutManagedRuleSetVersionsRequest; 135 class PutPermissionPolicyRequest; 136 class TagResourceRequest; 137 class UntagResourceRequest; 138 class UpdateIPSetRequest; 139 class UpdateManagedRuleSetVersionExpiryDateRequest; 140 class UpdateRegexPatternSetRequest; 141 class UpdateRuleGroupRequest; 142 class UpdateWebACLRequest; 143 144 typedef Aws::Utils::Outcome<AssociateWebACLResult, WAFV2Error> AssociateWebACLOutcome; 145 typedef Aws::Utils::Outcome<CheckCapacityResult, WAFV2Error> CheckCapacityOutcome; 146 typedef Aws::Utils::Outcome<CreateIPSetResult, WAFV2Error> CreateIPSetOutcome; 147 typedef Aws::Utils::Outcome<CreateRegexPatternSetResult, WAFV2Error> CreateRegexPatternSetOutcome; 148 typedef Aws::Utils::Outcome<CreateRuleGroupResult, WAFV2Error> CreateRuleGroupOutcome; 149 typedef Aws::Utils::Outcome<CreateWebACLResult, WAFV2Error> CreateWebACLOutcome; 150 typedef Aws::Utils::Outcome<DeleteFirewallManagerRuleGroupsResult, WAFV2Error> DeleteFirewallManagerRuleGroupsOutcome; 151 typedef Aws::Utils::Outcome<DeleteIPSetResult, WAFV2Error> DeleteIPSetOutcome; 152 typedef Aws::Utils::Outcome<DeleteLoggingConfigurationResult, WAFV2Error> DeleteLoggingConfigurationOutcome; 153 typedef Aws::Utils::Outcome<DeletePermissionPolicyResult, WAFV2Error> DeletePermissionPolicyOutcome; 154 typedef Aws::Utils::Outcome<DeleteRegexPatternSetResult, WAFV2Error> DeleteRegexPatternSetOutcome; 155 typedef Aws::Utils::Outcome<DeleteRuleGroupResult, WAFV2Error> DeleteRuleGroupOutcome; 156 typedef Aws::Utils::Outcome<DeleteWebACLResult, WAFV2Error> DeleteWebACLOutcome; 157 typedef Aws::Utils::Outcome<DescribeManagedRuleGroupResult, WAFV2Error> DescribeManagedRuleGroupOutcome; 158 typedef Aws::Utils::Outcome<DisassociateWebACLResult, WAFV2Error> DisassociateWebACLOutcome; 159 typedef Aws::Utils::Outcome<GetIPSetResult, WAFV2Error> GetIPSetOutcome; 160 typedef Aws::Utils::Outcome<GetLoggingConfigurationResult, WAFV2Error> GetLoggingConfigurationOutcome; 161 typedef Aws::Utils::Outcome<GetManagedRuleSetResult, WAFV2Error> GetManagedRuleSetOutcome; 162 typedef Aws::Utils::Outcome<GetPermissionPolicyResult, WAFV2Error> GetPermissionPolicyOutcome; 163 typedef Aws::Utils::Outcome<GetRateBasedStatementManagedKeysResult, WAFV2Error> GetRateBasedStatementManagedKeysOutcome; 164 typedef Aws::Utils::Outcome<GetRegexPatternSetResult, WAFV2Error> GetRegexPatternSetOutcome; 165 typedef Aws::Utils::Outcome<GetRuleGroupResult, WAFV2Error> GetRuleGroupOutcome; 166 typedef Aws::Utils::Outcome<GetSampledRequestsResult, WAFV2Error> GetSampledRequestsOutcome; 167 typedef Aws::Utils::Outcome<GetWebACLResult, WAFV2Error> GetWebACLOutcome; 168 typedef Aws::Utils::Outcome<GetWebACLForResourceResult, WAFV2Error> GetWebACLForResourceOutcome; 169 typedef Aws::Utils::Outcome<ListAvailableManagedRuleGroupVersionsResult, WAFV2Error> ListAvailableManagedRuleGroupVersionsOutcome; 170 typedef Aws::Utils::Outcome<ListAvailableManagedRuleGroupsResult, WAFV2Error> ListAvailableManagedRuleGroupsOutcome; 171 typedef Aws::Utils::Outcome<ListIPSetsResult, WAFV2Error> ListIPSetsOutcome; 172 typedef Aws::Utils::Outcome<ListLoggingConfigurationsResult, WAFV2Error> ListLoggingConfigurationsOutcome; 173 typedef Aws::Utils::Outcome<ListManagedRuleSetsResult, WAFV2Error> ListManagedRuleSetsOutcome; 174 typedef Aws::Utils::Outcome<ListRegexPatternSetsResult, WAFV2Error> ListRegexPatternSetsOutcome; 175 typedef Aws::Utils::Outcome<ListResourcesForWebACLResult, WAFV2Error> ListResourcesForWebACLOutcome; 176 typedef Aws::Utils::Outcome<ListRuleGroupsResult, WAFV2Error> ListRuleGroupsOutcome; 177 typedef Aws::Utils::Outcome<ListTagsForResourceResult, WAFV2Error> ListTagsForResourceOutcome; 178 typedef Aws::Utils::Outcome<ListWebACLsResult, WAFV2Error> ListWebACLsOutcome; 179 typedef Aws::Utils::Outcome<PutLoggingConfigurationResult, WAFV2Error> PutLoggingConfigurationOutcome; 180 typedef Aws::Utils::Outcome<PutManagedRuleSetVersionsResult, WAFV2Error> PutManagedRuleSetVersionsOutcome; 181 typedef Aws::Utils::Outcome<PutPermissionPolicyResult, WAFV2Error> PutPermissionPolicyOutcome; 182 typedef Aws::Utils::Outcome<TagResourceResult, WAFV2Error> TagResourceOutcome; 183 typedef Aws::Utils::Outcome<UntagResourceResult, WAFV2Error> UntagResourceOutcome; 184 typedef Aws::Utils::Outcome<UpdateIPSetResult, WAFV2Error> UpdateIPSetOutcome; 185 typedef Aws::Utils::Outcome<UpdateManagedRuleSetVersionExpiryDateResult, WAFV2Error> UpdateManagedRuleSetVersionExpiryDateOutcome; 186 typedef Aws::Utils::Outcome<UpdateRegexPatternSetResult, WAFV2Error> UpdateRegexPatternSetOutcome; 187 typedef Aws::Utils::Outcome<UpdateRuleGroupResult, WAFV2Error> UpdateRuleGroupOutcome; 188 typedef Aws::Utils::Outcome<UpdateWebACLResult, WAFV2Error> UpdateWebACLOutcome; 189 190 typedef std::future<AssociateWebACLOutcome> AssociateWebACLOutcomeCallable; 191 typedef std::future<CheckCapacityOutcome> CheckCapacityOutcomeCallable; 192 typedef std::future<CreateIPSetOutcome> CreateIPSetOutcomeCallable; 193 typedef std::future<CreateRegexPatternSetOutcome> CreateRegexPatternSetOutcomeCallable; 194 typedef std::future<CreateRuleGroupOutcome> CreateRuleGroupOutcomeCallable; 195 typedef std::future<CreateWebACLOutcome> CreateWebACLOutcomeCallable; 196 typedef std::future<DeleteFirewallManagerRuleGroupsOutcome> DeleteFirewallManagerRuleGroupsOutcomeCallable; 197 typedef std::future<DeleteIPSetOutcome> DeleteIPSetOutcomeCallable; 198 typedef std::future<DeleteLoggingConfigurationOutcome> DeleteLoggingConfigurationOutcomeCallable; 199 typedef std::future<DeletePermissionPolicyOutcome> DeletePermissionPolicyOutcomeCallable; 200 typedef std::future<DeleteRegexPatternSetOutcome> DeleteRegexPatternSetOutcomeCallable; 201 typedef std::future<DeleteRuleGroupOutcome> DeleteRuleGroupOutcomeCallable; 202 typedef std::future<DeleteWebACLOutcome> DeleteWebACLOutcomeCallable; 203 typedef std::future<DescribeManagedRuleGroupOutcome> DescribeManagedRuleGroupOutcomeCallable; 204 typedef std::future<DisassociateWebACLOutcome> DisassociateWebACLOutcomeCallable; 205 typedef std::future<GetIPSetOutcome> GetIPSetOutcomeCallable; 206 typedef std::future<GetLoggingConfigurationOutcome> GetLoggingConfigurationOutcomeCallable; 207 typedef std::future<GetManagedRuleSetOutcome> GetManagedRuleSetOutcomeCallable; 208 typedef std::future<GetPermissionPolicyOutcome> GetPermissionPolicyOutcomeCallable; 209 typedef std::future<GetRateBasedStatementManagedKeysOutcome> GetRateBasedStatementManagedKeysOutcomeCallable; 210 typedef std::future<GetRegexPatternSetOutcome> GetRegexPatternSetOutcomeCallable; 211 typedef std::future<GetRuleGroupOutcome> GetRuleGroupOutcomeCallable; 212 typedef std::future<GetSampledRequestsOutcome> GetSampledRequestsOutcomeCallable; 213 typedef std::future<GetWebACLOutcome> GetWebACLOutcomeCallable; 214 typedef std::future<GetWebACLForResourceOutcome> GetWebACLForResourceOutcomeCallable; 215 typedef std::future<ListAvailableManagedRuleGroupVersionsOutcome> ListAvailableManagedRuleGroupVersionsOutcomeCallable; 216 typedef std::future<ListAvailableManagedRuleGroupsOutcome> ListAvailableManagedRuleGroupsOutcomeCallable; 217 typedef std::future<ListIPSetsOutcome> ListIPSetsOutcomeCallable; 218 typedef std::future<ListLoggingConfigurationsOutcome> ListLoggingConfigurationsOutcomeCallable; 219 typedef std::future<ListManagedRuleSetsOutcome> ListManagedRuleSetsOutcomeCallable; 220 typedef std::future<ListRegexPatternSetsOutcome> ListRegexPatternSetsOutcomeCallable; 221 typedef std::future<ListResourcesForWebACLOutcome> ListResourcesForWebACLOutcomeCallable; 222 typedef std::future<ListRuleGroupsOutcome> ListRuleGroupsOutcomeCallable; 223 typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable; 224 typedef std::future<ListWebACLsOutcome> ListWebACLsOutcomeCallable; 225 typedef std::future<PutLoggingConfigurationOutcome> PutLoggingConfigurationOutcomeCallable; 226 typedef std::future<PutManagedRuleSetVersionsOutcome> PutManagedRuleSetVersionsOutcomeCallable; 227 typedef std::future<PutPermissionPolicyOutcome> PutPermissionPolicyOutcomeCallable; 228 typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable; 229 typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable; 230 typedef std::future<UpdateIPSetOutcome> UpdateIPSetOutcomeCallable; 231 typedef std::future<UpdateManagedRuleSetVersionExpiryDateOutcome> UpdateManagedRuleSetVersionExpiryDateOutcomeCallable; 232 typedef std::future<UpdateRegexPatternSetOutcome> UpdateRegexPatternSetOutcomeCallable; 233 typedef std::future<UpdateRuleGroupOutcome> UpdateRuleGroupOutcomeCallable; 234 typedef std::future<UpdateWebACLOutcome> UpdateWebACLOutcomeCallable; 235 } // namespace Model 236 237 class WAFV2Client; 238 239 typedef std::function<void(const WAFV2Client*, const Model::AssociateWebACLRequest&, const Model::AssociateWebACLOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateWebACLResponseReceivedHandler; 240 typedef std::function<void(const WAFV2Client*, const Model::CheckCapacityRequest&, const Model::CheckCapacityOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CheckCapacityResponseReceivedHandler; 241 typedef std::function<void(const WAFV2Client*, const Model::CreateIPSetRequest&, const Model::CreateIPSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateIPSetResponseReceivedHandler; 242 typedef std::function<void(const WAFV2Client*, const Model::CreateRegexPatternSetRequest&, const Model::CreateRegexPatternSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateRegexPatternSetResponseReceivedHandler; 243 typedef std::function<void(const WAFV2Client*, const Model::CreateRuleGroupRequest&, const Model::CreateRuleGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateRuleGroupResponseReceivedHandler; 244 typedef std::function<void(const WAFV2Client*, const Model::CreateWebACLRequest&, const Model::CreateWebACLOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateWebACLResponseReceivedHandler; 245 typedef std::function<void(const WAFV2Client*, const Model::DeleteFirewallManagerRuleGroupsRequest&, const Model::DeleteFirewallManagerRuleGroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteFirewallManagerRuleGroupsResponseReceivedHandler; 246 typedef std::function<void(const WAFV2Client*, const Model::DeleteIPSetRequest&, const Model::DeleteIPSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteIPSetResponseReceivedHandler; 247 typedef std::function<void(const WAFV2Client*, const Model::DeleteLoggingConfigurationRequest&, const Model::DeleteLoggingConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteLoggingConfigurationResponseReceivedHandler; 248 typedef std::function<void(const WAFV2Client*, const Model::DeletePermissionPolicyRequest&, const Model::DeletePermissionPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePermissionPolicyResponseReceivedHandler; 249 typedef std::function<void(const WAFV2Client*, const Model::DeleteRegexPatternSetRequest&, const Model::DeleteRegexPatternSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRegexPatternSetResponseReceivedHandler; 250 typedef std::function<void(const WAFV2Client*, const Model::DeleteRuleGroupRequest&, const Model::DeleteRuleGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRuleGroupResponseReceivedHandler; 251 typedef std::function<void(const WAFV2Client*, const Model::DeleteWebACLRequest&, const Model::DeleteWebACLOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteWebACLResponseReceivedHandler; 252 typedef std::function<void(const WAFV2Client*, const Model::DescribeManagedRuleGroupRequest&, const Model::DescribeManagedRuleGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeManagedRuleGroupResponseReceivedHandler; 253 typedef std::function<void(const WAFV2Client*, const Model::DisassociateWebACLRequest&, const Model::DisassociateWebACLOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateWebACLResponseReceivedHandler; 254 typedef std::function<void(const WAFV2Client*, const Model::GetIPSetRequest&, const Model::GetIPSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetIPSetResponseReceivedHandler; 255 typedef std::function<void(const WAFV2Client*, const Model::GetLoggingConfigurationRequest&, const Model::GetLoggingConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetLoggingConfigurationResponseReceivedHandler; 256 typedef std::function<void(const WAFV2Client*, const Model::GetManagedRuleSetRequest&, const Model::GetManagedRuleSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetManagedRuleSetResponseReceivedHandler; 257 typedef std::function<void(const WAFV2Client*, const Model::GetPermissionPolicyRequest&, const Model::GetPermissionPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetPermissionPolicyResponseReceivedHandler; 258 typedef std::function<void(const WAFV2Client*, const Model::GetRateBasedStatementManagedKeysRequest&, const Model::GetRateBasedStatementManagedKeysOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetRateBasedStatementManagedKeysResponseReceivedHandler; 259 typedef std::function<void(const WAFV2Client*, const Model::GetRegexPatternSetRequest&, const Model::GetRegexPatternSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetRegexPatternSetResponseReceivedHandler; 260 typedef std::function<void(const WAFV2Client*, const Model::GetRuleGroupRequest&, const Model::GetRuleGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetRuleGroupResponseReceivedHandler; 261 typedef std::function<void(const WAFV2Client*, const Model::GetSampledRequestsRequest&, const Model::GetSampledRequestsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetSampledRequestsResponseReceivedHandler; 262 typedef std::function<void(const WAFV2Client*, const Model::GetWebACLRequest&, const Model::GetWebACLOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetWebACLResponseReceivedHandler; 263 typedef std::function<void(const WAFV2Client*, const Model::GetWebACLForResourceRequest&, const Model::GetWebACLForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetWebACLForResourceResponseReceivedHandler; 264 typedef std::function<void(const WAFV2Client*, const Model::ListAvailableManagedRuleGroupVersionsRequest&, const Model::ListAvailableManagedRuleGroupVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListAvailableManagedRuleGroupVersionsResponseReceivedHandler; 265 typedef std::function<void(const WAFV2Client*, const Model::ListAvailableManagedRuleGroupsRequest&, const Model::ListAvailableManagedRuleGroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListAvailableManagedRuleGroupsResponseReceivedHandler; 266 typedef std::function<void(const WAFV2Client*, const Model::ListIPSetsRequest&, const Model::ListIPSetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListIPSetsResponseReceivedHandler; 267 typedef std::function<void(const WAFV2Client*, const Model::ListLoggingConfigurationsRequest&, const Model::ListLoggingConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListLoggingConfigurationsResponseReceivedHandler; 268 typedef std::function<void(const WAFV2Client*, const Model::ListManagedRuleSetsRequest&, const Model::ListManagedRuleSetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListManagedRuleSetsResponseReceivedHandler; 269 typedef std::function<void(const WAFV2Client*, const Model::ListRegexPatternSetsRequest&, const Model::ListRegexPatternSetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListRegexPatternSetsResponseReceivedHandler; 270 typedef std::function<void(const WAFV2Client*, const Model::ListResourcesForWebACLRequest&, const Model::ListResourcesForWebACLOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListResourcesForWebACLResponseReceivedHandler; 271 typedef std::function<void(const WAFV2Client*, const Model::ListRuleGroupsRequest&, const Model::ListRuleGroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListRuleGroupsResponseReceivedHandler; 272 typedef std::function<void(const WAFV2Client*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler; 273 typedef std::function<void(const WAFV2Client*, const Model::ListWebACLsRequest&, const Model::ListWebACLsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListWebACLsResponseReceivedHandler; 274 typedef std::function<void(const WAFV2Client*, const Model::PutLoggingConfigurationRequest&, const Model::PutLoggingConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutLoggingConfigurationResponseReceivedHandler; 275 typedef std::function<void(const WAFV2Client*, const Model::PutManagedRuleSetVersionsRequest&, const Model::PutManagedRuleSetVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutManagedRuleSetVersionsResponseReceivedHandler; 276 typedef std::function<void(const WAFV2Client*, const Model::PutPermissionPolicyRequest&, const Model::PutPermissionPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutPermissionPolicyResponseReceivedHandler; 277 typedef std::function<void(const WAFV2Client*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler; 278 typedef std::function<void(const WAFV2Client*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler; 279 typedef std::function<void(const WAFV2Client*, const Model::UpdateIPSetRequest&, const Model::UpdateIPSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateIPSetResponseReceivedHandler; 280 typedef std::function<void(const WAFV2Client*, const Model::UpdateManagedRuleSetVersionExpiryDateRequest&, const Model::UpdateManagedRuleSetVersionExpiryDateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateManagedRuleSetVersionExpiryDateResponseReceivedHandler; 281 typedef std::function<void(const WAFV2Client*, const Model::UpdateRegexPatternSetRequest&, const Model::UpdateRegexPatternSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateRegexPatternSetResponseReceivedHandler; 282 typedef std::function<void(const WAFV2Client*, const Model::UpdateRuleGroupRequest&, const Model::UpdateRuleGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateRuleGroupResponseReceivedHandler; 283 typedef std::function<void(const WAFV2Client*, const Model::UpdateWebACLRequest&, const Model::UpdateWebACLOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateWebACLResponseReceivedHandler; 284 285 /** 286 * <fullname>WAF</fullname> <p>This is the latest version of the <b>WAF</b> 287 * API, released in November, 2019. The names of the entities that you use to 288 * access this API, like endpoints and namespaces, all have the versioning 289 * information added, like "V2" or "v2", to distinguish from the prior version. We 290 * recommend migrating your resources to this version, because it has a number of 291 * significant improvements.</p> <p>If you used WAF prior to this release, you 292 * can't use this WAFV2 API to access any WAF resources that you created before. 293 * You can access your old rules, web ACLs, and other WAF resources only through 294 * the WAF Classic APIs. The WAF Classic APIs have retained the prior names, 295 * endpoints, and namespaces. </p> <p>For information, including how to migrate 296 * your WAF resources to this version, see the <a 297 * href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF 298 * Developer Guide</a>. </p> <p>WAF is a web application firewall that lets 299 * you monitor the HTTP and HTTPS requests that are forwarded to Amazon CloudFront, 300 * an Amazon API Gateway REST API, an Application Load Balancer, or an AppSync 301 * GraphQL API. WAF also lets you control access to your content. Based on 302 * conditions that you specify, such as the IP addresses that requests originate 303 * from or the values of query strings, the Amazon API Gateway REST API, CloudFront 304 * distribution, the Application Load Balancer, or the AppSync GraphQL API responds 305 * to requests either with the requested content or with an HTTP 403 status code 306 * (Forbidden). You also can configure CloudFront to return a custom error page 307 * when a request is blocked.</p> <p>This API guide is for developers who need 308 * detailed information about WAF API actions, data types, and errors. For detailed 309 * information about WAF features and an overview of how to use WAF, see the <a 310 * href="https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html">WAF 311 * Developer Guide</a>.</p> <p>You can make calls using the endpoints listed in <a 312 * href="https://docs.aws.amazon.com/general/latest/gr/waf.html">WAF endpoints and 313 * quotas</a>. </p> <ul> <li> <p>For regional applications, you can use any of the 314 * endpoints in the list. A regional application can be an Application Load 315 * Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. </p> 316 * </li> <li> <p>For Amazon CloudFront applications, you must use the API endpoint 317 * listed for US East (N. Virginia): us-east-1.</p> </li> </ul> <p>Alternatively, 318 * you can use one of the Amazon Web Services SDKs to access an API that's tailored 319 * to the programming language or platform that you're using. For more information, 320 * see <a href="http://aws.amazon.com/tools/#SDKs">Amazon Web Services 321 * SDKs</a>.</p> <p>We currently provide two versions of the WAF API: this API and 322 * the prior versions, the classic WAF APIs. This new API provides the same 323 * functionality as the older versions, with the following major improvements:</p> 324 * <ul> <li> <p>You use one API for both global and regional applications. Where 325 * you need to distinguish the scope, you specify a <code>Scope</code> parameter 326 * and set it to <code>CLOUDFRONT</code> or <code>REGIONAL</code>. </p> </li> <li> 327 * <p>You can define a web ACL or rule group with a single call, and update it with 328 * a single call. You define all rule specifications in JSON format, and pass them 329 * to your rule group or web ACL calls.</p> </li> <li> <p>The limits WAF places on 330 * the use of rules more closely reflects the cost of running each type of rule. 331 * Rule groups include capacity settings, so you know the maximum cost of a rule 332 * group when you use it.</p> </li> </ul> 333 */ 334 class AWS_WAFV2_API WAFV2Client : public Aws::Client::AWSJsonClient 335 { 336 public: 337 typedef Aws::Client::AWSJsonClient BASECLASS; 338 339 /** 340 * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config 341 * is not specified, it will be initialized to default values. 342 */ 343 WAFV2Client(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 344 345 /** 346 * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config 347 * is not specified, it will be initialized to default values. 348 */ 349 WAFV2Client(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 350 351 /** 352 * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, 353 * the default http client factory will be used 354 */ 355 WAFV2Client(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider, 356 const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 357 358 virtual ~WAFV2Client(); 359 360 361 /** 362 * <p>Associates a web ACL with a regional application resource, to protect the 363 * resource. A regional application can be an Application Load Balancer (ALB), an 364 * Amazon API Gateway REST API, or an AppSync GraphQL API. </p> <p>For Amazon 365 * CloudFront, don't use this call. Instead, use your CloudFront distribution 366 * configuration. To associate a web ACL, in the CloudFront call 367 * <code>UpdateDistribution</code>, set the web ACL ID to the Amazon Resource Name 368 * (ARN) of the web ACL. For information, see <a 369 * href="https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html">UpdateDistribution</a>.</p><p><h3>See 370 * Also:</h3> <a 371 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AssociateWebACL">AWS 372 * API Reference</a></p> 373 */ 374 virtual Model::AssociateWebACLOutcome AssociateWebACL(const Model::AssociateWebACLRequest& request) const; 375 376 /** 377 * <p>Associates a web ACL with a regional application resource, to protect the 378 * resource. A regional application can be an Application Load Balancer (ALB), an 379 * Amazon API Gateway REST API, or an AppSync GraphQL API. </p> <p>For Amazon 380 * CloudFront, don't use this call. Instead, use your CloudFront distribution 381 * configuration. To associate a web ACL, in the CloudFront call 382 * <code>UpdateDistribution</code>, set the web ACL ID to the Amazon Resource Name 383 * (ARN) of the web ACL. For information, see <a 384 * href="https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html">UpdateDistribution</a>.</p><p><h3>See 385 * Also:</h3> <a 386 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AssociateWebACL">AWS 387 * API Reference</a></p> 388 * 389 * returns a future to the operation so that it can be executed in parallel to other requests. 390 */ 391 virtual Model::AssociateWebACLOutcomeCallable AssociateWebACLCallable(const Model::AssociateWebACLRequest& request) const; 392 393 /** 394 * <p>Associates a web ACL with a regional application resource, to protect the 395 * resource. A regional application can be an Application Load Balancer (ALB), an 396 * Amazon API Gateway REST API, or an AppSync GraphQL API. </p> <p>For Amazon 397 * CloudFront, don't use this call. Instead, use your CloudFront distribution 398 * configuration. To associate a web ACL, in the CloudFront call 399 * <code>UpdateDistribution</code>, set the web ACL ID to the Amazon Resource Name 400 * (ARN) of the web ACL. For information, see <a 401 * href="https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html">UpdateDistribution</a>.</p><p><h3>See 402 * Also:</h3> <a 403 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AssociateWebACL">AWS 404 * API Reference</a></p> 405 * 406 * Queues the request into a thread executor and triggers associated callback when operation has finished. 407 */ 408 virtual void AssociateWebACLAsync(const Model::AssociateWebACLRequest& request, const AssociateWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 409 410 /** 411 * <p>Returns the web ACL capacity unit (WCU) requirements for a specified scope 412 * and set of rules. You can use this to check the capacity requirements for the 413 * rules you want to use in a <a>RuleGroup</a> or <a>WebACL</a>. </p> <p>WAF uses 414 * WCUs to calculate and control the operating resources that are used to run your 415 * rules, rule groups, and web ACLs. WAF calculates capacity differently for each 416 * rule type, to reflect the relative cost of each rule. Simple rules that cost 417 * little to run use fewer WCUs than more complex rules that use more processing 418 * power. Rule group capacity is fixed at creation, which helps users plan their 419 * web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 420 * 1,500. </p><p><h3>See Also:</h3> <a 421 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CheckCapacity">AWS 422 * API Reference</a></p> 423 */ 424 virtual Model::CheckCapacityOutcome CheckCapacity(const Model::CheckCapacityRequest& request) const; 425 426 /** 427 * <p>Returns the web ACL capacity unit (WCU) requirements for a specified scope 428 * and set of rules. You can use this to check the capacity requirements for the 429 * rules you want to use in a <a>RuleGroup</a> or <a>WebACL</a>. </p> <p>WAF uses 430 * WCUs to calculate and control the operating resources that are used to run your 431 * rules, rule groups, and web ACLs. WAF calculates capacity differently for each 432 * rule type, to reflect the relative cost of each rule. Simple rules that cost 433 * little to run use fewer WCUs than more complex rules that use more processing 434 * power. Rule group capacity is fixed at creation, which helps users plan their 435 * web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 436 * 1,500. </p><p><h3>See Also:</h3> <a 437 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CheckCapacity">AWS 438 * API Reference</a></p> 439 * 440 * returns a future to the operation so that it can be executed in parallel to other requests. 441 */ 442 virtual Model::CheckCapacityOutcomeCallable CheckCapacityCallable(const Model::CheckCapacityRequest& request) const; 443 444 /** 445 * <p>Returns the web ACL capacity unit (WCU) requirements for a specified scope 446 * and set of rules. You can use this to check the capacity requirements for the 447 * rules you want to use in a <a>RuleGroup</a> or <a>WebACL</a>. </p> <p>WAF uses 448 * WCUs to calculate and control the operating resources that are used to run your 449 * rules, rule groups, and web ACLs. WAF calculates capacity differently for each 450 * rule type, to reflect the relative cost of each rule. Simple rules that cost 451 * little to run use fewer WCUs than more complex rules that use more processing 452 * power. Rule group capacity is fixed at creation, which helps users plan their 453 * web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 454 * 1,500. </p><p><h3>See Also:</h3> <a 455 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CheckCapacity">AWS 456 * API Reference</a></p> 457 * 458 * Queues the request into a thread executor and triggers associated callback when operation has finished. 459 */ 460 virtual void CheckCapacityAsync(const Model::CheckCapacityRequest& request, const CheckCapacityResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 461 462 /** 463 * <p>Creates an <a>IPSet</a>, which you use to identify web requests that 464 * originate from specific IP addresses or ranges of IP addresses. For example, if 465 * you're receiving a lot of requests from a ranges of IP addresses, you can 466 * configure WAF to block them using an IPSet that lists those IP addresses. 467 * </p><p><h3>See Also:</h3> <a 468 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateIPSet">AWS 469 * API Reference</a></p> 470 */ 471 virtual Model::CreateIPSetOutcome CreateIPSet(const Model::CreateIPSetRequest& request) const; 472 473 /** 474 * <p>Creates an <a>IPSet</a>, which you use to identify web requests that 475 * originate from specific IP addresses or ranges of IP addresses. For example, if 476 * you're receiving a lot of requests from a ranges of IP addresses, you can 477 * configure WAF to block them using an IPSet that lists those IP addresses. 478 * </p><p><h3>See Also:</h3> <a 479 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateIPSet">AWS 480 * API Reference</a></p> 481 * 482 * returns a future to the operation so that it can be executed in parallel to other requests. 483 */ 484 virtual Model::CreateIPSetOutcomeCallable CreateIPSetCallable(const Model::CreateIPSetRequest& request) const; 485 486 /** 487 * <p>Creates an <a>IPSet</a>, which you use to identify web requests that 488 * originate from specific IP addresses or ranges of IP addresses. For example, if 489 * you're receiving a lot of requests from a ranges of IP addresses, you can 490 * configure WAF to block them using an IPSet that lists those IP addresses. 491 * </p><p><h3>See Also:</h3> <a 492 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateIPSet">AWS 493 * API Reference</a></p> 494 * 495 * Queues the request into a thread executor and triggers associated callback when operation has finished. 496 */ 497 virtual void CreateIPSetAsync(const Model::CreateIPSetRequest& request, const CreateIPSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 498 499 /** 500 * <p>Creates a <a>RegexPatternSet</a>, which you reference in a 501 * <a>RegexPatternSetReferenceStatement</a>, to have WAF inspect a web request 502 * component for the specified patterns.</p><p><h3>See Also:</h3> <a 503 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRegexPatternSet">AWS 504 * API Reference</a></p> 505 */ 506 virtual Model::CreateRegexPatternSetOutcome CreateRegexPatternSet(const Model::CreateRegexPatternSetRequest& request) const; 507 508 /** 509 * <p>Creates a <a>RegexPatternSet</a>, which you reference in a 510 * <a>RegexPatternSetReferenceStatement</a>, to have WAF inspect a web request 511 * component for the specified patterns.</p><p><h3>See Also:</h3> <a 512 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRegexPatternSet">AWS 513 * API Reference</a></p> 514 * 515 * returns a future to the operation so that it can be executed in parallel to other requests. 516 */ 517 virtual Model::CreateRegexPatternSetOutcomeCallable CreateRegexPatternSetCallable(const Model::CreateRegexPatternSetRequest& request) const; 518 519 /** 520 * <p>Creates a <a>RegexPatternSet</a>, which you reference in a 521 * <a>RegexPatternSetReferenceStatement</a>, to have WAF inspect a web request 522 * component for the specified patterns.</p><p><h3>See Also:</h3> <a 523 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRegexPatternSet">AWS 524 * API Reference</a></p> 525 * 526 * Queues the request into a thread executor and triggers associated callback when operation has finished. 527 */ 528 virtual void CreateRegexPatternSetAsync(const Model::CreateRegexPatternSetRequest& request, const CreateRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 529 530 /** 531 * <p>Creates a <a>RuleGroup</a> per the specifications provided. </p> <p> A rule 532 * group defines a collection of rules to inspect and control web requests that you 533 * can use in a <a>WebACL</a>. When you create a rule group, you define an 534 * immutable capacity limit. If you update a rule group, you must stay within the 535 * capacity. This allows others to reuse the rule group with confidence in its 536 * capacity requirements. </p><p><h3>See Also:</h3> <a 537 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRuleGroup">AWS 538 * API Reference</a></p> 539 */ 540 virtual Model::CreateRuleGroupOutcome CreateRuleGroup(const Model::CreateRuleGroupRequest& request) const; 541 542 /** 543 * <p>Creates a <a>RuleGroup</a> per the specifications provided. </p> <p> A rule 544 * group defines a collection of rules to inspect and control web requests that you 545 * can use in a <a>WebACL</a>. When you create a rule group, you define an 546 * immutable capacity limit. If you update a rule group, you must stay within the 547 * capacity. This allows others to reuse the rule group with confidence in its 548 * capacity requirements. </p><p><h3>See Also:</h3> <a 549 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRuleGroup">AWS 550 * API Reference</a></p> 551 * 552 * returns a future to the operation so that it can be executed in parallel to other requests. 553 */ 554 virtual Model::CreateRuleGroupOutcomeCallable CreateRuleGroupCallable(const Model::CreateRuleGroupRequest& request) const; 555 556 /** 557 * <p>Creates a <a>RuleGroup</a> per the specifications provided. </p> <p> A rule 558 * group defines a collection of rules to inspect and control web requests that you 559 * can use in a <a>WebACL</a>. When you create a rule group, you define an 560 * immutable capacity limit. If you update a rule group, you must stay within the 561 * capacity. This allows others to reuse the rule group with confidence in its 562 * capacity requirements. </p><p><h3>See Also:</h3> <a 563 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRuleGroup">AWS 564 * API Reference</a></p> 565 * 566 * Queues the request into a thread executor and triggers associated callback when operation has finished. 567 */ 568 virtual void CreateRuleGroupAsync(const Model::CreateRuleGroupRequest& request, const CreateRuleGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 569 570 /** 571 * <p>Creates a <a>WebACL</a> per the specifications provided.</p> <p> A web ACL 572 * defines a collection of rules to use to inspect and control web requests. Each 573 * rule has an action defined (allow, block, or count) for requests that match the 574 * statement of the rule. In the web ACL, you assign a default action to take 575 * (allow, block) for any request that does not match any of the rules. The rules 576 * in a web ACL can be a combination of the types <a>Rule</a>, <a>RuleGroup</a>, 577 * and managed rule group. You can associate a web ACL with one or more Amazon Web 578 * Services resources to protect. The resources can be an Amazon CloudFront 579 * distribution, an Amazon API Gateway REST API, an Application Load Balancer, or 580 * an AppSync GraphQL API. </p><p><h3>See Also:</h3> <a 581 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateWebACL">AWS 582 * API Reference</a></p> 583 */ 584 virtual Model::CreateWebACLOutcome CreateWebACL(const Model::CreateWebACLRequest& request) const; 585 586 /** 587 * <p>Creates a <a>WebACL</a> per the specifications provided.</p> <p> A web ACL 588 * defines a collection of rules to use to inspect and control web requests. Each 589 * rule has an action defined (allow, block, or count) for requests that match the 590 * statement of the rule. In the web ACL, you assign a default action to take 591 * (allow, block) for any request that does not match any of the rules. The rules 592 * in a web ACL can be a combination of the types <a>Rule</a>, <a>RuleGroup</a>, 593 * and managed rule group. You can associate a web ACL with one or more Amazon Web 594 * Services resources to protect. The resources can be an Amazon CloudFront 595 * distribution, an Amazon API Gateway REST API, an Application Load Balancer, or 596 * an AppSync GraphQL API. </p><p><h3>See Also:</h3> <a 597 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateWebACL">AWS 598 * API Reference</a></p> 599 * 600 * returns a future to the operation so that it can be executed in parallel to other requests. 601 */ 602 virtual Model::CreateWebACLOutcomeCallable CreateWebACLCallable(const Model::CreateWebACLRequest& request) const; 603 604 /** 605 * <p>Creates a <a>WebACL</a> per the specifications provided.</p> <p> A web ACL 606 * defines a collection of rules to use to inspect and control web requests. Each 607 * rule has an action defined (allow, block, or count) for requests that match the 608 * statement of the rule. In the web ACL, you assign a default action to take 609 * (allow, block) for any request that does not match any of the rules. The rules 610 * in a web ACL can be a combination of the types <a>Rule</a>, <a>RuleGroup</a>, 611 * and managed rule group. You can associate a web ACL with one or more Amazon Web 612 * Services resources to protect. The resources can be an Amazon CloudFront 613 * distribution, an Amazon API Gateway REST API, an Application Load Balancer, or 614 * an AppSync GraphQL API. </p><p><h3>See Also:</h3> <a 615 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateWebACL">AWS 616 * API Reference</a></p> 617 * 618 * Queues the request into a thread executor and triggers associated callback when operation has finished. 619 */ 620 virtual void CreateWebACLAsync(const Model::CreateWebACLRequest& request, const CreateWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 621 622 /** 623 * <p>Deletes all rule groups that are managed by Firewall Manager for the 624 * specified web ACL. </p> <p>You can only use this if 625 * <code>ManagedByFirewallManager</code> is false in the specified <a>WebACL</a>. 626 * </p><p><h3>See Also:</h3> <a 627 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteFirewallManagerRuleGroups">AWS 628 * API Reference</a></p> 629 */ 630 virtual Model::DeleteFirewallManagerRuleGroupsOutcome DeleteFirewallManagerRuleGroups(const Model::DeleteFirewallManagerRuleGroupsRequest& request) const; 631 632 /** 633 * <p>Deletes all rule groups that are managed by Firewall Manager for the 634 * specified web ACL. </p> <p>You can only use this if 635 * <code>ManagedByFirewallManager</code> is false in the specified <a>WebACL</a>. 636 * </p><p><h3>See Also:</h3> <a 637 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteFirewallManagerRuleGroups">AWS 638 * API Reference</a></p> 639 * 640 * returns a future to the operation so that it can be executed in parallel to other requests. 641 */ 642 virtual Model::DeleteFirewallManagerRuleGroupsOutcomeCallable DeleteFirewallManagerRuleGroupsCallable(const Model::DeleteFirewallManagerRuleGroupsRequest& request) const; 643 644 /** 645 * <p>Deletes all rule groups that are managed by Firewall Manager for the 646 * specified web ACL. </p> <p>You can only use this if 647 * <code>ManagedByFirewallManager</code> is false in the specified <a>WebACL</a>. 648 * </p><p><h3>See Also:</h3> <a 649 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteFirewallManagerRuleGroups">AWS 650 * API Reference</a></p> 651 * 652 * Queues the request into a thread executor and triggers associated callback when operation has finished. 653 */ 654 virtual void DeleteFirewallManagerRuleGroupsAsync(const Model::DeleteFirewallManagerRuleGroupsRequest& request, const DeleteFirewallManagerRuleGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 655 656 /** 657 * <p>Deletes the specified <a>IPSet</a>. </p><p><h3>See Also:</h3> <a 658 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteIPSet">AWS 659 * API Reference</a></p> 660 */ 661 virtual Model::DeleteIPSetOutcome DeleteIPSet(const Model::DeleteIPSetRequest& request) const; 662 663 /** 664 * <p>Deletes the specified <a>IPSet</a>. </p><p><h3>See Also:</h3> <a 665 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteIPSet">AWS 666 * API Reference</a></p> 667 * 668 * returns a future to the operation so that it can be executed in parallel to other requests. 669 */ 670 virtual Model::DeleteIPSetOutcomeCallable DeleteIPSetCallable(const Model::DeleteIPSetRequest& request) const; 671 672 /** 673 * <p>Deletes the specified <a>IPSet</a>. </p><p><h3>See Also:</h3> <a 674 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteIPSet">AWS 675 * API Reference</a></p> 676 * 677 * Queues the request into a thread executor and triggers associated callback when operation has finished. 678 */ 679 virtual void DeleteIPSetAsync(const Model::DeleteIPSetRequest& request, const DeleteIPSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 680 681 /** 682 * <p>Deletes the <a>LoggingConfiguration</a> from the specified web 683 * ACL.</p><p><h3>See Also:</h3> <a 684 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteLoggingConfiguration">AWS 685 * API Reference</a></p> 686 */ 687 virtual Model::DeleteLoggingConfigurationOutcome DeleteLoggingConfiguration(const Model::DeleteLoggingConfigurationRequest& request) const; 688 689 /** 690 * <p>Deletes the <a>LoggingConfiguration</a> from the specified web 691 * ACL.</p><p><h3>See Also:</h3> <a 692 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteLoggingConfiguration">AWS 693 * API Reference</a></p> 694 * 695 * returns a future to the operation so that it can be executed in parallel to other requests. 696 */ 697 virtual Model::DeleteLoggingConfigurationOutcomeCallable DeleteLoggingConfigurationCallable(const Model::DeleteLoggingConfigurationRequest& request) const; 698 699 /** 700 * <p>Deletes the <a>LoggingConfiguration</a> from the specified web 701 * ACL.</p><p><h3>See Also:</h3> <a 702 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteLoggingConfiguration">AWS 703 * API Reference</a></p> 704 * 705 * Queues the request into a thread executor and triggers associated callback when operation has finished. 706 */ 707 virtual void DeleteLoggingConfigurationAsync(const Model::DeleteLoggingConfigurationRequest& request, const DeleteLoggingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 708 709 /** 710 * <p>Permanently deletes an IAM policy from the specified rule group.</p> <p>You 711 * must be the owner of the rule group to perform this operation.</p><p><h3>See 712 * Also:</h3> <a 713 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeletePermissionPolicy">AWS 714 * API Reference</a></p> 715 */ 716 virtual Model::DeletePermissionPolicyOutcome DeletePermissionPolicy(const Model::DeletePermissionPolicyRequest& request) const; 717 718 /** 719 * <p>Permanently deletes an IAM policy from the specified rule group.</p> <p>You 720 * must be the owner of the rule group to perform this operation.</p><p><h3>See 721 * Also:</h3> <a 722 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeletePermissionPolicy">AWS 723 * API Reference</a></p> 724 * 725 * returns a future to the operation so that it can be executed in parallel to other requests. 726 */ 727 virtual Model::DeletePermissionPolicyOutcomeCallable DeletePermissionPolicyCallable(const Model::DeletePermissionPolicyRequest& request) const; 728 729 /** 730 * <p>Permanently deletes an IAM policy from the specified rule group.</p> <p>You 731 * must be the owner of the rule group to perform this operation.</p><p><h3>See 732 * Also:</h3> <a 733 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeletePermissionPolicy">AWS 734 * API Reference</a></p> 735 * 736 * Queues the request into a thread executor and triggers associated callback when operation has finished. 737 */ 738 virtual void DeletePermissionPolicyAsync(const Model::DeletePermissionPolicyRequest& request, const DeletePermissionPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 739 740 /** 741 * <p>Deletes the specified <a>RegexPatternSet</a>.</p><p><h3>See Also:</h3> <a 742 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRegexPatternSet">AWS 743 * API Reference</a></p> 744 */ 745 virtual Model::DeleteRegexPatternSetOutcome DeleteRegexPatternSet(const Model::DeleteRegexPatternSetRequest& request) const; 746 747 /** 748 * <p>Deletes the specified <a>RegexPatternSet</a>.</p><p><h3>See Also:</h3> <a 749 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRegexPatternSet">AWS 750 * API Reference</a></p> 751 * 752 * returns a future to the operation so that it can be executed in parallel to other requests. 753 */ 754 virtual Model::DeleteRegexPatternSetOutcomeCallable DeleteRegexPatternSetCallable(const Model::DeleteRegexPatternSetRequest& request) const; 755 756 /** 757 * <p>Deletes the specified <a>RegexPatternSet</a>.</p><p><h3>See Also:</h3> <a 758 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRegexPatternSet">AWS 759 * API Reference</a></p> 760 * 761 * Queues the request into a thread executor and triggers associated callback when operation has finished. 762 */ 763 virtual void DeleteRegexPatternSetAsync(const Model::DeleteRegexPatternSetRequest& request, const DeleteRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 764 765 /** 766 * <p>Deletes the specified <a>RuleGroup</a>.</p><p><h3>See Also:</h3> <a 767 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRuleGroup">AWS 768 * API Reference</a></p> 769 */ 770 virtual Model::DeleteRuleGroupOutcome DeleteRuleGroup(const Model::DeleteRuleGroupRequest& request) const; 771 772 /** 773 * <p>Deletes the specified <a>RuleGroup</a>.</p><p><h3>See Also:</h3> <a 774 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRuleGroup">AWS 775 * API Reference</a></p> 776 * 777 * returns a future to the operation so that it can be executed in parallel to other requests. 778 */ 779 virtual Model::DeleteRuleGroupOutcomeCallable DeleteRuleGroupCallable(const Model::DeleteRuleGroupRequest& request) const; 780 781 /** 782 * <p>Deletes the specified <a>RuleGroup</a>.</p><p><h3>See Also:</h3> <a 783 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRuleGroup">AWS 784 * API Reference</a></p> 785 * 786 * Queues the request into a thread executor and triggers associated callback when operation has finished. 787 */ 788 virtual void DeleteRuleGroupAsync(const Model::DeleteRuleGroupRequest& request, const DeleteRuleGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 789 790 /** 791 * <p>Deletes the specified <a>WebACL</a>.</p> <p>You can only use this if 792 * <code>ManagedByFirewallManager</code> is false in the specified <a>WebACL</a>. 793 * </p><p><h3>See Also:</h3> <a 794 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteWebACL">AWS 795 * API Reference</a></p> 796 */ 797 virtual Model::DeleteWebACLOutcome DeleteWebACL(const Model::DeleteWebACLRequest& request) const; 798 799 /** 800 * <p>Deletes the specified <a>WebACL</a>.</p> <p>You can only use this if 801 * <code>ManagedByFirewallManager</code> is false in the specified <a>WebACL</a>. 802 * </p><p><h3>See Also:</h3> <a 803 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteWebACL">AWS 804 * API Reference</a></p> 805 * 806 * returns a future to the operation so that it can be executed in parallel to other requests. 807 */ 808 virtual Model::DeleteWebACLOutcomeCallable DeleteWebACLCallable(const Model::DeleteWebACLRequest& request) const; 809 810 /** 811 * <p>Deletes the specified <a>WebACL</a>.</p> <p>You can only use this if 812 * <code>ManagedByFirewallManager</code> is false in the specified <a>WebACL</a>. 813 * </p><p><h3>See Also:</h3> <a 814 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteWebACL">AWS 815 * API Reference</a></p> 816 * 817 * Queues the request into a thread executor and triggers associated callback when operation has finished. 818 */ 819 virtual void DeleteWebACLAsync(const Model::DeleteWebACLRequest& request, const DeleteWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 820 821 /** 822 * <p>Provides high-level information for a managed rule group, including 823 * descriptions of the rules. </p><p><h3>See Also:</h3> <a 824 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DescribeManagedRuleGroup">AWS 825 * API Reference</a></p> 826 */ 827 virtual Model::DescribeManagedRuleGroupOutcome DescribeManagedRuleGroup(const Model::DescribeManagedRuleGroupRequest& request) const; 828 829 /** 830 * <p>Provides high-level information for a managed rule group, including 831 * descriptions of the rules. </p><p><h3>See Also:</h3> <a 832 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DescribeManagedRuleGroup">AWS 833 * API Reference</a></p> 834 * 835 * returns a future to the operation so that it can be executed in parallel to other requests. 836 */ 837 virtual Model::DescribeManagedRuleGroupOutcomeCallable DescribeManagedRuleGroupCallable(const Model::DescribeManagedRuleGroupRequest& request) const; 838 839 /** 840 * <p>Provides high-level information for a managed rule group, including 841 * descriptions of the rules. </p><p><h3>See Also:</h3> <a 842 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DescribeManagedRuleGroup">AWS 843 * API Reference</a></p> 844 * 845 * Queues the request into a thread executor and triggers associated callback when operation has finished. 846 */ 847 virtual void DescribeManagedRuleGroupAsync(const Model::DescribeManagedRuleGroupRequest& request, const DescribeManagedRuleGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 848 849 /** 850 * <p>Disassociates a web ACL from a regional application resource. A regional 851 * application can be an Application Load Balancer (ALB), an Amazon API Gateway 852 * REST API, or an AppSync GraphQL API. </p> <p>For Amazon CloudFront, don't use 853 * this call. Instead, use your CloudFront distribution configuration. To 854 * disassociate a web ACL, provide an empty web ACL ID in the CloudFront call 855 * <code>UpdateDistribution</code>. For information, see <a 856 * href="https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html">UpdateDistribution</a>.</p><p><h3>See 857 * Also:</h3> <a 858 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DisassociateWebACL">AWS 859 * API Reference</a></p> 860 */ 861 virtual Model::DisassociateWebACLOutcome DisassociateWebACL(const Model::DisassociateWebACLRequest& request) const; 862 863 /** 864 * <p>Disassociates a web ACL from a regional application resource. A regional 865 * application can be an Application Load Balancer (ALB), an Amazon API Gateway 866 * REST API, or an AppSync GraphQL API. </p> <p>For Amazon CloudFront, don't use 867 * this call. Instead, use your CloudFront distribution configuration. To 868 * disassociate a web ACL, provide an empty web ACL ID in the CloudFront call 869 * <code>UpdateDistribution</code>. For information, see <a 870 * href="https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html">UpdateDistribution</a>.</p><p><h3>See 871 * Also:</h3> <a 872 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DisassociateWebACL">AWS 873 * API Reference</a></p> 874 * 875 * returns a future to the operation so that it can be executed in parallel to other requests. 876 */ 877 virtual Model::DisassociateWebACLOutcomeCallable DisassociateWebACLCallable(const Model::DisassociateWebACLRequest& request) const; 878 879 /** 880 * <p>Disassociates a web ACL from a regional application resource. A regional 881 * application can be an Application Load Balancer (ALB), an Amazon API Gateway 882 * REST API, or an AppSync GraphQL API. </p> <p>For Amazon CloudFront, don't use 883 * this call. Instead, use your CloudFront distribution configuration. To 884 * disassociate a web ACL, provide an empty web ACL ID in the CloudFront call 885 * <code>UpdateDistribution</code>. For information, see <a 886 * href="https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html">UpdateDistribution</a>.</p><p><h3>See 887 * Also:</h3> <a 888 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DisassociateWebACL">AWS 889 * API Reference</a></p> 890 * 891 * Queues the request into a thread executor and triggers associated callback when operation has finished. 892 */ 893 virtual void DisassociateWebACLAsync(const Model::DisassociateWebACLRequest& request, const DisassociateWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 894 895 /** 896 * <p>Retrieves the specified <a>IPSet</a>.</p><p><h3>See Also:</h3> <a 897 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetIPSet">AWS API 898 * Reference</a></p> 899 */ 900 virtual Model::GetIPSetOutcome GetIPSet(const Model::GetIPSetRequest& request) const; 901 902 /** 903 * <p>Retrieves the specified <a>IPSet</a>.</p><p><h3>See Also:</h3> <a 904 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetIPSet">AWS API 905 * Reference</a></p> 906 * 907 * returns a future to the operation so that it can be executed in parallel to other requests. 908 */ 909 virtual Model::GetIPSetOutcomeCallable GetIPSetCallable(const Model::GetIPSetRequest& request) const; 910 911 /** 912 * <p>Retrieves the specified <a>IPSet</a>.</p><p><h3>See Also:</h3> <a 913 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetIPSet">AWS API 914 * Reference</a></p> 915 * 916 * Queues the request into a thread executor and triggers associated callback when operation has finished. 917 */ 918 virtual void GetIPSetAsync(const Model::GetIPSetRequest& request, const GetIPSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 919 920 /** 921 * <p>Returns the <a>LoggingConfiguration</a> for the specified web 922 * ACL.</p><p><h3>See Also:</h3> <a 923 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetLoggingConfiguration">AWS 924 * API Reference</a></p> 925 */ 926 virtual Model::GetLoggingConfigurationOutcome GetLoggingConfiguration(const Model::GetLoggingConfigurationRequest& request) const; 927 928 /** 929 * <p>Returns the <a>LoggingConfiguration</a> for the specified web 930 * ACL.</p><p><h3>See Also:</h3> <a 931 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetLoggingConfiguration">AWS 932 * API Reference</a></p> 933 * 934 * returns a future to the operation so that it can be executed in parallel to other requests. 935 */ 936 virtual Model::GetLoggingConfigurationOutcomeCallable GetLoggingConfigurationCallable(const Model::GetLoggingConfigurationRequest& request) const; 937 938 /** 939 * <p>Returns the <a>LoggingConfiguration</a> for the specified web 940 * ACL.</p><p><h3>See Also:</h3> <a 941 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetLoggingConfiguration">AWS 942 * API Reference</a></p> 943 * 944 * Queues the request into a thread executor and triggers associated callback when operation has finished. 945 */ 946 virtual void GetLoggingConfigurationAsync(const Model::GetLoggingConfigurationRequest& request, const GetLoggingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 947 948 /** 949 * <p>Retrieves the specified managed rule set. </p> <p>This is intended for 950 * use only by vendors of managed rule sets. Vendors are Amazon Web Services and 951 * Amazon Web Services Marketplace sellers. </p> <p>Vendors, you can use the 952 * managed rule set APIs to provide controlled rollout of your versioned managed 953 * rule group offerings for your customers. The APIs are 954 * <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, 955 * <code>PutManagedRuleSetVersions</code>, and 956 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p><h3>See 957 * Also:</h3> <a 958 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetManagedRuleSet">AWS 959 * API Reference</a></p> 960 */ 961 virtual Model::GetManagedRuleSetOutcome GetManagedRuleSet(const Model::GetManagedRuleSetRequest& request) const; 962 963 /** 964 * <p>Retrieves the specified managed rule set. </p> <p>This is intended for 965 * use only by vendors of managed rule sets. Vendors are Amazon Web Services and 966 * Amazon Web Services Marketplace sellers. </p> <p>Vendors, you can use the 967 * managed rule set APIs to provide controlled rollout of your versioned managed 968 * rule group offerings for your customers. The APIs are 969 * <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, 970 * <code>PutManagedRuleSetVersions</code>, and 971 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p><h3>See 972 * Also:</h3> <a 973 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetManagedRuleSet">AWS 974 * API Reference</a></p> 975 * 976 * returns a future to the operation so that it can be executed in parallel to other requests. 977 */ 978 virtual Model::GetManagedRuleSetOutcomeCallable GetManagedRuleSetCallable(const Model::GetManagedRuleSetRequest& request) const; 979 980 /** 981 * <p>Retrieves the specified managed rule set. </p> <p>This is intended for 982 * use only by vendors of managed rule sets. Vendors are Amazon Web Services and 983 * Amazon Web Services Marketplace sellers. </p> <p>Vendors, you can use the 984 * managed rule set APIs to provide controlled rollout of your versioned managed 985 * rule group offerings for your customers. The APIs are 986 * <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, 987 * <code>PutManagedRuleSetVersions</code>, and 988 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p><h3>See 989 * Also:</h3> <a 990 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetManagedRuleSet">AWS 991 * API Reference</a></p> 992 * 993 * Queues the request into a thread executor and triggers associated callback when operation has finished. 994 */ 995 virtual void GetManagedRuleSetAsync(const Model::GetManagedRuleSetRequest& request, const GetManagedRuleSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 996 997 /** 998 * <p>Returns the IAM policy that is attached to the specified rule group.</p> 999 * <p>You must be the owner of the rule group to perform this 1000 * operation.</p><p><h3>See Also:</h3> <a 1001 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetPermissionPolicy">AWS 1002 * API Reference</a></p> 1003 */ 1004 virtual Model::GetPermissionPolicyOutcome GetPermissionPolicy(const Model::GetPermissionPolicyRequest& request) const; 1005 1006 /** 1007 * <p>Returns the IAM policy that is attached to the specified rule group.</p> 1008 * <p>You must be the owner of the rule group to perform this 1009 * operation.</p><p><h3>See Also:</h3> <a 1010 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetPermissionPolicy">AWS 1011 * API Reference</a></p> 1012 * 1013 * returns a future to the operation so that it can be executed in parallel to other requests. 1014 */ 1015 virtual Model::GetPermissionPolicyOutcomeCallable GetPermissionPolicyCallable(const Model::GetPermissionPolicyRequest& request) const; 1016 1017 /** 1018 * <p>Returns the IAM policy that is attached to the specified rule group.</p> 1019 * <p>You must be the owner of the rule group to perform this 1020 * operation.</p><p><h3>See Also:</h3> <a 1021 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetPermissionPolicy">AWS 1022 * API Reference</a></p> 1023 * 1024 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1025 */ 1026 virtual void GetPermissionPolicyAsync(const Model::GetPermissionPolicyRequest& request, const GetPermissionPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1027 1028 /** 1029 * <p>Retrieves the keys that are currently blocked by a rate-based rule instance. 1030 * The maximum number of managed keys that can be blocked for a single rate-based 1031 * rule instance is 10,000. If more than 10,000 addresses exceed the rate limit, 1032 * those with the highest rates are blocked.</p> <p>For a rate-based rule that 1033 * you've defined inside a rule group, provide the name of the rule group reference 1034 * statement in your request, in addition to the rate-based rule name and the web 1035 * ACL name. </p> <p>WAF monitors web requests and manages keys independently for 1036 * each unique combination of web ACL, optional rule group, and rate-based rule. 1037 * For example, if you define a rate-based rule inside a rule group, and then use 1038 * the rule group in a web ACL, WAF monitors web requests and manages keys for that 1039 * web ACL, rule group reference statement, and rate-based rule instance. If you 1040 * use the same rule group in a second web ACL, WAF monitors web requests and 1041 * manages keys for this second usage completely independent of your first. 1042 * </p><p><h3>See Also:</h3> <a 1043 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRateBasedStatementManagedKeys">AWS 1044 * API Reference</a></p> 1045 */ 1046 virtual Model::GetRateBasedStatementManagedKeysOutcome GetRateBasedStatementManagedKeys(const Model::GetRateBasedStatementManagedKeysRequest& request) const; 1047 1048 /** 1049 * <p>Retrieves the keys that are currently blocked by a rate-based rule instance. 1050 * The maximum number of managed keys that can be blocked for a single rate-based 1051 * rule instance is 10,000. If more than 10,000 addresses exceed the rate limit, 1052 * those with the highest rates are blocked.</p> <p>For a rate-based rule that 1053 * you've defined inside a rule group, provide the name of the rule group reference 1054 * statement in your request, in addition to the rate-based rule name and the web 1055 * ACL name. </p> <p>WAF monitors web requests and manages keys independently for 1056 * each unique combination of web ACL, optional rule group, and rate-based rule. 1057 * For example, if you define a rate-based rule inside a rule group, and then use 1058 * the rule group in a web ACL, WAF monitors web requests and manages keys for that 1059 * web ACL, rule group reference statement, and rate-based rule instance. If you 1060 * use the same rule group in a second web ACL, WAF monitors web requests and 1061 * manages keys for this second usage completely independent of your first. 1062 * </p><p><h3>See Also:</h3> <a 1063 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRateBasedStatementManagedKeys">AWS 1064 * API Reference</a></p> 1065 * 1066 * returns a future to the operation so that it can be executed in parallel to other requests. 1067 */ 1068 virtual Model::GetRateBasedStatementManagedKeysOutcomeCallable GetRateBasedStatementManagedKeysCallable(const Model::GetRateBasedStatementManagedKeysRequest& request) const; 1069 1070 /** 1071 * <p>Retrieves the keys that are currently blocked by a rate-based rule instance. 1072 * The maximum number of managed keys that can be blocked for a single rate-based 1073 * rule instance is 10,000. If more than 10,000 addresses exceed the rate limit, 1074 * those with the highest rates are blocked.</p> <p>For a rate-based rule that 1075 * you've defined inside a rule group, provide the name of the rule group reference 1076 * statement in your request, in addition to the rate-based rule name and the web 1077 * ACL name. </p> <p>WAF monitors web requests and manages keys independently for 1078 * each unique combination of web ACL, optional rule group, and rate-based rule. 1079 * For example, if you define a rate-based rule inside a rule group, and then use 1080 * the rule group in a web ACL, WAF monitors web requests and manages keys for that 1081 * web ACL, rule group reference statement, and rate-based rule instance. If you 1082 * use the same rule group in a second web ACL, WAF monitors web requests and 1083 * manages keys for this second usage completely independent of your first. 1084 * </p><p><h3>See Also:</h3> <a 1085 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRateBasedStatementManagedKeys">AWS 1086 * API Reference</a></p> 1087 * 1088 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1089 */ 1090 virtual void GetRateBasedStatementManagedKeysAsync(const Model::GetRateBasedStatementManagedKeysRequest& request, const GetRateBasedStatementManagedKeysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1091 1092 /** 1093 * <p>Retrieves the specified <a>RegexPatternSet</a>.</p><p><h3>See Also:</h3> <a 1094 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRegexPatternSet">AWS 1095 * API Reference</a></p> 1096 */ 1097 virtual Model::GetRegexPatternSetOutcome GetRegexPatternSet(const Model::GetRegexPatternSetRequest& request) const; 1098 1099 /** 1100 * <p>Retrieves the specified <a>RegexPatternSet</a>.</p><p><h3>See Also:</h3> <a 1101 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRegexPatternSet">AWS 1102 * API Reference</a></p> 1103 * 1104 * returns a future to the operation so that it can be executed in parallel to other requests. 1105 */ 1106 virtual Model::GetRegexPatternSetOutcomeCallable GetRegexPatternSetCallable(const Model::GetRegexPatternSetRequest& request) const; 1107 1108 /** 1109 * <p>Retrieves the specified <a>RegexPatternSet</a>.</p><p><h3>See Also:</h3> <a 1110 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRegexPatternSet">AWS 1111 * API Reference</a></p> 1112 * 1113 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1114 */ 1115 virtual void GetRegexPatternSetAsync(const Model::GetRegexPatternSetRequest& request, const GetRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1116 1117 /** 1118 * <p>Retrieves the specified <a>RuleGroup</a>.</p><p><h3>See Also:</h3> <a 1119 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRuleGroup">AWS 1120 * API Reference</a></p> 1121 */ 1122 virtual Model::GetRuleGroupOutcome GetRuleGroup(const Model::GetRuleGroupRequest& request) const; 1123 1124 /** 1125 * <p>Retrieves the specified <a>RuleGroup</a>.</p><p><h3>See Also:</h3> <a 1126 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRuleGroup">AWS 1127 * API Reference</a></p> 1128 * 1129 * returns a future to the operation so that it can be executed in parallel to other requests. 1130 */ 1131 virtual Model::GetRuleGroupOutcomeCallable GetRuleGroupCallable(const Model::GetRuleGroupRequest& request) const; 1132 1133 /** 1134 * <p>Retrieves the specified <a>RuleGroup</a>.</p><p><h3>See Also:</h3> <a 1135 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRuleGroup">AWS 1136 * API Reference</a></p> 1137 * 1138 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1139 */ 1140 virtual void GetRuleGroupAsync(const Model::GetRuleGroupRequest& request, const GetRuleGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1141 1142 /** 1143 * <p>Gets detailed information about a specified number of requests--a 1144 * sample--that WAF randomly selects from among the first 5,000 requests that your 1145 * Amazon Web Services resource received during a time range that you choose. You 1146 * can specify a sample size of up to 500 requests, and you can specify any time 1147 * range in the previous three hours.</p> <p> <code>GetSampledRequests</code> 1148 * returns a time range, which is usually the time range that you specified. 1149 * However, if your resource (such as a CloudFront distribution) received 5,000 1150 * requests before the specified time range elapsed, 1151 * <code>GetSampledRequests</code> returns an updated time range. This new time 1152 * range indicates the actual period during which WAF selected the requests in the 1153 * sample.</p><p><h3>See Also:</h3> <a 1154 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetSampledRequests">AWS 1155 * API Reference</a></p> 1156 */ 1157 virtual Model::GetSampledRequestsOutcome GetSampledRequests(const Model::GetSampledRequestsRequest& request) const; 1158 1159 /** 1160 * <p>Gets detailed information about a specified number of requests--a 1161 * sample--that WAF randomly selects from among the first 5,000 requests that your 1162 * Amazon Web Services resource received during a time range that you choose. You 1163 * can specify a sample size of up to 500 requests, and you can specify any time 1164 * range in the previous three hours.</p> <p> <code>GetSampledRequests</code> 1165 * returns a time range, which is usually the time range that you specified. 1166 * However, if your resource (such as a CloudFront distribution) received 5,000 1167 * requests before the specified time range elapsed, 1168 * <code>GetSampledRequests</code> returns an updated time range. This new time 1169 * range indicates the actual period during which WAF selected the requests in the 1170 * sample.</p><p><h3>See Also:</h3> <a 1171 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetSampledRequests">AWS 1172 * API Reference</a></p> 1173 * 1174 * returns a future to the operation so that it can be executed in parallel to other requests. 1175 */ 1176 virtual Model::GetSampledRequestsOutcomeCallable GetSampledRequestsCallable(const Model::GetSampledRequestsRequest& request) const; 1177 1178 /** 1179 * <p>Gets detailed information about a specified number of requests--a 1180 * sample--that WAF randomly selects from among the first 5,000 requests that your 1181 * Amazon Web Services resource received during a time range that you choose. You 1182 * can specify a sample size of up to 500 requests, and you can specify any time 1183 * range in the previous three hours.</p> <p> <code>GetSampledRequests</code> 1184 * returns a time range, which is usually the time range that you specified. 1185 * However, if your resource (such as a CloudFront distribution) received 5,000 1186 * requests before the specified time range elapsed, 1187 * <code>GetSampledRequests</code> returns an updated time range. This new time 1188 * range indicates the actual period during which WAF selected the requests in the 1189 * sample.</p><p><h3>See Also:</h3> <a 1190 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetSampledRequests">AWS 1191 * API Reference</a></p> 1192 * 1193 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1194 */ 1195 virtual void GetSampledRequestsAsync(const Model::GetSampledRequestsRequest& request, const GetSampledRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1196 1197 /** 1198 * <p>Retrieves the specified <a>WebACL</a>.</p><p><h3>See Also:</h3> <a 1199 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACL">AWS API 1200 * Reference</a></p> 1201 */ 1202 virtual Model::GetWebACLOutcome GetWebACL(const Model::GetWebACLRequest& request) const; 1203 1204 /** 1205 * <p>Retrieves the specified <a>WebACL</a>.</p><p><h3>See Also:</h3> <a 1206 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACL">AWS API 1207 * Reference</a></p> 1208 * 1209 * returns a future to the operation so that it can be executed in parallel to other requests. 1210 */ 1211 virtual Model::GetWebACLOutcomeCallable GetWebACLCallable(const Model::GetWebACLRequest& request) const; 1212 1213 /** 1214 * <p>Retrieves the specified <a>WebACL</a>.</p><p><h3>See Also:</h3> <a 1215 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACL">AWS API 1216 * Reference</a></p> 1217 * 1218 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1219 */ 1220 virtual void GetWebACLAsync(const Model::GetWebACLRequest& request, const GetWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1221 1222 /** 1223 * <p>Retrieves the <a>WebACL</a> for the specified resource. </p><p><h3>See 1224 * Also:</h3> <a 1225 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLForResource">AWS 1226 * API Reference</a></p> 1227 */ 1228 virtual Model::GetWebACLForResourceOutcome GetWebACLForResource(const Model::GetWebACLForResourceRequest& request) const; 1229 1230 /** 1231 * <p>Retrieves the <a>WebACL</a> for the specified resource. </p><p><h3>See 1232 * Also:</h3> <a 1233 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLForResource">AWS 1234 * API Reference</a></p> 1235 * 1236 * returns a future to the operation so that it can be executed in parallel to other requests. 1237 */ 1238 virtual Model::GetWebACLForResourceOutcomeCallable GetWebACLForResourceCallable(const Model::GetWebACLForResourceRequest& request) const; 1239 1240 /** 1241 * <p>Retrieves the <a>WebACL</a> for the specified resource. </p><p><h3>See 1242 * Also:</h3> <a 1243 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLForResource">AWS 1244 * API Reference</a></p> 1245 * 1246 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1247 */ 1248 virtual void GetWebACLForResourceAsync(const Model::GetWebACLForResourceRequest& request, const GetWebACLForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1249 1250 /** 1251 * <p>Returns a list of the available versions for the specified managed rule 1252 * group. </p><p><h3>See Also:</h3> <a 1253 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupVersions">AWS 1254 * API Reference</a></p> 1255 */ 1256 virtual Model::ListAvailableManagedRuleGroupVersionsOutcome ListAvailableManagedRuleGroupVersions(const Model::ListAvailableManagedRuleGroupVersionsRequest& request) const; 1257 1258 /** 1259 * <p>Returns a list of the available versions for the specified managed rule 1260 * group. </p><p><h3>See Also:</h3> <a 1261 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupVersions">AWS 1262 * API Reference</a></p> 1263 * 1264 * returns a future to the operation so that it can be executed in parallel to other requests. 1265 */ 1266 virtual Model::ListAvailableManagedRuleGroupVersionsOutcomeCallable ListAvailableManagedRuleGroupVersionsCallable(const Model::ListAvailableManagedRuleGroupVersionsRequest& request) const; 1267 1268 /** 1269 * <p>Returns a list of the available versions for the specified managed rule 1270 * group. </p><p><h3>See Also:</h3> <a 1271 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupVersions">AWS 1272 * API Reference</a></p> 1273 * 1274 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1275 */ 1276 virtual void ListAvailableManagedRuleGroupVersionsAsync(const Model::ListAvailableManagedRuleGroupVersionsRequest& request, const ListAvailableManagedRuleGroupVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1277 1278 /** 1279 * <p>Retrieves an array of managed rule groups that are available for you to use. 1280 * This list includes all Amazon Web Services Managed Rules rule groups and all of 1281 * the Amazon Web Services Marketplace managed rule groups that you're subscribed 1282 * to.</p><p><h3>See Also:</h3> <a 1283 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroups">AWS 1284 * API Reference</a></p> 1285 */ 1286 virtual Model::ListAvailableManagedRuleGroupsOutcome ListAvailableManagedRuleGroups(const Model::ListAvailableManagedRuleGroupsRequest& request) const; 1287 1288 /** 1289 * <p>Retrieves an array of managed rule groups that are available for you to use. 1290 * This list includes all Amazon Web Services Managed Rules rule groups and all of 1291 * the Amazon Web Services Marketplace managed rule groups that you're subscribed 1292 * to.</p><p><h3>See Also:</h3> <a 1293 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroups">AWS 1294 * API Reference</a></p> 1295 * 1296 * returns a future to the operation so that it can be executed in parallel to other requests. 1297 */ 1298 virtual Model::ListAvailableManagedRuleGroupsOutcomeCallable ListAvailableManagedRuleGroupsCallable(const Model::ListAvailableManagedRuleGroupsRequest& request) const; 1299 1300 /** 1301 * <p>Retrieves an array of managed rule groups that are available for you to use. 1302 * This list includes all Amazon Web Services Managed Rules rule groups and all of 1303 * the Amazon Web Services Marketplace managed rule groups that you're subscribed 1304 * to.</p><p><h3>See Also:</h3> <a 1305 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroups">AWS 1306 * API Reference</a></p> 1307 * 1308 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1309 */ 1310 virtual void ListAvailableManagedRuleGroupsAsync(const Model::ListAvailableManagedRuleGroupsRequest& request, const ListAvailableManagedRuleGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1311 1312 /** 1313 * <p>Retrieves an array of <a>IPSetSummary</a> objects for the IP sets that you 1314 * manage.</p><p><h3>See Also:</h3> <a 1315 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListIPSets">AWS 1316 * API Reference</a></p> 1317 */ 1318 virtual Model::ListIPSetsOutcome ListIPSets(const Model::ListIPSetsRequest& request) const; 1319 1320 /** 1321 * <p>Retrieves an array of <a>IPSetSummary</a> objects for the IP sets that you 1322 * manage.</p><p><h3>See Also:</h3> <a 1323 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListIPSets">AWS 1324 * API Reference</a></p> 1325 * 1326 * returns a future to the operation so that it can be executed in parallel to other requests. 1327 */ 1328 virtual Model::ListIPSetsOutcomeCallable ListIPSetsCallable(const Model::ListIPSetsRequest& request) const; 1329 1330 /** 1331 * <p>Retrieves an array of <a>IPSetSummary</a> objects for the IP sets that you 1332 * manage.</p><p><h3>See Also:</h3> <a 1333 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListIPSets">AWS 1334 * API Reference</a></p> 1335 * 1336 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1337 */ 1338 virtual void ListIPSetsAsync(const Model::ListIPSetsRequest& request, const ListIPSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1339 1340 /** 1341 * <p>Retrieves an array of your <a>LoggingConfiguration</a> objects.</p><p><h3>See 1342 * Also:</h3> <a 1343 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListLoggingConfigurations">AWS 1344 * API Reference</a></p> 1345 */ 1346 virtual Model::ListLoggingConfigurationsOutcome ListLoggingConfigurations(const Model::ListLoggingConfigurationsRequest& request) const; 1347 1348 /** 1349 * <p>Retrieves an array of your <a>LoggingConfiguration</a> objects.</p><p><h3>See 1350 * Also:</h3> <a 1351 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListLoggingConfigurations">AWS 1352 * API Reference</a></p> 1353 * 1354 * returns a future to the operation so that it can be executed in parallel to other requests. 1355 */ 1356 virtual Model::ListLoggingConfigurationsOutcomeCallable ListLoggingConfigurationsCallable(const Model::ListLoggingConfigurationsRequest& request) const; 1357 1358 /** 1359 * <p>Retrieves an array of your <a>LoggingConfiguration</a> objects.</p><p><h3>See 1360 * Also:</h3> <a 1361 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListLoggingConfigurations">AWS 1362 * API Reference</a></p> 1363 * 1364 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1365 */ 1366 virtual void ListLoggingConfigurationsAsync(const Model::ListLoggingConfigurationsRequest& request, const ListLoggingConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1367 1368 /** 1369 * <p>Retrieves the managed rule sets that you own. </p> <p>This is intended 1370 * for use only by vendors of managed rule sets. Vendors are Amazon Web Services 1371 * and Amazon Web Services Marketplace sellers. </p> <p>Vendors, you can use the 1372 * managed rule set APIs to provide controlled rollout of your versioned managed 1373 * rule group offerings for your customers. The APIs are 1374 * <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, 1375 * <code>PutManagedRuleSetVersions</code>, and 1376 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p><h3>See 1377 * Also:</h3> <a 1378 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListManagedRuleSets">AWS 1379 * API Reference</a></p> 1380 */ 1381 virtual Model::ListManagedRuleSetsOutcome ListManagedRuleSets(const Model::ListManagedRuleSetsRequest& request) const; 1382 1383 /** 1384 * <p>Retrieves the managed rule sets that you own. </p> <p>This is intended 1385 * for use only by vendors of managed rule sets. Vendors are Amazon Web Services 1386 * and Amazon Web Services Marketplace sellers. </p> <p>Vendors, you can use the 1387 * managed rule set APIs to provide controlled rollout of your versioned managed 1388 * rule group offerings for your customers. The APIs are 1389 * <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, 1390 * <code>PutManagedRuleSetVersions</code>, and 1391 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p><h3>See 1392 * Also:</h3> <a 1393 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListManagedRuleSets">AWS 1394 * API Reference</a></p> 1395 * 1396 * returns a future to the operation so that it can be executed in parallel to other requests. 1397 */ 1398 virtual Model::ListManagedRuleSetsOutcomeCallable ListManagedRuleSetsCallable(const Model::ListManagedRuleSetsRequest& request) const; 1399 1400 /** 1401 * <p>Retrieves the managed rule sets that you own. </p> <p>This is intended 1402 * for use only by vendors of managed rule sets. Vendors are Amazon Web Services 1403 * and Amazon Web Services Marketplace sellers. </p> <p>Vendors, you can use the 1404 * managed rule set APIs to provide controlled rollout of your versioned managed 1405 * rule group offerings for your customers. The APIs are 1406 * <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, 1407 * <code>PutManagedRuleSetVersions</code>, and 1408 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p><h3>See 1409 * Also:</h3> <a 1410 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListManagedRuleSets">AWS 1411 * API Reference</a></p> 1412 * 1413 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1414 */ 1415 virtual void ListManagedRuleSetsAsync(const Model::ListManagedRuleSetsRequest& request, const ListManagedRuleSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1416 1417 /** 1418 * <p>Retrieves an array of <a>RegexPatternSetSummary</a> objects for the regex 1419 * pattern sets that you manage.</p><p><h3>See Also:</h3> <a 1420 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRegexPatternSets">AWS 1421 * API Reference</a></p> 1422 */ 1423 virtual Model::ListRegexPatternSetsOutcome ListRegexPatternSets(const Model::ListRegexPatternSetsRequest& request) const; 1424 1425 /** 1426 * <p>Retrieves an array of <a>RegexPatternSetSummary</a> objects for the regex 1427 * pattern sets that you manage.</p><p><h3>See Also:</h3> <a 1428 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRegexPatternSets">AWS 1429 * API Reference</a></p> 1430 * 1431 * returns a future to the operation so that it can be executed in parallel to other requests. 1432 */ 1433 virtual Model::ListRegexPatternSetsOutcomeCallable ListRegexPatternSetsCallable(const Model::ListRegexPatternSetsRequest& request) const; 1434 1435 /** 1436 * <p>Retrieves an array of <a>RegexPatternSetSummary</a> objects for the regex 1437 * pattern sets that you manage.</p><p><h3>See Also:</h3> <a 1438 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRegexPatternSets">AWS 1439 * API Reference</a></p> 1440 * 1441 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1442 */ 1443 virtual void ListRegexPatternSetsAsync(const Model::ListRegexPatternSetsRequest& request, const ListRegexPatternSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1444 1445 /** 1446 * <p>Retrieves an array of the Amazon Resource Names (ARNs) for the regional 1447 * resources that are associated with the specified web ACL. If you want the list 1448 * of Amazon CloudFront resources, use the CloudFront call 1449 * <code>ListDistributionsByWebACLId</code>. </p><p><h3>See Also:</h3> <a 1450 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListResourcesForWebACL">AWS 1451 * API Reference</a></p> 1452 */ 1453 virtual Model::ListResourcesForWebACLOutcome ListResourcesForWebACL(const Model::ListResourcesForWebACLRequest& request) const; 1454 1455 /** 1456 * <p>Retrieves an array of the Amazon Resource Names (ARNs) for the regional 1457 * resources that are associated with the specified web ACL. If you want the list 1458 * of Amazon CloudFront resources, use the CloudFront call 1459 * <code>ListDistributionsByWebACLId</code>. </p><p><h3>See Also:</h3> <a 1460 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListResourcesForWebACL">AWS 1461 * API Reference</a></p> 1462 * 1463 * returns a future to the operation so that it can be executed in parallel to other requests. 1464 */ 1465 virtual Model::ListResourcesForWebACLOutcomeCallable ListResourcesForWebACLCallable(const Model::ListResourcesForWebACLRequest& request) const; 1466 1467 /** 1468 * <p>Retrieves an array of the Amazon Resource Names (ARNs) for the regional 1469 * resources that are associated with the specified web ACL. If you want the list 1470 * of Amazon CloudFront resources, use the CloudFront call 1471 * <code>ListDistributionsByWebACLId</code>. </p><p><h3>See Also:</h3> <a 1472 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListResourcesForWebACL">AWS 1473 * API Reference</a></p> 1474 * 1475 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1476 */ 1477 virtual void ListResourcesForWebACLAsync(const Model::ListResourcesForWebACLRequest& request, const ListResourcesForWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1478 1479 /** 1480 * <p>Retrieves an array of <a>RuleGroupSummary</a> objects for the rule groups 1481 * that you manage. </p><p><h3>See Also:</h3> <a 1482 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRuleGroups">AWS 1483 * API Reference</a></p> 1484 */ 1485 virtual Model::ListRuleGroupsOutcome ListRuleGroups(const Model::ListRuleGroupsRequest& request) const; 1486 1487 /** 1488 * <p>Retrieves an array of <a>RuleGroupSummary</a> objects for the rule groups 1489 * that you manage. </p><p><h3>See Also:</h3> <a 1490 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRuleGroups">AWS 1491 * API Reference</a></p> 1492 * 1493 * returns a future to the operation so that it can be executed in parallel to other requests. 1494 */ 1495 virtual Model::ListRuleGroupsOutcomeCallable ListRuleGroupsCallable(const Model::ListRuleGroupsRequest& request) const; 1496 1497 /** 1498 * <p>Retrieves an array of <a>RuleGroupSummary</a> objects for the rule groups 1499 * that you manage. </p><p><h3>See Also:</h3> <a 1500 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRuleGroups">AWS 1501 * API Reference</a></p> 1502 * 1503 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1504 */ 1505 virtual void ListRuleGroupsAsync(const Model::ListRuleGroupsRequest& request, const ListRuleGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1506 1507 /** 1508 * <p>Retrieves the <a>TagInfoForResource</a> for the specified resource. Tags are 1509 * key:value pairs that you can use to categorize and manage your resources, for 1510 * purposes like billing. For example, you might set the tag key to "customer" and 1511 * the value to the customer name or ID. You can specify one or more tags to add to 1512 * each Amazon Web Services resource, up to 50 tags for a resource.</p> <p>You can 1513 * tag the Amazon Web Services resources that you manage through WAF: web ACLs, 1514 * rule groups, IP sets, and regex pattern sets. You can't manage or view tags 1515 * through the WAF console. </p><p><h3>See Also:</h3> <a 1516 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListTagsForResource">AWS 1517 * API Reference</a></p> 1518 */ 1519 virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; 1520 1521 /** 1522 * <p>Retrieves the <a>TagInfoForResource</a> for the specified resource. Tags are 1523 * key:value pairs that you can use to categorize and manage your resources, for 1524 * purposes like billing. For example, you might set the tag key to "customer" and 1525 * the value to the customer name or ID. You can specify one or more tags to add to 1526 * each Amazon Web Services resource, up to 50 tags for a resource.</p> <p>You can 1527 * tag the Amazon Web Services resources that you manage through WAF: web ACLs, 1528 * rule groups, IP sets, and regex pattern sets. You can't manage or view tags 1529 * through the WAF console. </p><p><h3>See Also:</h3> <a 1530 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListTagsForResource">AWS 1531 * API Reference</a></p> 1532 * 1533 * returns a future to the operation so that it can be executed in parallel to other requests. 1534 */ 1535 virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; 1536 1537 /** 1538 * <p>Retrieves the <a>TagInfoForResource</a> for the specified resource. Tags are 1539 * key:value pairs that you can use to categorize and manage your resources, for 1540 * purposes like billing. For example, you might set the tag key to "customer" and 1541 * the value to the customer name or ID. You can specify one or more tags to add to 1542 * each Amazon Web Services resource, up to 50 tags for a resource.</p> <p>You can 1543 * tag the Amazon Web Services resources that you manage through WAF: web ACLs, 1544 * rule groups, IP sets, and regex pattern sets. You can't manage or view tags 1545 * through the WAF console. </p><p><h3>See Also:</h3> <a 1546 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListTagsForResource">AWS 1547 * API Reference</a></p> 1548 * 1549 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1550 */ 1551 virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1552 1553 /** 1554 * <p>Retrieves an array of <a>WebACLSummary</a> objects for the web ACLs that you 1555 * manage.</p><p><h3>See Also:</h3> <a 1556 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListWebACLs">AWS 1557 * API Reference</a></p> 1558 */ 1559 virtual Model::ListWebACLsOutcome ListWebACLs(const Model::ListWebACLsRequest& request) const; 1560 1561 /** 1562 * <p>Retrieves an array of <a>WebACLSummary</a> objects for the web ACLs that you 1563 * manage.</p><p><h3>See Also:</h3> <a 1564 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListWebACLs">AWS 1565 * API Reference</a></p> 1566 * 1567 * returns a future to the operation so that it can be executed in parallel to other requests. 1568 */ 1569 virtual Model::ListWebACLsOutcomeCallable ListWebACLsCallable(const Model::ListWebACLsRequest& request) const; 1570 1571 /** 1572 * <p>Retrieves an array of <a>WebACLSummary</a> objects for the web ACLs that you 1573 * manage.</p><p><h3>See Also:</h3> <a 1574 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListWebACLs">AWS 1575 * API Reference</a></p> 1576 * 1577 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1578 */ 1579 virtual void ListWebACLsAsync(const Model::ListWebACLsRequest& request, const ListWebACLsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1580 1581 /** 1582 * <p>Enables the specified <a>LoggingConfiguration</a>, to start logging from a 1583 * web ACL, according to the configuration provided.</p> <p>You can access 1584 * information about all traffic that WAF inspects using the following steps:</p> 1585 * <ol> <li> <p>Create an Amazon Kinesis Data Firehose. </p> <p>Create the data 1586 * firehose with a PUT source and in the Region that you are operating. If you are 1587 * capturing logs for Amazon CloudFront, always create the firehose in US East (N. 1588 * Virginia). </p> <p>Give the data firehose a name that starts with the prefix 1589 * <code>aws-waf-logs-</code>. For example, 1590 * <code>aws-waf-logs-us-east-2-analytics</code>.</p> <p>Do not create the 1591 * data firehose using a <code>Kinesis stream</code> as your source.</p> 1592 * </li> <li> <p>Associate that firehose to your web ACL using a 1593 * <code>PutLoggingConfiguration</code> request.</p> </li> </ol> <p>When you 1594 * successfully enable logging using a <code>PutLoggingConfiguration</code> 1595 * request, WAF will create a service linked role with the necessary permissions to 1596 * write logs to the Amazon Kinesis Data Firehose. For more information, see <a 1597 * href="https://docs.aws.amazon.com/waf/latest/developerguide/logging.html">Logging 1598 * Web ACL Traffic Information</a> in the <i>WAF Developer Guide</i>.</p> 1599 * <p>This operation completely replaces the mutable specifications that you 1600 * already have for the logging configuration with the ones that you provide to 1601 * this call. To modify the logging configuration, retrieve it by calling 1602 * <a>GetLoggingConfiguration</a>, update the settings as needed, and then provide 1603 * the complete logging configuration specification to this call.</p> 1604 * <p><h3>See Also:</h3> <a 1605 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutLoggingConfiguration">AWS 1606 * API Reference</a></p> 1607 */ 1608 virtual Model::PutLoggingConfigurationOutcome PutLoggingConfiguration(const Model::PutLoggingConfigurationRequest& request) const; 1609 1610 /** 1611 * <p>Enables the specified <a>LoggingConfiguration</a>, to start logging from a 1612 * web ACL, according to the configuration provided.</p> <p>You can access 1613 * information about all traffic that WAF inspects using the following steps:</p> 1614 * <ol> <li> <p>Create an Amazon Kinesis Data Firehose. </p> <p>Create the data 1615 * firehose with a PUT source and in the Region that you are operating. If you are 1616 * capturing logs for Amazon CloudFront, always create the firehose in US East (N. 1617 * Virginia). </p> <p>Give the data firehose a name that starts with the prefix 1618 * <code>aws-waf-logs-</code>. For example, 1619 * <code>aws-waf-logs-us-east-2-analytics</code>.</p> <p>Do not create the 1620 * data firehose using a <code>Kinesis stream</code> as your source.</p> 1621 * </li> <li> <p>Associate that firehose to your web ACL using a 1622 * <code>PutLoggingConfiguration</code> request.</p> </li> </ol> <p>When you 1623 * successfully enable logging using a <code>PutLoggingConfiguration</code> 1624 * request, WAF will create a service linked role with the necessary permissions to 1625 * write logs to the Amazon Kinesis Data Firehose. For more information, see <a 1626 * href="https://docs.aws.amazon.com/waf/latest/developerguide/logging.html">Logging 1627 * Web ACL Traffic Information</a> in the <i>WAF Developer Guide</i>.</p> 1628 * <p>This operation completely replaces the mutable specifications that you 1629 * already have for the logging configuration with the ones that you provide to 1630 * this call. To modify the logging configuration, retrieve it by calling 1631 * <a>GetLoggingConfiguration</a>, update the settings as needed, and then provide 1632 * the complete logging configuration specification to this call.</p> 1633 * <p><h3>See Also:</h3> <a 1634 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutLoggingConfiguration">AWS 1635 * API Reference</a></p> 1636 * 1637 * returns a future to the operation so that it can be executed in parallel to other requests. 1638 */ 1639 virtual Model::PutLoggingConfigurationOutcomeCallable PutLoggingConfigurationCallable(const Model::PutLoggingConfigurationRequest& request) const; 1640 1641 /** 1642 * <p>Enables the specified <a>LoggingConfiguration</a>, to start logging from a 1643 * web ACL, according to the configuration provided.</p> <p>You can access 1644 * information about all traffic that WAF inspects using the following steps:</p> 1645 * <ol> <li> <p>Create an Amazon Kinesis Data Firehose. </p> <p>Create the data 1646 * firehose with a PUT source and in the Region that you are operating. If you are 1647 * capturing logs for Amazon CloudFront, always create the firehose in US East (N. 1648 * Virginia). </p> <p>Give the data firehose a name that starts with the prefix 1649 * <code>aws-waf-logs-</code>. For example, 1650 * <code>aws-waf-logs-us-east-2-analytics</code>.</p> <p>Do not create the 1651 * data firehose using a <code>Kinesis stream</code> as your source.</p> 1652 * </li> <li> <p>Associate that firehose to your web ACL using a 1653 * <code>PutLoggingConfiguration</code> request.</p> </li> </ol> <p>When you 1654 * successfully enable logging using a <code>PutLoggingConfiguration</code> 1655 * request, WAF will create a service linked role with the necessary permissions to 1656 * write logs to the Amazon Kinesis Data Firehose. For more information, see <a 1657 * href="https://docs.aws.amazon.com/waf/latest/developerguide/logging.html">Logging 1658 * Web ACL Traffic Information</a> in the <i>WAF Developer Guide</i>.</p> 1659 * <p>This operation completely replaces the mutable specifications that you 1660 * already have for the logging configuration with the ones that you provide to 1661 * this call. To modify the logging configuration, retrieve it by calling 1662 * <a>GetLoggingConfiguration</a>, update the settings as needed, and then provide 1663 * the complete logging configuration specification to this call.</p> 1664 * <p><h3>See Also:</h3> <a 1665 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutLoggingConfiguration">AWS 1666 * API Reference</a></p> 1667 * 1668 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1669 */ 1670 virtual void PutLoggingConfigurationAsync(const Model::PutLoggingConfigurationRequest& request, const PutLoggingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1671 1672 /** 1673 * <p>Defines the versions of your managed rule set that you are offering to the 1674 * customers. Customers see your offerings as managed rule groups with 1675 * versioning.</p> <p>This is intended for use only by vendors of managed 1676 * rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace 1677 * sellers. </p> <p>Vendors, you can use the managed rule set APIs to provide 1678 * controlled rollout of your versioned managed rule group offerings for your 1679 * customers. The APIs are <code>ListManagedRuleSets</code>, 1680 * <code>GetManagedRuleSet</code>, <code>PutManagedRuleSetVersions</code>, and 1681 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p>Customers 1682 * retrieve their managed rule group list by calling 1683 * <a>ListAvailableManagedRuleGroups</a>. The name that you provide here for your 1684 * managed rule set is the name the customer sees for the corresponding managed 1685 * rule group. Customers can retrieve the available versions for a managed rule 1686 * group by calling <a>ListAvailableManagedRuleGroupVersions</a>. You provide a 1687 * rule group specification for each version. For each managed rule set, you must 1688 * specify a version that you recommend using. </p> <p>To initiate the expiration 1689 * of a managed rule group version, use 1690 * <a>UpdateManagedRuleSetVersionExpiryDate</a>.</p><p><h3>See Also:</h3> <a 1691 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutManagedRuleSetVersions">AWS 1692 * API Reference</a></p> 1693 */ 1694 virtual Model::PutManagedRuleSetVersionsOutcome PutManagedRuleSetVersions(const Model::PutManagedRuleSetVersionsRequest& request) const; 1695 1696 /** 1697 * <p>Defines the versions of your managed rule set that you are offering to the 1698 * customers. Customers see your offerings as managed rule groups with 1699 * versioning.</p> <p>This is intended for use only by vendors of managed 1700 * rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace 1701 * sellers. </p> <p>Vendors, you can use the managed rule set APIs to provide 1702 * controlled rollout of your versioned managed rule group offerings for your 1703 * customers. The APIs are <code>ListManagedRuleSets</code>, 1704 * <code>GetManagedRuleSet</code>, <code>PutManagedRuleSetVersions</code>, and 1705 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p>Customers 1706 * retrieve their managed rule group list by calling 1707 * <a>ListAvailableManagedRuleGroups</a>. The name that you provide here for your 1708 * managed rule set is the name the customer sees for the corresponding managed 1709 * rule group. Customers can retrieve the available versions for a managed rule 1710 * group by calling <a>ListAvailableManagedRuleGroupVersions</a>. You provide a 1711 * rule group specification for each version. For each managed rule set, you must 1712 * specify a version that you recommend using. </p> <p>To initiate the expiration 1713 * of a managed rule group version, use 1714 * <a>UpdateManagedRuleSetVersionExpiryDate</a>.</p><p><h3>See Also:</h3> <a 1715 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutManagedRuleSetVersions">AWS 1716 * API Reference</a></p> 1717 * 1718 * returns a future to the operation so that it can be executed in parallel to other requests. 1719 */ 1720 virtual Model::PutManagedRuleSetVersionsOutcomeCallable PutManagedRuleSetVersionsCallable(const Model::PutManagedRuleSetVersionsRequest& request) const; 1721 1722 /** 1723 * <p>Defines the versions of your managed rule set that you are offering to the 1724 * customers. Customers see your offerings as managed rule groups with 1725 * versioning.</p> <p>This is intended for use only by vendors of managed 1726 * rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace 1727 * sellers. </p> <p>Vendors, you can use the managed rule set APIs to provide 1728 * controlled rollout of your versioned managed rule group offerings for your 1729 * customers. The APIs are <code>ListManagedRuleSets</code>, 1730 * <code>GetManagedRuleSet</code>, <code>PutManagedRuleSetVersions</code>, and 1731 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p>Customers 1732 * retrieve their managed rule group list by calling 1733 * <a>ListAvailableManagedRuleGroups</a>. The name that you provide here for your 1734 * managed rule set is the name the customer sees for the corresponding managed 1735 * rule group. Customers can retrieve the available versions for a managed rule 1736 * group by calling <a>ListAvailableManagedRuleGroupVersions</a>. You provide a 1737 * rule group specification for each version. For each managed rule set, you must 1738 * specify a version that you recommend using. </p> <p>To initiate the expiration 1739 * of a managed rule group version, use 1740 * <a>UpdateManagedRuleSetVersionExpiryDate</a>.</p><p><h3>See Also:</h3> <a 1741 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutManagedRuleSetVersions">AWS 1742 * API Reference</a></p> 1743 * 1744 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1745 */ 1746 virtual void PutManagedRuleSetVersionsAsync(const Model::PutManagedRuleSetVersionsRequest& request, const PutManagedRuleSetVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1747 1748 /** 1749 * <p>Attaches an IAM policy to the specified resource. Use this to share a rule 1750 * group across accounts.</p> <p>You must be the owner of the rule group to perform 1751 * this operation.</p> <p>This action is subject to the following restrictions:</p> 1752 * <ul> <li> <p>You can attach only one policy with each 1753 * <code>PutPermissionPolicy</code> request.</p> </li> <li> <p>The ARN in the 1754 * request must be a valid WAF <a>RuleGroup</a> ARN and the rule group must exist 1755 * in the same Region.</p> </li> <li> <p>The user making the request must be the 1756 * owner of the rule group.</p> </li> </ul><p><h3>See Also:</h3> <a 1757 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutPermissionPolicy">AWS 1758 * API Reference</a></p> 1759 */ 1760 virtual Model::PutPermissionPolicyOutcome PutPermissionPolicy(const Model::PutPermissionPolicyRequest& request) const; 1761 1762 /** 1763 * <p>Attaches an IAM policy to the specified resource. Use this to share a rule 1764 * group across accounts.</p> <p>You must be the owner of the rule group to perform 1765 * this operation.</p> <p>This action is subject to the following restrictions:</p> 1766 * <ul> <li> <p>You can attach only one policy with each 1767 * <code>PutPermissionPolicy</code> request.</p> </li> <li> <p>The ARN in the 1768 * request must be a valid WAF <a>RuleGroup</a> ARN and the rule group must exist 1769 * in the same Region.</p> </li> <li> <p>The user making the request must be the 1770 * owner of the rule group.</p> </li> </ul><p><h3>See Also:</h3> <a 1771 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutPermissionPolicy">AWS 1772 * API Reference</a></p> 1773 * 1774 * returns a future to the operation so that it can be executed in parallel to other requests. 1775 */ 1776 virtual Model::PutPermissionPolicyOutcomeCallable PutPermissionPolicyCallable(const Model::PutPermissionPolicyRequest& request) const; 1777 1778 /** 1779 * <p>Attaches an IAM policy to the specified resource. Use this to share a rule 1780 * group across accounts.</p> <p>You must be the owner of the rule group to perform 1781 * this operation.</p> <p>This action is subject to the following restrictions:</p> 1782 * <ul> <li> <p>You can attach only one policy with each 1783 * <code>PutPermissionPolicy</code> request.</p> </li> <li> <p>The ARN in the 1784 * request must be a valid WAF <a>RuleGroup</a> ARN and the rule group must exist 1785 * in the same Region.</p> </li> <li> <p>The user making the request must be the 1786 * owner of the rule group.</p> </li> </ul><p><h3>See Also:</h3> <a 1787 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutPermissionPolicy">AWS 1788 * API Reference</a></p> 1789 * 1790 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1791 */ 1792 virtual void PutPermissionPolicyAsync(const Model::PutPermissionPolicyRequest& request, const PutPermissionPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1793 1794 /** 1795 * <p>Associates tags with the specified Amazon Web Services resource. Tags are 1796 * key:value pairs that you can use to categorize and manage your resources, for 1797 * purposes like billing. For example, you might set the tag key to "customer" and 1798 * the value to the customer name or ID. You can specify one or more tags to add to 1799 * each Amazon Web Services resource, up to 50 tags for a resource.</p> <p>You can 1800 * tag the Amazon Web Services resources that you manage through WAF: web ACLs, 1801 * rule groups, IP sets, and regex pattern sets. You can't manage or view tags 1802 * through the WAF console. </p><p><h3>See Also:</h3> <a 1803 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/TagResource">AWS 1804 * API Reference</a></p> 1805 */ 1806 virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; 1807 1808 /** 1809 * <p>Associates tags with the specified Amazon Web Services resource. Tags are 1810 * key:value pairs that you can use to categorize and manage your resources, for 1811 * purposes like billing. For example, you might set the tag key to "customer" and 1812 * the value to the customer name or ID. You can specify one or more tags to add to 1813 * each Amazon Web Services resource, up to 50 tags for a resource.</p> <p>You can 1814 * tag the Amazon Web Services resources that you manage through WAF: web ACLs, 1815 * rule groups, IP sets, and regex pattern sets. You can't manage or view tags 1816 * through the WAF console. </p><p><h3>See Also:</h3> <a 1817 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/TagResource">AWS 1818 * API Reference</a></p> 1819 * 1820 * returns a future to the operation so that it can be executed in parallel to other requests. 1821 */ 1822 virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; 1823 1824 /** 1825 * <p>Associates tags with the specified Amazon Web Services resource. Tags are 1826 * key:value pairs that you can use to categorize and manage your resources, for 1827 * purposes like billing. For example, you might set the tag key to "customer" and 1828 * the value to the customer name or ID. You can specify one or more tags to add to 1829 * each Amazon Web Services resource, up to 50 tags for a resource.</p> <p>You can 1830 * tag the Amazon Web Services resources that you manage through WAF: web ACLs, 1831 * rule groups, IP sets, and regex pattern sets. You can't manage or view tags 1832 * through the WAF console. </p><p><h3>See Also:</h3> <a 1833 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/TagResource">AWS 1834 * API Reference</a></p> 1835 * 1836 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1837 */ 1838 virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1839 1840 /** 1841 * <p>Disassociates tags from an Amazon Web Services resource. Tags are key:value 1842 * pairs that you can associate with Amazon Web Services resources. For example, 1843 * the tag key might be "customer" and the tag value might be "companyA." You can 1844 * specify one or more tags to add to each container. You can add up to 50 tags to 1845 * each Amazon Web Services resource.</p><p><h3>See Also:</h3> <a 1846 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UntagResource">AWS 1847 * API Reference</a></p> 1848 */ 1849 virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; 1850 1851 /** 1852 * <p>Disassociates tags from an Amazon Web Services resource. Tags are key:value 1853 * pairs that you can associate with Amazon Web Services resources. For example, 1854 * the tag key might be "customer" and the tag value might be "companyA." You can 1855 * specify one or more tags to add to each container. You can add up to 50 tags to 1856 * each Amazon Web Services resource.</p><p><h3>See Also:</h3> <a 1857 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UntagResource">AWS 1858 * API Reference</a></p> 1859 * 1860 * returns a future to the operation so that it can be executed in parallel to other requests. 1861 */ 1862 virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; 1863 1864 /** 1865 * <p>Disassociates tags from an Amazon Web Services resource. Tags are key:value 1866 * pairs that you can associate with Amazon Web Services resources. For example, 1867 * the tag key might be "customer" and the tag value might be "companyA." You can 1868 * specify one or more tags to add to each container. You can add up to 50 tags to 1869 * each Amazon Web Services resource.</p><p><h3>See Also:</h3> <a 1870 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UntagResource">AWS 1871 * API Reference</a></p> 1872 * 1873 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1874 */ 1875 virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1876 1877 /** 1878 * <p>Updates the specified <a>IPSet</a>. </p> <p>This operation completely 1879 * replaces the mutable specifications that you already have for the IP set with 1880 * the ones that you provide to this call. To modify the IP set, retrieve it by 1881 * calling <a>GetIPSet</a>, update the settings as needed, and then provide the 1882 * complete IP set specification to this call.</p> <p><h3>See Also:</h3> 1883 * <a 1884 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateIPSet">AWS 1885 * API Reference</a></p> 1886 */ 1887 virtual Model::UpdateIPSetOutcome UpdateIPSet(const Model::UpdateIPSetRequest& request) const; 1888 1889 /** 1890 * <p>Updates the specified <a>IPSet</a>. </p> <p>This operation completely 1891 * replaces the mutable specifications that you already have for the IP set with 1892 * the ones that you provide to this call. To modify the IP set, retrieve it by 1893 * calling <a>GetIPSet</a>, update the settings as needed, and then provide the 1894 * complete IP set specification to this call.</p> <p><h3>See Also:</h3> 1895 * <a 1896 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateIPSet">AWS 1897 * API Reference</a></p> 1898 * 1899 * returns a future to the operation so that it can be executed in parallel to other requests. 1900 */ 1901 virtual Model::UpdateIPSetOutcomeCallable UpdateIPSetCallable(const Model::UpdateIPSetRequest& request) const; 1902 1903 /** 1904 * <p>Updates the specified <a>IPSet</a>. </p> <p>This operation completely 1905 * replaces the mutable specifications that you already have for the IP set with 1906 * the ones that you provide to this call. To modify the IP set, retrieve it by 1907 * calling <a>GetIPSet</a>, update the settings as needed, and then provide the 1908 * complete IP set specification to this call.</p> <p><h3>See Also:</h3> 1909 * <a 1910 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateIPSet">AWS 1911 * API Reference</a></p> 1912 * 1913 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1914 */ 1915 virtual void UpdateIPSetAsync(const Model::UpdateIPSetRequest& request, const UpdateIPSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1916 1917 /** 1918 * <p>Updates the expiration information for your managed rule set. Use this to 1919 * initiate the expiration of a managed rule group version. After you initiate 1920 * expiration for a version, WAF excludes it from the reponse to 1921 * <a>ListAvailableManagedRuleGroupVersions</a> for the managed rule group. </p> 1922 * <p>This is intended for use only by vendors of managed rule sets. Vendors 1923 * are Amazon Web Services and Amazon Web Services Marketplace sellers. </p> 1924 * <p>Vendors, you can use the managed rule set APIs to provide controlled rollout 1925 * of your versioned managed rule group offerings for your customers. The APIs are 1926 * <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, 1927 * <code>PutManagedRuleSetVersions</code>, and 1928 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p><h3>See 1929 * Also:</h3> <a 1930 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateManagedRuleSetVersionExpiryDate">AWS 1931 * API Reference</a></p> 1932 */ 1933 virtual Model::UpdateManagedRuleSetVersionExpiryDateOutcome UpdateManagedRuleSetVersionExpiryDate(const Model::UpdateManagedRuleSetVersionExpiryDateRequest& request) const; 1934 1935 /** 1936 * <p>Updates the expiration information for your managed rule set. Use this to 1937 * initiate the expiration of a managed rule group version. After you initiate 1938 * expiration for a version, WAF excludes it from the reponse to 1939 * <a>ListAvailableManagedRuleGroupVersions</a> for the managed rule group. </p> 1940 * <p>This is intended for use only by vendors of managed rule sets. Vendors 1941 * are Amazon Web Services and Amazon Web Services Marketplace sellers. </p> 1942 * <p>Vendors, you can use the managed rule set APIs to provide controlled rollout 1943 * of your versioned managed rule group offerings for your customers. The APIs are 1944 * <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, 1945 * <code>PutManagedRuleSetVersions</code>, and 1946 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p><h3>See 1947 * Also:</h3> <a 1948 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateManagedRuleSetVersionExpiryDate">AWS 1949 * API Reference</a></p> 1950 * 1951 * returns a future to the operation so that it can be executed in parallel to other requests. 1952 */ 1953 virtual Model::UpdateManagedRuleSetVersionExpiryDateOutcomeCallable UpdateManagedRuleSetVersionExpiryDateCallable(const Model::UpdateManagedRuleSetVersionExpiryDateRequest& request) const; 1954 1955 /** 1956 * <p>Updates the expiration information for your managed rule set. Use this to 1957 * initiate the expiration of a managed rule group version. After you initiate 1958 * expiration for a version, WAF excludes it from the reponse to 1959 * <a>ListAvailableManagedRuleGroupVersions</a> for the managed rule group. </p> 1960 * <p>This is intended for use only by vendors of managed rule sets. Vendors 1961 * are Amazon Web Services and Amazon Web Services Marketplace sellers. </p> 1962 * <p>Vendors, you can use the managed rule set APIs to provide controlled rollout 1963 * of your versioned managed rule group offerings for your customers. The APIs are 1964 * <code>ListManagedRuleSets</code>, <code>GetManagedRuleSet</code>, 1965 * <code>PutManagedRuleSetVersions</code>, and 1966 * <code>UpdateManagedRuleSetVersionExpiryDate</code>.</p> <p><h3>See 1967 * Also:</h3> <a 1968 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateManagedRuleSetVersionExpiryDate">AWS 1969 * API Reference</a></p> 1970 * 1971 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1972 */ 1973 virtual void UpdateManagedRuleSetVersionExpiryDateAsync(const Model::UpdateManagedRuleSetVersionExpiryDateRequest& request, const UpdateManagedRuleSetVersionExpiryDateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1974 1975 /** 1976 * <p>Updates the specified <a>RegexPatternSet</a>.</p> <p>This operation 1977 * completely replaces the mutable specifications that you already have for the 1978 * regex pattern set with the ones that you provide to this call. To modify the 1979 * regex pattern set, retrieve it by calling <a>GetRegexPatternSet</a>, update the 1980 * settings as needed, and then provide the complete regex pattern set 1981 * specification to this call.</p> <p><h3>See Also:</h3> <a 1982 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRegexPatternSet">AWS 1983 * API Reference</a></p> 1984 */ 1985 virtual Model::UpdateRegexPatternSetOutcome UpdateRegexPatternSet(const Model::UpdateRegexPatternSetRequest& request) const; 1986 1987 /** 1988 * <p>Updates the specified <a>RegexPatternSet</a>.</p> <p>This operation 1989 * completely replaces the mutable specifications that you already have for the 1990 * regex pattern set with the ones that you provide to this call. To modify the 1991 * regex pattern set, retrieve it by calling <a>GetRegexPatternSet</a>, update the 1992 * settings as needed, and then provide the complete regex pattern set 1993 * specification to this call.</p> <p><h3>See Also:</h3> <a 1994 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRegexPatternSet">AWS 1995 * API Reference</a></p> 1996 * 1997 * returns a future to the operation so that it can be executed in parallel to other requests. 1998 */ 1999 virtual Model::UpdateRegexPatternSetOutcomeCallable UpdateRegexPatternSetCallable(const Model::UpdateRegexPatternSetRequest& request) const; 2000 2001 /** 2002 * <p>Updates the specified <a>RegexPatternSet</a>.</p> <p>This operation 2003 * completely replaces the mutable specifications that you already have for the 2004 * regex pattern set with the ones that you provide to this call. To modify the 2005 * regex pattern set, retrieve it by calling <a>GetRegexPatternSet</a>, update the 2006 * settings as needed, and then provide the complete regex pattern set 2007 * specification to this call.</p> <p><h3>See Also:</h3> <a 2008 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRegexPatternSet">AWS 2009 * API Reference</a></p> 2010 * 2011 * Queues the request into a thread executor and triggers associated callback when operation has finished. 2012 */ 2013 virtual void UpdateRegexPatternSetAsync(const Model::UpdateRegexPatternSetRequest& request, const UpdateRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 2014 2015 /** 2016 * <p>Updates the specified <a>RuleGroup</a>.</p> <p>This operation 2017 * completely replaces the mutable specifications that you already have for the 2018 * rule group with the ones that you provide to this call. To modify the rule 2019 * group, retrieve it by calling <a>GetRuleGroup</a>, update the settings as 2020 * needed, and then provide the complete rule group specification to this call.</p> 2021 * <p> A rule group defines a collection of rules to inspect and control 2022 * web requests that you can use in a <a>WebACL</a>. When you create a rule group, 2023 * you define an immutable capacity limit. If you update a rule group, you must 2024 * stay within the capacity. This allows others to reuse the rule group with 2025 * confidence in its capacity requirements. </p><p><h3>See Also:</h3> <a 2026 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRuleGroup">AWS 2027 * API Reference</a></p> 2028 */ 2029 virtual Model::UpdateRuleGroupOutcome UpdateRuleGroup(const Model::UpdateRuleGroupRequest& request) const; 2030 2031 /** 2032 * <p>Updates the specified <a>RuleGroup</a>.</p> <p>This operation 2033 * completely replaces the mutable specifications that you already have for the 2034 * rule group with the ones that you provide to this call. To modify the rule 2035 * group, retrieve it by calling <a>GetRuleGroup</a>, update the settings as 2036 * needed, and then provide the complete rule group specification to this call.</p> 2037 * <p> A rule group defines a collection of rules to inspect and control 2038 * web requests that you can use in a <a>WebACL</a>. When you create a rule group, 2039 * you define an immutable capacity limit. If you update a rule group, you must 2040 * stay within the capacity. This allows others to reuse the rule group with 2041 * confidence in its capacity requirements. </p><p><h3>See Also:</h3> <a 2042 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRuleGroup">AWS 2043 * API Reference</a></p> 2044 * 2045 * returns a future to the operation so that it can be executed in parallel to other requests. 2046 */ 2047 virtual Model::UpdateRuleGroupOutcomeCallable UpdateRuleGroupCallable(const Model::UpdateRuleGroupRequest& request) const; 2048 2049 /** 2050 * <p>Updates the specified <a>RuleGroup</a>.</p> <p>This operation 2051 * completely replaces the mutable specifications that you already have for the 2052 * rule group with the ones that you provide to this call. To modify the rule 2053 * group, retrieve it by calling <a>GetRuleGroup</a>, update the settings as 2054 * needed, and then provide the complete rule group specification to this call.</p> 2055 * <p> A rule group defines a collection of rules to inspect and control 2056 * web requests that you can use in a <a>WebACL</a>. When you create a rule group, 2057 * you define an immutable capacity limit. If you update a rule group, you must 2058 * stay within the capacity. This allows others to reuse the rule group with 2059 * confidence in its capacity requirements. </p><p><h3>See Also:</h3> <a 2060 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRuleGroup">AWS 2061 * API Reference</a></p> 2062 * 2063 * Queues the request into a thread executor and triggers associated callback when operation has finished. 2064 */ 2065 virtual void UpdateRuleGroupAsync(const Model::UpdateRuleGroupRequest& request, const UpdateRuleGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 2066 2067 /** 2068 * <p>Updates the specified <a>WebACL</a>.</p> <p>This operation completely 2069 * replaces the mutable specifications that you already have for the web ACL with 2070 * the ones that you provide to this call. To modify the web ACL, retrieve it by 2071 * calling <a>GetWebACL</a>, update the settings as needed, and then provide the 2072 * complete web ACL specification to this call.</p> <p> A web ACL defines a 2073 * collection of rules to use to inspect and control web requests. Each rule has an 2074 * action defined (allow, block, or count) for requests that match the statement of 2075 * the rule. In the web ACL, you assign a default action to take (allow, block) for 2076 * any request that does not match any of the rules. The rules in a web ACL can be 2077 * a combination of the types <a>Rule</a>, <a>RuleGroup</a>, and managed rule 2078 * group. You can associate a web ACL with one or more Amazon Web Services 2079 * resources to protect. The resources can be an Amazon CloudFront distribution, an 2080 * Amazon API Gateway REST API, an Application Load Balancer, or an AppSync GraphQL 2081 * API. </p><p><h3>See Also:</h3> <a 2082 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateWebACL">AWS 2083 * API Reference</a></p> 2084 */ 2085 virtual Model::UpdateWebACLOutcome UpdateWebACL(const Model::UpdateWebACLRequest& request) const; 2086 2087 /** 2088 * <p>Updates the specified <a>WebACL</a>.</p> <p>This operation completely 2089 * replaces the mutable specifications that you already have for the web ACL with 2090 * the ones that you provide to this call. To modify the web ACL, retrieve it by 2091 * calling <a>GetWebACL</a>, update the settings as needed, and then provide the 2092 * complete web ACL specification to this call.</p> <p> A web ACL defines a 2093 * collection of rules to use to inspect and control web requests. Each rule has an 2094 * action defined (allow, block, or count) for requests that match the statement of 2095 * the rule. In the web ACL, you assign a default action to take (allow, block) for 2096 * any request that does not match any of the rules. The rules in a web ACL can be 2097 * a combination of the types <a>Rule</a>, <a>RuleGroup</a>, and managed rule 2098 * group. You can associate a web ACL with one or more Amazon Web Services 2099 * resources to protect. The resources can be an Amazon CloudFront distribution, an 2100 * Amazon API Gateway REST API, an Application Load Balancer, or an AppSync GraphQL 2101 * API. </p><p><h3>See Also:</h3> <a 2102 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateWebACL">AWS 2103 * API Reference</a></p> 2104 * 2105 * returns a future to the operation so that it can be executed in parallel to other requests. 2106 */ 2107 virtual Model::UpdateWebACLOutcomeCallable UpdateWebACLCallable(const Model::UpdateWebACLRequest& request) const; 2108 2109 /** 2110 * <p>Updates the specified <a>WebACL</a>.</p> <p>This operation completely 2111 * replaces the mutable specifications that you already have for the web ACL with 2112 * the ones that you provide to this call. To modify the web ACL, retrieve it by 2113 * calling <a>GetWebACL</a>, update the settings as needed, and then provide the 2114 * complete web ACL specification to this call.</p> <p> A web ACL defines a 2115 * collection of rules to use to inspect and control web requests. Each rule has an 2116 * action defined (allow, block, or count) for requests that match the statement of 2117 * the rule. In the web ACL, you assign a default action to take (allow, block) for 2118 * any request that does not match any of the rules. The rules in a web ACL can be 2119 * a combination of the types <a>Rule</a>, <a>RuleGroup</a>, and managed rule 2120 * group. You can associate a web ACL with one or more Amazon Web Services 2121 * resources to protect. The resources can be an Amazon CloudFront distribution, an 2122 * Amazon API Gateway REST API, an Application Load Balancer, or an AppSync GraphQL 2123 * API. </p><p><h3>See Also:</h3> <a 2124 * href="http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateWebACL">AWS 2125 * API Reference</a></p> 2126 * 2127 * Queues the request into a thread executor and triggers associated callback when operation has finished. 2128 */ 2129 virtual void UpdateWebACLAsync(const Model::UpdateWebACLRequest& request, const UpdateWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 2130 2131 2132 void OverrideEndpoint(const Aws::String& endpoint); 2133 private: 2134 void init(const Aws::Client::ClientConfiguration& clientConfiguration); 2135 void AssociateWebACLAsyncHelper(const Model::AssociateWebACLRequest& request, const AssociateWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2136 void CheckCapacityAsyncHelper(const Model::CheckCapacityRequest& request, const CheckCapacityResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2137 void CreateIPSetAsyncHelper(const Model::CreateIPSetRequest& request, const CreateIPSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2138 void CreateRegexPatternSetAsyncHelper(const Model::CreateRegexPatternSetRequest& request, const CreateRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2139 void CreateRuleGroupAsyncHelper(const Model::CreateRuleGroupRequest& request, const CreateRuleGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2140 void CreateWebACLAsyncHelper(const Model::CreateWebACLRequest& request, const CreateWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2141 void DeleteFirewallManagerRuleGroupsAsyncHelper(const Model::DeleteFirewallManagerRuleGroupsRequest& request, const DeleteFirewallManagerRuleGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2142 void DeleteIPSetAsyncHelper(const Model::DeleteIPSetRequest& request, const DeleteIPSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2143 void DeleteLoggingConfigurationAsyncHelper(const Model::DeleteLoggingConfigurationRequest& request, const DeleteLoggingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2144 void DeletePermissionPolicyAsyncHelper(const Model::DeletePermissionPolicyRequest& request, const DeletePermissionPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2145 void DeleteRegexPatternSetAsyncHelper(const Model::DeleteRegexPatternSetRequest& request, const DeleteRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2146 void DeleteRuleGroupAsyncHelper(const Model::DeleteRuleGroupRequest& request, const DeleteRuleGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2147 void DeleteWebACLAsyncHelper(const Model::DeleteWebACLRequest& request, const DeleteWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2148 void DescribeManagedRuleGroupAsyncHelper(const Model::DescribeManagedRuleGroupRequest& request, const DescribeManagedRuleGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2149 void DisassociateWebACLAsyncHelper(const Model::DisassociateWebACLRequest& request, const DisassociateWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2150 void GetIPSetAsyncHelper(const Model::GetIPSetRequest& request, const GetIPSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2151 void GetLoggingConfigurationAsyncHelper(const Model::GetLoggingConfigurationRequest& request, const GetLoggingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2152 void GetManagedRuleSetAsyncHelper(const Model::GetManagedRuleSetRequest& request, const GetManagedRuleSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2153 void GetPermissionPolicyAsyncHelper(const Model::GetPermissionPolicyRequest& request, const GetPermissionPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2154 void GetRateBasedStatementManagedKeysAsyncHelper(const Model::GetRateBasedStatementManagedKeysRequest& request, const GetRateBasedStatementManagedKeysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2155 void GetRegexPatternSetAsyncHelper(const Model::GetRegexPatternSetRequest& request, const GetRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2156 void GetRuleGroupAsyncHelper(const Model::GetRuleGroupRequest& request, const GetRuleGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2157 void GetSampledRequestsAsyncHelper(const Model::GetSampledRequestsRequest& request, const GetSampledRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2158 void GetWebACLAsyncHelper(const Model::GetWebACLRequest& request, const GetWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2159 void GetWebACLForResourceAsyncHelper(const Model::GetWebACLForResourceRequest& request, const GetWebACLForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2160 void ListAvailableManagedRuleGroupVersionsAsyncHelper(const Model::ListAvailableManagedRuleGroupVersionsRequest& request, const ListAvailableManagedRuleGroupVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2161 void ListAvailableManagedRuleGroupsAsyncHelper(const Model::ListAvailableManagedRuleGroupsRequest& request, const ListAvailableManagedRuleGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2162 void ListIPSetsAsyncHelper(const Model::ListIPSetsRequest& request, const ListIPSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2163 void ListLoggingConfigurationsAsyncHelper(const Model::ListLoggingConfigurationsRequest& request, const ListLoggingConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2164 void ListManagedRuleSetsAsyncHelper(const Model::ListManagedRuleSetsRequest& request, const ListManagedRuleSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2165 void ListRegexPatternSetsAsyncHelper(const Model::ListRegexPatternSetsRequest& request, const ListRegexPatternSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2166 void ListResourcesForWebACLAsyncHelper(const Model::ListResourcesForWebACLRequest& request, const ListResourcesForWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2167 void ListRuleGroupsAsyncHelper(const Model::ListRuleGroupsRequest& request, const ListRuleGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2168 void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2169 void ListWebACLsAsyncHelper(const Model::ListWebACLsRequest& request, const ListWebACLsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2170 void PutLoggingConfigurationAsyncHelper(const Model::PutLoggingConfigurationRequest& request, const PutLoggingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2171 void PutManagedRuleSetVersionsAsyncHelper(const Model::PutManagedRuleSetVersionsRequest& request, const PutManagedRuleSetVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2172 void PutPermissionPolicyAsyncHelper(const Model::PutPermissionPolicyRequest& request, const PutPermissionPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2173 void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2174 void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2175 void UpdateIPSetAsyncHelper(const Model::UpdateIPSetRequest& request, const UpdateIPSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2176 void UpdateManagedRuleSetVersionExpiryDateAsyncHelper(const Model::UpdateManagedRuleSetVersionExpiryDateRequest& request, const UpdateManagedRuleSetVersionExpiryDateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2177 void UpdateRegexPatternSetAsyncHelper(const Model::UpdateRegexPatternSetRequest& request, const UpdateRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2178 void UpdateRuleGroupAsyncHelper(const Model::UpdateRuleGroupRequest& request, const UpdateRuleGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2179 void UpdateWebACLAsyncHelper(const Model::UpdateWebACLRequest& request, const UpdateWebACLResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 2180 2181 Aws::String m_uri; 2182 Aws::String m_configScheme; 2183 std::shared_ptr<Aws::Utils::Threading::Executor> m_executor; 2184 }; 2185 2186 } // namespace WAFV2 2187 } // namespace Aws 2188