aws-sdk-networkfirewall 1.81.0 → 1.82.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -766,6 +766,88 @@ module Aws::NetworkFirewall
766
766
  req.send_request(options)
767
767
  end
768
768
 
769
+ # Attaches ProxyRuleGroup resources to a ProxyConfiguration
770
+ #
771
+ # A Proxy Configuration defines the monitoring and protection behavior
772
+ # for a Proxy. The details of the behavior are defined in the rule
773
+ # groups that you add to your configuration.
774
+ #
775
+ # @option params [String] :proxy_configuration_name
776
+ # The descriptive name of the proxy configuration. You can't change the
777
+ # name of a proxy configuration after you create it.
778
+ #
779
+ # You must specify the ARN or the name, and you can specify both.
780
+ #
781
+ # @option params [String] :proxy_configuration_arn
782
+ # The Amazon Resource Name (ARN) of a proxy configuration.
783
+ #
784
+ # You must specify the ARN or the name, and you can specify both.
785
+ #
786
+ # @option params [required, Array<Types::ProxyRuleGroupAttachment>] :rule_groups
787
+ # The proxy rule group(s) to attach to the proxy configuration
788
+ #
789
+ # @option params [required, String] :update_token
790
+ # A token used for optimistic locking. Network Firewall returns a token
791
+ # to your requests that access the proxy configuration. The token marks
792
+ # the state of the proxy configuration resource at the time of the
793
+ # request.
794
+ #
795
+ # To make changes to the proxy configuration, you provide the token in
796
+ # your request. Network Firewall uses the token to ensure that the proxy
797
+ # configuration hasn't changed since you last retrieved it. If it has
798
+ # changed, the operation fails with an `InvalidTokenException`. If this
799
+ # happens, retrieve the proxy configuration again to get a current copy
800
+ # of it with a current token. Reapply your changes as needed, then try
801
+ # the operation again using the new token.
802
+ #
803
+ # @return [Types::AttachRuleGroupsToProxyConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
804
+ #
805
+ # * {Types::AttachRuleGroupsToProxyConfigurationResponse#proxy_configuration #proxy_configuration} => Types::ProxyConfiguration
806
+ # * {Types::AttachRuleGroupsToProxyConfigurationResponse#update_token #update_token} => String
807
+ #
808
+ # @example Request syntax with placeholder values
809
+ #
810
+ # resp = client.attach_rule_groups_to_proxy_configuration({
811
+ # proxy_configuration_name: "ResourceName",
812
+ # proxy_configuration_arn: "ResourceArn",
813
+ # rule_groups: [ # required
814
+ # {
815
+ # proxy_rule_group_name: "ResourceName",
816
+ # insert_position: 1,
817
+ # },
818
+ # ],
819
+ # update_token: "UpdateToken", # required
820
+ # })
821
+ #
822
+ # @example Response structure
823
+ #
824
+ # resp.proxy_configuration.proxy_configuration_name #=> String
825
+ # resp.proxy_configuration.proxy_configuration_arn #=> String
826
+ # resp.proxy_configuration.description #=> String
827
+ # resp.proxy_configuration.create_time #=> Time
828
+ # resp.proxy_configuration.delete_time #=> Time
829
+ # resp.proxy_configuration.rule_groups #=> Array
830
+ # resp.proxy_configuration.rule_groups[0].proxy_rule_group_name #=> String
831
+ # resp.proxy_configuration.rule_groups[0].proxy_rule_group_arn #=> String
832
+ # resp.proxy_configuration.rule_groups[0].type #=> String
833
+ # resp.proxy_configuration.rule_groups[0].priority #=> Integer
834
+ # resp.proxy_configuration.default_rule_phase_actions.pre_dns #=> String, one of "ALLOW", "DENY", "ALERT"
835
+ # resp.proxy_configuration.default_rule_phase_actions.pre_request #=> String, one of "ALLOW", "DENY", "ALERT"
836
+ # resp.proxy_configuration.default_rule_phase_actions.post_response #=> String, one of "ALLOW", "DENY", "ALERT"
837
+ # resp.proxy_configuration.tags #=> Array
838
+ # resp.proxy_configuration.tags[0].key #=> String
839
+ # resp.proxy_configuration.tags[0].value #=> String
840
+ # resp.update_token #=> String
841
+ #
842
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/AttachRuleGroupsToProxyConfiguration AWS API Documentation
843
+ #
844
+ # @overload attach_rule_groups_to_proxy_configuration(params = {})
845
+ # @param [Hash] params ({})
846
+ def attach_rule_groups_to_proxy_configuration(params = {}, options = {})
847
+ req = build_request(:attach_rule_groups_to_proxy_configuration, params)
848
+ req.send_request(options)
849
+ end
850
+
769
851
  # Creates an Network Firewall Firewall and accompanying FirewallStatus
770
852
  # for a VPC.
771
853
  #
@@ -1123,6 +1205,468 @@ module Aws::NetworkFirewall
1123
1205
  req.send_request(options)
1124
1206
  end
1125
1207
 
1208
+ # Creates an Network Firewall Proxy
1209
+ #
1210
+ # Attaches a Proxy configuration to a NAT Gateway.
1211
+ #
1212
+ # To manage a proxy's tags, use the standard Amazon Web Services
1213
+ # resource tagging operations, ListTagsForResource, TagResource, and
1214
+ # UntagResource.
1215
+ #
1216
+ # To retrieve information about proxies, use ListProxies and
1217
+ # DescribeProxy.
1218
+ #
1219
+ # @option params [required, String] :proxy_name
1220
+ # The descriptive name of the proxy. You can't change the name of a
1221
+ # proxy after you create it.
1222
+ #
1223
+ # @option params [required, String] :nat_gateway_id
1224
+ # A unique identifier for the NAT gateway to use with proxy resources.
1225
+ #
1226
+ # @option params [String] :proxy_configuration_name
1227
+ # The descriptive name of the proxy configuration. You can't change the
1228
+ # name of a proxy configuration after you create it.
1229
+ #
1230
+ # You must specify the ARN or the name, and you can specify both.
1231
+ #
1232
+ # @option params [String] :proxy_configuration_arn
1233
+ # The Amazon Resource Name (ARN) of a proxy configuration.
1234
+ #
1235
+ # You must specify the ARN or the name, and you can specify both.
1236
+ #
1237
+ # @option params [Array<Types::ListenerPropertyRequest>] :listener_properties
1238
+ # Listener properties for HTTP and HTTPS traffic.
1239
+ #
1240
+ # @option params [required, Types::TlsInterceptPropertiesRequest] :tls_intercept_properties
1241
+ # TLS decryption on traffic to filter on attributes in the HTTP header.
1242
+ #
1243
+ # @option params [Array<Types::Tag>] :tags
1244
+ # The key:value pairs to associate with the resource.
1245
+ #
1246
+ # @return [Types::CreateProxyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1247
+ #
1248
+ # * {Types::CreateProxyResponse#proxy #proxy} => Types::Proxy
1249
+ # * {Types::CreateProxyResponse#update_token #update_token} => String
1250
+ #
1251
+ # @example Request syntax with placeholder values
1252
+ #
1253
+ # resp = client.create_proxy({
1254
+ # proxy_name: "ResourceName", # required
1255
+ # nat_gateway_id: "NatGatewayId", # required
1256
+ # proxy_configuration_name: "ResourceName",
1257
+ # proxy_configuration_arn: "ResourceArn",
1258
+ # listener_properties: [
1259
+ # {
1260
+ # port: 1, # required
1261
+ # type: "HTTP", # required, accepts HTTP, HTTPS
1262
+ # },
1263
+ # ],
1264
+ # tls_intercept_properties: { # required
1265
+ # pca_arn: "ResourceArn",
1266
+ # tls_intercept_mode: "ENABLED", # accepts ENABLED, DISABLED
1267
+ # },
1268
+ # tags: [
1269
+ # {
1270
+ # key: "TagKey", # required
1271
+ # value: "TagValue", # required
1272
+ # },
1273
+ # ],
1274
+ # })
1275
+ #
1276
+ # @example Response structure
1277
+ #
1278
+ # resp.proxy.create_time #=> Time
1279
+ # resp.proxy.delete_time #=> Time
1280
+ # resp.proxy.update_time #=> Time
1281
+ # resp.proxy.failure_code #=> String
1282
+ # resp.proxy.failure_message #=> String
1283
+ # resp.proxy.proxy_state #=> String, one of "ATTACHING", "ATTACHED", "DETACHING", "DETACHED", "ATTACH_FAILED", "DETACH_FAILED"
1284
+ # resp.proxy.proxy_modify_state #=> String, one of "MODIFYING", "COMPLETED", "FAILED"
1285
+ # resp.proxy.nat_gateway_id #=> String
1286
+ # resp.proxy.proxy_configuration_name #=> String
1287
+ # resp.proxy.proxy_configuration_arn #=> String
1288
+ # resp.proxy.proxy_name #=> String
1289
+ # resp.proxy.proxy_arn #=> String
1290
+ # resp.proxy.listener_properties #=> Array
1291
+ # resp.proxy.listener_properties[0].port #=> Integer
1292
+ # resp.proxy.listener_properties[0].type #=> String, one of "HTTP", "HTTPS"
1293
+ # resp.proxy.tls_intercept_properties.pca_arn #=> String
1294
+ # resp.proxy.tls_intercept_properties.tls_intercept_mode #=> String, one of "ENABLED", "DISABLED"
1295
+ # resp.proxy.tags #=> Array
1296
+ # resp.proxy.tags[0].key #=> String
1297
+ # resp.proxy.tags[0].value #=> String
1298
+ # resp.update_token #=> String
1299
+ #
1300
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateProxy AWS API Documentation
1301
+ #
1302
+ # @overload create_proxy(params = {})
1303
+ # @param [Hash] params ({})
1304
+ def create_proxy(params = {}, options = {})
1305
+ req = build_request(:create_proxy, params)
1306
+ req.send_request(options)
1307
+ end
1308
+
1309
+ # Creates an Network Firewall ProxyConfiguration
1310
+ #
1311
+ # A Proxy Configuration defines the monitoring and protection behavior
1312
+ # for a Proxy. The details of the behavior are defined in the rule
1313
+ # groups that you add to your configuration.
1314
+ #
1315
+ # To manage a proxy configuration's tags, use the standard Amazon Web
1316
+ # Services resource tagging operations, ListTagsForResource,
1317
+ # TagResource, and UntagResource.
1318
+ #
1319
+ # To retrieve information about proxies, use ListProxyConfigurations and
1320
+ # DescribeProxyConfiguration.
1321
+ #
1322
+ # @option params [required, String] :proxy_configuration_name
1323
+ # The descriptive name of the proxy configuration. You can't change the
1324
+ # name of a proxy configuration after you create it.
1325
+ #
1326
+ # @option params [String] :description
1327
+ # A description of the proxy configuration.
1328
+ #
1329
+ # @option params [Array<String>] :rule_group_names
1330
+ # The proxy rule group name(s) to attach to the proxy configuration.
1331
+ #
1332
+ # You must specify the ARNs or the names, and you can specify both.
1333
+ #
1334
+ # @option params [Array<String>] :rule_group_arns
1335
+ # The proxy rule group arn(s) to attach to the proxy configuration.
1336
+ #
1337
+ # You must specify the ARNs or the names, and you can specify both.
1338
+ #
1339
+ # @option params [required, Types::ProxyConfigDefaultRulePhaseActionsRequest] :default_rule_phase_actions
1340
+ # Evaluation points in the traffic flow where rules are applied. There
1341
+ # are three phases in a traffic where the rule match is applied.
1342
+ #
1343
+ # @option params [Array<Types::Tag>] :tags
1344
+ # The key:value pairs to associate with the resource.
1345
+ #
1346
+ # @return [Types::CreateProxyConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1347
+ #
1348
+ # * {Types::CreateProxyConfigurationResponse#proxy_configuration #proxy_configuration} => Types::ProxyConfiguration
1349
+ # * {Types::CreateProxyConfigurationResponse#update_token #update_token} => String
1350
+ #
1351
+ # @example Request syntax with placeholder values
1352
+ #
1353
+ # resp = client.create_proxy_configuration({
1354
+ # proxy_configuration_name: "ResourceName", # required
1355
+ # description: "Description",
1356
+ # rule_group_names: ["ResourceName"],
1357
+ # rule_group_arns: ["ResourceArn"],
1358
+ # default_rule_phase_actions: { # required
1359
+ # pre_dns: "ALLOW", # accepts ALLOW, DENY, ALERT
1360
+ # pre_request: "ALLOW", # accepts ALLOW, DENY, ALERT
1361
+ # post_response: "ALLOW", # accepts ALLOW, DENY, ALERT
1362
+ # },
1363
+ # tags: [
1364
+ # {
1365
+ # key: "TagKey", # required
1366
+ # value: "TagValue", # required
1367
+ # },
1368
+ # ],
1369
+ # })
1370
+ #
1371
+ # @example Response structure
1372
+ #
1373
+ # resp.proxy_configuration.proxy_configuration_name #=> String
1374
+ # resp.proxy_configuration.proxy_configuration_arn #=> String
1375
+ # resp.proxy_configuration.description #=> String
1376
+ # resp.proxy_configuration.create_time #=> Time
1377
+ # resp.proxy_configuration.delete_time #=> Time
1378
+ # resp.proxy_configuration.rule_groups #=> Array
1379
+ # resp.proxy_configuration.rule_groups[0].proxy_rule_group_name #=> String
1380
+ # resp.proxy_configuration.rule_groups[0].proxy_rule_group_arn #=> String
1381
+ # resp.proxy_configuration.rule_groups[0].type #=> String
1382
+ # resp.proxy_configuration.rule_groups[0].priority #=> Integer
1383
+ # resp.proxy_configuration.default_rule_phase_actions.pre_dns #=> String, one of "ALLOW", "DENY", "ALERT"
1384
+ # resp.proxy_configuration.default_rule_phase_actions.pre_request #=> String, one of "ALLOW", "DENY", "ALERT"
1385
+ # resp.proxy_configuration.default_rule_phase_actions.post_response #=> String, one of "ALLOW", "DENY", "ALERT"
1386
+ # resp.proxy_configuration.tags #=> Array
1387
+ # resp.proxy_configuration.tags[0].key #=> String
1388
+ # resp.proxy_configuration.tags[0].value #=> String
1389
+ # resp.update_token #=> String
1390
+ #
1391
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateProxyConfiguration AWS API Documentation
1392
+ #
1393
+ # @overload create_proxy_configuration(params = {})
1394
+ # @param [Hash] params ({})
1395
+ def create_proxy_configuration(params = {}, options = {})
1396
+ req = build_request(:create_proxy_configuration, params)
1397
+ req.send_request(options)
1398
+ end
1399
+
1400
+ # Creates an Network Firewall ProxyRuleGroup
1401
+ #
1402
+ # Collections of related proxy filtering rules. Rule groups help you
1403
+ # manage and reuse sets of rules across multiple proxy configurations.
1404
+ #
1405
+ # To manage a proxy rule group's tags, use the standard Amazon Web
1406
+ # Services resource tagging operations, ListTagsForResource,
1407
+ # TagResource, and UntagResource.
1408
+ #
1409
+ # To retrieve information about proxy rule groups, use
1410
+ # ListProxyRuleGroups and DescribeProxyRuleGroup.
1411
+ #
1412
+ # To retrieve information about individual proxy rules, use
1413
+ # DescribeProxyRuleGroup and DescribeProxyRule.
1414
+ #
1415
+ # @option params [required, String] :proxy_rule_group_name
1416
+ # The descriptive name of the proxy rule group. You can't change the
1417
+ # name of a proxy rule group after you create it.
1418
+ #
1419
+ # @option params [String] :description
1420
+ # A description of the proxy rule group.
1421
+ #
1422
+ # @option params [Types::ProxyRulesByRequestPhase] :rules
1423
+ # Individual rules that define match conditions and actions for
1424
+ # application-layer traffic. Rules specify what to inspect (domains,
1425
+ # headers, methods) and what action to take (allow, deny, alert).
1426
+ #
1427
+ # @option params [Array<Types::Tag>] :tags
1428
+ # The key:value pairs to associate with the resource.
1429
+ #
1430
+ # @return [Types::CreateProxyRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1431
+ #
1432
+ # * {Types::CreateProxyRuleGroupResponse#proxy_rule_group #proxy_rule_group} => Types::ProxyRuleGroup
1433
+ # * {Types::CreateProxyRuleGroupResponse#update_token #update_token} => String
1434
+ #
1435
+ # @example Request syntax with placeholder values
1436
+ #
1437
+ # resp = client.create_proxy_rule_group({
1438
+ # proxy_rule_group_name: "ResourceName", # required
1439
+ # description: "Description",
1440
+ # rules: {
1441
+ # pre_dns: [
1442
+ # {
1443
+ # proxy_rule_name: "ResourceName",
1444
+ # description: "Description",
1445
+ # action: "ALLOW", # accepts ALLOW, DENY, ALERT
1446
+ # conditions: [
1447
+ # {
1448
+ # condition_operator: "ConditionOperator",
1449
+ # condition_key: "ConditionKey",
1450
+ # condition_values: ["ProxyConditionValue"],
1451
+ # },
1452
+ # ],
1453
+ # },
1454
+ # ],
1455
+ # pre_request: [
1456
+ # {
1457
+ # proxy_rule_name: "ResourceName",
1458
+ # description: "Description",
1459
+ # action: "ALLOW", # accepts ALLOW, DENY, ALERT
1460
+ # conditions: [
1461
+ # {
1462
+ # condition_operator: "ConditionOperator",
1463
+ # condition_key: "ConditionKey",
1464
+ # condition_values: ["ProxyConditionValue"],
1465
+ # },
1466
+ # ],
1467
+ # },
1468
+ # ],
1469
+ # post_response: [
1470
+ # {
1471
+ # proxy_rule_name: "ResourceName",
1472
+ # description: "Description",
1473
+ # action: "ALLOW", # accepts ALLOW, DENY, ALERT
1474
+ # conditions: [
1475
+ # {
1476
+ # condition_operator: "ConditionOperator",
1477
+ # condition_key: "ConditionKey",
1478
+ # condition_values: ["ProxyConditionValue"],
1479
+ # },
1480
+ # ],
1481
+ # },
1482
+ # ],
1483
+ # },
1484
+ # tags: [
1485
+ # {
1486
+ # key: "TagKey", # required
1487
+ # value: "TagValue", # required
1488
+ # },
1489
+ # ],
1490
+ # })
1491
+ #
1492
+ # @example Response structure
1493
+ #
1494
+ # resp.proxy_rule_group.proxy_rule_group_name #=> String
1495
+ # resp.proxy_rule_group.proxy_rule_group_arn #=> String
1496
+ # resp.proxy_rule_group.create_time #=> Time
1497
+ # resp.proxy_rule_group.delete_time #=> Time
1498
+ # resp.proxy_rule_group.rules.pre_dns #=> Array
1499
+ # resp.proxy_rule_group.rules.pre_dns[0].proxy_rule_name #=> String
1500
+ # resp.proxy_rule_group.rules.pre_dns[0].description #=> String
1501
+ # resp.proxy_rule_group.rules.pre_dns[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
1502
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions #=> Array
1503
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_operator #=> String
1504
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_key #=> String
1505
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_values #=> Array
1506
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_values[0] #=> String
1507
+ # resp.proxy_rule_group.rules.pre_request #=> Array
1508
+ # resp.proxy_rule_group.rules.pre_request[0].proxy_rule_name #=> String
1509
+ # resp.proxy_rule_group.rules.pre_request[0].description #=> String
1510
+ # resp.proxy_rule_group.rules.pre_request[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
1511
+ # resp.proxy_rule_group.rules.pre_request[0].conditions #=> Array
1512
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_operator #=> String
1513
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_key #=> String
1514
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_values #=> Array
1515
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_values[0] #=> String
1516
+ # resp.proxy_rule_group.rules.post_response #=> Array
1517
+ # resp.proxy_rule_group.rules.post_response[0].proxy_rule_name #=> String
1518
+ # resp.proxy_rule_group.rules.post_response[0].description #=> String
1519
+ # resp.proxy_rule_group.rules.post_response[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
1520
+ # resp.proxy_rule_group.rules.post_response[0].conditions #=> Array
1521
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_operator #=> String
1522
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_key #=> String
1523
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_values #=> Array
1524
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_values[0] #=> String
1525
+ # resp.proxy_rule_group.description #=> String
1526
+ # resp.proxy_rule_group.tags #=> Array
1527
+ # resp.proxy_rule_group.tags[0].key #=> String
1528
+ # resp.proxy_rule_group.tags[0].value #=> String
1529
+ # resp.update_token #=> String
1530
+ #
1531
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateProxyRuleGroup AWS API Documentation
1532
+ #
1533
+ # @overload create_proxy_rule_group(params = {})
1534
+ # @param [Hash] params ({})
1535
+ def create_proxy_rule_group(params = {}, options = {})
1536
+ req = build_request(:create_proxy_rule_group, params)
1537
+ req.send_request(options)
1538
+ end
1539
+
1540
+ # Creates Network Firewall ProxyRule resources.
1541
+ #
1542
+ # Attaches new proxy rule(s) to an existing proxy rule group.
1543
+ #
1544
+ # To retrieve information about individual proxy rules, use
1545
+ # DescribeProxyRuleGroup and DescribeProxyRule.
1546
+ #
1547
+ # @option params [String] :proxy_rule_group_arn
1548
+ # The Amazon Resource Name (ARN) of a proxy rule group.
1549
+ #
1550
+ # You must specify the ARN or the name, and you can specify both.
1551
+ #
1552
+ # @option params [String] :proxy_rule_group_name
1553
+ # The descriptive name of the proxy rule group. You can't change the
1554
+ # name of a proxy rule group after you create it.
1555
+ #
1556
+ # You must specify the ARN or the name, and you can specify both.
1557
+ #
1558
+ # @option params [required, Types::CreateProxyRulesByRequestPhase] :rules
1559
+ # Individual rules that define match conditions and actions for
1560
+ # application-layer traffic. Rules specify what to inspect (domains,
1561
+ # headers, methods) and what action to take (allow, deny, alert).
1562
+ #
1563
+ # @return [Types::CreateProxyRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1564
+ #
1565
+ # * {Types::CreateProxyRulesResponse#proxy_rule_group #proxy_rule_group} => Types::ProxyRuleGroup
1566
+ # * {Types::CreateProxyRulesResponse#update_token #update_token} => String
1567
+ #
1568
+ # @example Request syntax with placeholder values
1569
+ #
1570
+ # resp = client.create_proxy_rules({
1571
+ # proxy_rule_group_arn: "ResourceArn",
1572
+ # proxy_rule_group_name: "ResourceName",
1573
+ # rules: { # required
1574
+ # pre_dns: [
1575
+ # {
1576
+ # proxy_rule_name: "ResourceName",
1577
+ # description: "Description",
1578
+ # action: "ALLOW", # accepts ALLOW, DENY, ALERT
1579
+ # conditions: [
1580
+ # {
1581
+ # condition_operator: "ConditionOperator",
1582
+ # condition_key: "ConditionKey",
1583
+ # condition_values: ["ProxyConditionValue"],
1584
+ # },
1585
+ # ],
1586
+ # insert_position: 1,
1587
+ # },
1588
+ # ],
1589
+ # pre_request: [
1590
+ # {
1591
+ # proxy_rule_name: "ResourceName",
1592
+ # description: "Description",
1593
+ # action: "ALLOW", # accepts ALLOW, DENY, ALERT
1594
+ # conditions: [
1595
+ # {
1596
+ # condition_operator: "ConditionOperator",
1597
+ # condition_key: "ConditionKey",
1598
+ # condition_values: ["ProxyConditionValue"],
1599
+ # },
1600
+ # ],
1601
+ # insert_position: 1,
1602
+ # },
1603
+ # ],
1604
+ # post_response: [
1605
+ # {
1606
+ # proxy_rule_name: "ResourceName",
1607
+ # description: "Description",
1608
+ # action: "ALLOW", # accepts ALLOW, DENY, ALERT
1609
+ # conditions: [
1610
+ # {
1611
+ # condition_operator: "ConditionOperator",
1612
+ # condition_key: "ConditionKey",
1613
+ # condition_values: ["ProxyConditionValue"],
1614
+ # },
1615
+ # ],
1616
+ # insert_position: 1,
1617
+ # },
1618
+ # ],
1619
+ # },
1620
+ # })
1621
+ #
1622
+ # @example Response structure
1623
+ #
1624
+ # resp.proxy_rule_group.proxy_rule_group_name #=> String
1625
+ # resp.proxy_rule_group.proxy_rule_group_arn #=> String
1626
+ # resp.proxy_rule_group.create_time #=> Time
1627
+ # resp.proxy_rule_group.delete_time #=> Time
1628
+ # resp.proxy_rule_group.rules.pre_dns #=> Array
1629
+ # resp.proxy_rule_group.rules.pre_dns[0].proxy_rule_name #=> String
1630
+ # resp.proxy_rule_group.rules.pre_dns[0].description #=> String
1631
+ # resp.proxy_rule_group.rules.pre_dns[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
1632
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions #=> Array
1633
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_operator #=> String
1634
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_key #=> String
1635
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_values #=> Array
1636
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_values[0] #=> String
1637
+ # resp.proxy_rule_group.rules.pre_request #=> Array
1638
+ # resp.proxy_rule_group.rules.pre_request[0].proxy_rule_name #=> String
1639
+ # resp.proxy_rule_group.rules.pre_request[0].description #=> String
1640
+ # resp.proxy_rule_group.rules.pre_request[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
1641
+ # resp.proxy_rule_group.rules.pre_request[0].conditions #=> Array
1642
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_operator #=> String
1643
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_key #=> String
1644
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_values #=> Array
1645
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_values[0] #=> String
1646
+ # resp.proxy_rule_group.rules.post_response #=> Array
1647
+ # resp.proxy_rule_group.rules.post_response[0].proxy_rule_name #=> String
1648
+ # resp.proxy_rule_group.rules.post_response[0].description #=> String
1649
+ # resp.proxy_rule_group.rules.post_response[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
1650
+ # resp.proxy_rule_group.rules.post_response[0].conditions #=> Array
1651
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_operator #=> String
1652
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_key #=> String
1653
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_values #=> Array
1654
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_values[0] #=> String
1655
+ # resp.proxy_rule_group.description #=> String
1656
+ # resp.proxy_rule_group.tags #=> Array
1657
+ # resp.proxy_rule_group.tags[0].key #=> String
1658
+ # resp.proxy_rule_group.tags[0].value #=> String
1659
+ # resp.update_token #=> String
1660
+ #
1661
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateProxyRules AWS API Documentation
1662
+ #
1663
+ # @overload create_proxy_rules(params = {})
1664
+ # @param [Hash] params ({})
1665
+ def create_proxy_rules(params = {}, options = {})
1666
+ req = build_request(:create_proxy_rules, params)
1667
+ req.send_request(options)
1668
+ end
1669
+
1126
1670
  # Creates the specified stateless or stateful rule group, which includes
1127
1671
  # the rules for network traffic inspection, a capacity setting, and
1128
1672
  # tags.
@@ -1849,28 +2393,229 @@ module Aws::NetworkFirewall
1849
2393
  # Required. The unique identifier of the transit gateway attachment to
1850
2394
  # delete.
1851
2395
  #
1852
- # @return [Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2396
+ # @return [Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2397
+ #
2398
+ # * {Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_id #transit_gateway_attachment_id} => String
2399
+ # * {Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_status #transit_gateway_attachment_status} => String
2400
+ #
2401
+ # @example Request syntax with placeholder values
2402
+ #
2403
+ # resp = client.delete_network_firewall_transit_gateway_attachment({
2404
+ # transit_gateway_attachment_id: "TransitGatewayAttachmentId", # required
2405
+ # })
2406
+ #
2407
+ # @example Response structure
2408
+ #
2409
+ # resp.transit_gateway_attachment_id #=> String
2410
+ # resp.transit_gateway_attachment_status #=> String, one of "CREATING", "DELETING", "DELETED", "FAILED", "ERROR", "READY", "PENDING_ACCEPTANCE", "REJECTING", "REJECTED"
2411
+ #
2412
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteNetworkFirewallTransitGatewayAttachment AWS API Documentation
2413
+ #
2414
+ # @overload delete_network_firewall_transit_gateway_attachment(params = {})
2415
+ # @param [Hash] params ({})
2416
+ def delete_network_firewall_transit_gateway_attachment(params = {}, options = {})
2417
+ req = build_request(:delete_network_firewall_transit_gateway_attachment, params)
2418
+ req.send_request(options)
2419
+ end
2420
+
2421
+ # Deletes the specified Proxy.
2422
+ #
2423
+ # Detaches a Proxy configuration from a NAT Gateway.
2424
+ #
2425
+ # @option params [required, String] :nat_gateway_id
2426
+ # The NAT Gateway the proxy is attached to.
2427
+ #
2428
+ # @option params [String] :proxy_name
2429
+ # The descriptive name of the proxy. You can't change the name of a
2430
+ # proxy after you create it.
2431
+ #
2432
+ # You must specify the ARN or the name, and you can specify both.
2433
+ #
2434
+ # @option params [String] :proxy_arn
2435
+ # The Amazon Resource Name (ARN) of a proxy.
2436
+ #
2437
+ # You must specify the ARN or the name, and you can specify both.
2438
+ #
2439
+ # @return [Types::DeleteProxyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2440
+ #
2441
+ # * {Types::DeleteProxyResponse#nat_gateway_id #nat_gateway_id} => String
2442
+ # * {Types::DeleteProxyResponse#proxy_name #proxy_name} => String
2443
+ # * {Types::DeleteProxyResponse#proxy_arn #proxy_arn} => String
2444
+ #
2445
+ # @example Request syntax with placeholder values
2446
+ #
2447
+ # resp = client.delete_proxy({
2448
+ # nat_gateway_id: "NatGatewayId", # required
2449
+ # proxy_name: "ResourceName",
2450
+ # proxy_arn: "ResourceArn",
2451
+ # })
2452
+ #
2453
+ # @example Response structure
2454
+ #
2455
+ # resp.nat_gateway_id #=> String
2456
+ # resp.proxy_name #=> String
2457
+ # resp.proxy_arn #=> String
2458
+ #
2459
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteProxy AWS API Documentation
2460
+ #
2461
+ # @overload delete_proxy(params = {})
2462
+ # @param [Hash] params ({})
2463
+ def delete_proxy(params = {}, options = {})
2464
+ req = build_request(:delete_proxy, params)
2465
+ req.send_request(options)
2466
+ end
2467
+
2468
+ # Deletes the specified ProxyConfiguration.
2469
+ #
2470
+ # @option params [String] :proxy_configuration_name
2471
+ # The descriptive name of the proxy configuration. You can't change the
2472
+ # name of a proxy configuration after you create it.
2473
+ #
2474
+ # You must specify the ARN or the name, and you can specify both.
2475
+ #
2476
+ # @option params [String] :proxy_configuration_arn
2477
+ # The Amazon Resource Name (ARN) of a proxy configuration.
2478
+ #
2479
+ # You must specify the ARN or the name, and you can specify both.
2480
+ #
2481
+ # @return [Types::DeleteProxyConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2482
+ #
2483
+ # * {Types::DeleteProxyConfigurationResponse#proxy_configuration_name #proxy_configuration_name} => String
2484
+ # * {Types::DeleteProxyConfigurationResponse#proxy_configuration_arn #proxy_configuration_arn} => String
2485
+ #
2486
+ # @example Request syntax with placeholder values
2487
+ #
2488
+ # resp = client.delete_proxy_configuration({
2489
+ # proxy_configuration_name: "ResourceName",
2490
+ # proxy_configuration_arn: "ResourceArn",
2491
+ # })
2492
+ #
2493
+ # @example Response structure
2494
+ #
2495
+ # resp.proxy_configuration_name #=> String
2496
+ # resp.proxy_configuration_arn #=> String
2497
+ #
2498
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteProxyConfiguration AWS API Documentation
2499
+ #
2500
+ # @overload delete_proxy_configuration(params = {})
2501
+ # @param [Hash] params ({})
2502
+ def delete_proxy_configuration(params = {}, options = {})
2503
+ req = build_request(:delete_proxy_configuration, params)
2504
+ req.send_request(options)
2505
+ end
2506
+
2507
+ # Deletes the specified ProxyRuleGroup.
2508
+ #
2509
+ # @option params [String] :proxy_rule_group_name
2510
+ # The descriptive name of the proxy rule group. You can't change the
2511
+ # name of a proxy rule group after you create it.
2512
+ #
2513
+ # You must specify the ARN or the name, and you can specify both.
2514
+ #
2515
+ # @option params [String] :proxy_rule_group_arn
2516
+ # The Amazon Resource Name (ARN) of a proxy rule group.
2517
+ #
2518
+ # You must specify the ARN or the name, and you can specify both.
2519
+ #
2520
+ # @return [Types::DeleteProxyRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2521
+ #
2522
+ # * {Types::DeleteProxyRuleGroupResponse#proxy_rule_group_name #proxy_rule_group_name} => String
2523
+ # * {Types::DeleteProxyRuleGroupResponse#proxy_rule_group_arn #proxy_rule_group_arn} => String
2524
+ #
2525
+ # @example Request syntax with placeholder values
2526
+ #
2527
+ # resp = client.delete_proxy_rule_group({
2528
+ # proxy_rule_group_name: "ResourceName",
2529
+ # proxy_rule_group_arn: "ResourceArn",
2530
+ # })
2531
+ #
2532
+ # @example Response structure
2533
+ #
2534
+ # resp.proxy_rule_group_name #=> String
2535
+ # resp.proxy_rule_group_arn #=> String
2536
+ #
2537
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteProxyRuleGroup AWS API Documentation
2538
+ #
2539
+ # @overload delete_proxy_rule_group(params = {})
2540
+ # @param [Hash] params ({})
2541
+ def delete_proxy_rule_group(params = {}, options = {})
2542
+ req = build_request(:delete_proxy_rule_group, params)
2543
+ req.send_request(options)
2544
+ end
2545
+
2546
+ # Deletes the specified ProxyRule(s). currently attached to a
2547
+ # ProxyRuleGroup
2548
+ #
2549
+ # @option params [String] :proxy_rule_group_arn
2550
+ # The Amazon Resource Name (ARN) of a proxy rule group.
2551
+ #
2552
+ # You must specify the ARN or the name, and you can specify both.
2553
+ #
2554
+ # @option params [String] :proxy_rule_group_name
2555
+ # The descriptive name of the proxy rule group. You can't change the
2556
+ # name of a proxy rule group after you create it.
2557
+ #
2558
+ # You must specify the ARN or the name, and you can specify both.
2559
+ #
2560
+ # @option params [required, Array<String>] :rules
2561
+ # The proxy rule(s) to remove from the existing proxy rule group.
1853
2562
  #
1854
- # * {Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_id #transit_gateway_attachment_id} => String
1855
- # * {Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_status #transit_gateway_attachment_status} => String
2563
+ # @return [Types::DeleteProxyRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2564
+ #
2565
+ # * {Types::DeleteProxyRulesResponse#proxy_rule_group #proxy_rule_group} => Types::ProxyRuleGroup
1856
2566
  #
1857
2567
  # @example Request syntax with placeholder values
1858
2568
  #
1859
- # resp = client.delete_network_firewall_transit_gateway_attachment({
1860
- # transit_gateway_attachment_id: "TransitGatewayAttachmentId", # required
2569
+ # resp = client.delete_proxy_rules({
2570
+ # proxy_rule_group_arn: "ResourceArn",
2571
+ # proxy_rule_group_name: "ResourceName",
2572
+ # rules: ["ResourceName"], # required
1861
2573
  # })
1862
2574
  #
1863
2575
  # @example Response structure
1864
2576
  #
1865
- # resp.transit_gateway_attachment_id #=> String
1866
- # resp.transit_gateway_attachment_status #=> String, one of "CREATING", "DELETING", "DELETED", "FAILED", "ERROR", "READY", "PENDING_ACCEPTANCE", "REJECTING", "REJECTED"
1867
- #
1868
- # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteNetworkFirewallTransitGatewayAttachment AWS API Documentation
1869
- #
1870
- # @overload delete_network_firewall_transit_gateway_attachment(params = {})
2577
+ # resp.proxy_rule_group.proxy_rule_group_name #=> String
2578
+ # resp.proxy_rule_group.proxy_rule_group_arn #=> String
2579
+ # resp.proxy_rule_group.create_time #=> Time
2580
+ # resp.proxy_rule_group.delete_time #=> Time
2581
+ # resp.proxy_rule_group.rules.pre_dns #=> Array
2582
+ # resp.proxy_rule_group.rules.pre_dns[0].proxy_rule_name #=> String
2583
+ # resp.proxy_rule_group.rules.pre_dns[0].description #=> String
2584
+ # resp.proxy_rule_group.rules.pre_dns[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
2585
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions #=> Array
2586
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_operator #=> String
2587
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_key #=> String
2588
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_values #=> Array
2589
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_values[0] #=> String
2590
+ # resp.proxy_rule_group.rules.pre_request #=> Array
2591
+ # resp.proxy_rule_group.rules.pre_request[0].proxy_rule_name #=> String
2592
+ # resp.proxy_rule_group.rules.pre_request[0].description #=> String
2593
+ # resp.proxy_rule_group.rules.pre_request[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
2594
+ # resp.proxy_rule_group.rules.pre_request[0].conditions #=> Array
2595
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_operator #=> String
2596
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_key #=> String
2597
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_values #=> Array
2598
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_values[0] #=> String
2599
+ # resp.proxy_rule_group.rules.post_response #=> Array
2600
+ # resp.proxy_rule_group.rules.post_response[0].proxy_rule_name #=> String
2601
+ # resp.proxy_rule_group.rules.post_response[0].description #=> String
2602
+ # resp.proxy_rule_group.rules.post_response[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
2603
+ # resp.proxy_rule_group.rules.post_response[0].conditions #=> Array
2604
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_operator #=> String
2605
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_key #=> String
2606
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_values #=> Array
2607
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_values[0] #=> String
2608
+ # resp.proxy_rule_group.description #=> String
2609
+ # resp.proxy_rule_group.tags #=> Array
2610
+ # resp.proxy_rule_group.tags[0].key #=> String
2611
+ # resp.proxy_rule_group.tags[0].value #=> String
2612
+ #
2613
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteProxyRules AWS API Documentation
2614
+ #
2615
+ # @overload delete_proxy_rules(params = {})
1871
2616
  # @param [Hash] params ({})
1872
- def delete_network_firewall_transit_gateway_attachment(params = {}, options = {})
1873
- req = build_request(:delete_network_firewall_transit_gateway_attachment, params)
2617
+ def delete_proxy_rules(params = {}, options = {})
2618
+ req = build_request(:delete_proxy_rules, params)
1874
2619
  req.send_request(options)
1875
2620
  end
1876
2621
 
@@ -2401,6 +3146,245 @@ module Aws::NetworkFirewall
2401
3146
  req.send_request(options)
2402
3147
  end
2403
3148
 
3149
+ # Returns the data objects for the specified proxy.
3150
+ #
3151
+ # @option params [String] :proxy_name
3152
+ # The descriptive name of the proxy. You can't change the name of a
3153
+ # proxy after you create it.
3154
+ #
3155
+ # You must specify the ARN or the name, and you can specify both.
3156
+ #
3157
+ # @option params [String] :proxy_arn
3158
+ # The Amazon Resource Name (ARN) of a proxy.
3159
+ #
3160
+ # You must specify the ARN or the name, and you can specify both.
3161
+ #
3162
+ # @return [Types::DescribeProxyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3163
+ #
3164
+ # * {Types::DescribeProxyResponse#proxy #proxy} => Types::DescribeProxyResource
3165
+ # * {Types::DescribeProxyResponse#update_token #update_token} => String
3166
+ #
3167
+ # @example Request syntax with placeholder values
3168
+ #
3169
+ # resp = client.describe_proxy({
3170
+ # proxy_name: "ResourceName",
3171
+ # proxy_arn: "ResourceArn",
3172
+ # })
3173
+ #
3174
+ # @example Response structure
3175
+ #
3176
+ # resp.proxy.proxy_name #=> String
3177
+ # resp.proxy.proxy_arn #=> String
3178
+ # resp.proxy.proxy_configuration_name #=> String
3179
+ # resp.proxy.proxy_configuration_arn #=> String
3180
+ # resp.proxy.nat_gateway_id #=> String
3181
+ # resp.proxy.proxy_state #=> String, one of "ATTACHING", "ATTACHED", "DETACHING", "DETACHED", "ATTACH_FAILED", "DETACH_FAILED"
3182
+ # resp.proxy.proxy_modify_state #=> String, one of "MODIFYING", "COMPLETED", "FAILED"
3183
+ # resp.proxy.listener_properties #=> Array
3184
+ # resp.proxy.listener_properties[0].port #=> Integer
3185
+ # resp.proxy.listener_properties[0].type #=> String, one of "HTTP", "HTTPS"
3186
+ # resp.proxy.tls_intercept_properties.pca_arn #=> String
3187
+ # resp.proxy.tls_intercept_properties.tls_intercept_mode #=> String, one of "ENABLED", "DISABLED"
3188
+ # resp.proxy.vpc_endpoint_service_name #=> String
3189
+ # resp.proxy.private_dns_name #=> String
3190
+ # resp.proxy.create_time #=> Time
3191
+ # resp.proxy.delete_time #=> Time
3192
+ # resp.proxy.update_time #=> Time
3193
+ # resp.proxy.failure_code #=> String
3194
+ # resp.proxy.failure_message #=> String
3195
+ # resp.proxy.tags #=> Array
3196
+ # resp.proxy.tags[0].key #=> String
3197
+ # resp.proxy.tags[0].value #=> String
3198
+ # resp.update_token #=> String
3199
+ #
3200
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeProxy AWS API Documentation
3201
+ #
3202
+ # @overload describe_proxy(params = {})
3203
+ # @param [Hash] params ({})
3204
+ def describe_proxy(params = {}, options = {})
3205
+ req = build_request(:describe_proxy, params)
3206
+ req.send_request(options)
3207
+ end
3208
+
3209
+ # Returns the data objects for the specified proxy configuration.
3210
+ #
3211
+ # @option params [String] :proxy_configuration_name
3212
+ # The descriptive name of the proxy configuration. You can't change the
3213
+ # name of a proxy configuration after you create it.
3214
+ #
3215
+ # You must specify the ARN or the name, and you can specify both.
3216
+ #
3217
+ # @option params [String] :proxy_configuration_arn
3218
+ # The Amazon Resource Name (ARN) of a proxy configuration.
3219
+ #
3220
+ # You must specify the ARN or the name, and you can specify both.
3221
+ #
3222
+ # @return [Types::DescribeProxyConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3223
+ #
3224
+ # * {Types::DescribeProxyConfigurationResponse#proxy_configuration #proxy_configuration} => Types::ProxyConfiguration
3225
+ # * {Types::DescribeProxyConfigurationResponse#update_token #update_token} => String
3226
+ #
3227
+ # @example Request syntax with placeholder values
3228
+ #
3229
+ # resp = client.describe_proxy_configuration({
3230
+ # proxy_configuration_name: "ResourceName",
3231
+ # proxy_configuration_arn: "ResourceArn",
3232
+ # })
3233
+ #
3234
+ # @example Response structure
3235
+ #
3236
+ # resp.proxy_configuration.proxy_configuration_name #=> String
3237
+ # resp.proxy_configuration.proxy_configuration_arn #=> String
3238
+ # resp.proxy_configuration.description #=> String
3239
+ # resp.proxy_configuration.create_time #=> Time
3240
+ # resp.proxy_configuration.delete_time #=> Time
3241
+ # resp.proxy_configuration.rule_groups #=> Array
3242
+ # resp.proxy_configuration.rule_groups[0].proxy_rule_group_name #=> String
3243
+ # resp.proxy_configuration.rule_groups[0].proxy_rule_group_arn #=> String
3244
+ # resp.proxy_configuration.rule_groups[0].type #=> String
3245
+ # resp.proxy_configuration.rule_groups[0].priority #=> Integer
3246
+ # resp.proxy_configuration.default_rule_phase_actions.pre_dns #=> String, one of "ALLOW", "DENY", "ALERT"
3247
+ # resp.proxy_configuration.default_rule_phase_actions.pre_request #=> String, one of "ALLOW", "DENY", "ALERT"
3248
+ # resp.proxy_configuration.default_rule_phase_actions.post_response #=> String, one of "ALLOW", "DENY", "ALERT"
3249
+ # resp.proxy_configuration.tags #=> Array
3250
+ # resp.proxy_configuration.tags[0].key #=> String
3251
+ # resp.proxy_configuration.tags[0].value #=> String
3252
+ # resp.update_token #=> String
3253
+ #
3254
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeProxyConfiguration AWS API Documentation
3255
+ #
3256
+ # @overload describe_proxy_configuration(params = {})
3257
+ # @param [Hash] params ({})
3258
+ def describe_proxy_configuration(params = {}, options = {})
3259
+ req = build_request(:describe_proxy_configuration, params)
3260
+ req.send_request(options)
3261
+ end
3262
+
3263
+ # Returns the data objects for the specified proxy configuration for the
3264
+ # specified proxy rule group.
3265
+ #
3266
+ # @option params [required, String] :proxy_rule_name
3267
+ # The descriptive name of the proxy rule. You can't change the name of
3268
+ # a proxy rule after you create it.
3269
+ #
3270
+ # @option params [String] :proxy_rule_group_name
3271
+ # The descriptive name of the proxy rule group. You can't change the
3272
+ # name of a proxy rule group after you create it.
3273
+ #
3274
+ # You must specify the ARN or the name, and you can specify both.
3275
+ #
3276
+ # @option params [String] :proxy_rule_group_arn
3277
+ # The Amazon Resource Name (ARN) of a proxy rule group.
3278
+ #
3279
+ # You must specify the ARN or the name, and you can specify both.
3280
+ #
3281
+ # @return [Types::DescribeProxyRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3282
+ #
3283
+ # * {Types::DescribeProxyRuleResponse#proxy_rule #proxy_rule} => Types::ProxyRule
3284
+ # * {Types::DescribeProxyRuleResponse#update_token #update_token} => String
3285
+ #
3286
+ # @example Request syntax with placeholder values
3287
+ #
3288
+ # resp = client.describe_proxy_rule({
3289
+ # proxy_rule_name: "ResourceName", # required
3290
+ # proxy_rule_group_name: "ResourceName",
3291
+ # proxy_rule_group_arn: "ResourceArn",
3292
+ # })
3293
+ #
3294
+ # @example Response structure
3295
+ #
3296
+ # resp.proxy_rule.proxy_rule_name #=> String
3297
+ # resp.proxy_rule.description #=> String
3298
+ # resp.proxy_rule.action #=> String, one of "ALLOW", "DENY", "ALERT"
3299
+ # resp.proxy_rule.conditions #=> Array
3300
+ # resp.proxy_rule.conditions[0].condition_operator #=> String
3301
+ # resp.proxy_rule.conditions[0].condition_key #=> String
3302
+ # resp.proxy_rule.conditions[0].condition_values #=> Array
3303
+ # resp.proxy_rule.conditions[0].condition_values[0] #=> String
3304
+ # resp.update_token #=> String
3305
+ #
3306
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeProxyRule AWS API Documentation
3307
+ #
3308
+ # @overload describe_proxy_rule(params = {})
3309
+ # @param [Hash] params ({})
3310
+ def describe_proxy_rule(params = {}, options = {})
3311
+ req = build_request(:describe_proxy_rule, params)
3312
+ req.send_request(options)
3313
+ end
3314
+
3315
+ # Returns the data objects for the specified proxy rule group.
3316
+ #
3317
+ # @option params [String] :proxy_rule_group_name
3318
+ # The descriptive name of the proxy rule group. You can't change the
3319
+ # name of a proxy rule group after you create it.
3320
+ #
3321
+ # You must specify the ARN or the name, and you can specify both.
3322
+ #
3323
+ # @option params [String] :proxy_rule_group_arn
3324
+ # The Amazon Resource Name (ARN) of a proxy rule group.
3325
+ #
3326
+ # You must specify the ARN or the name, and you can specify both.
3327
+ #
3328
+ # @return [Types::DescribeProxyRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3329
+ #
3330
+ # * {Types::DescribeProxyRuleGroupResponse#proxy_rule_group #proxy_rule_group} => Types::ProxyRuleGroup
3331
+ # * {Types::DescribeProxyRuleGroupResponse#update_token #update_token} => String
3332
+ #
3333
+ # @example Request syntax with placeholder values
3334
+ #
3335
+ # resp = client.describe_proxy_rule_group({
3336
+ # proxy_rule_group_name: "ResourceName",
3337
+ # proxy_rule_group_arn: "ResourceArn",
3338
+ # })
3339
+ #
3340
+ # @example Response structure
3341
+ #
3342
+ # resp.proxy_rule_group.proxy_rule_group_name #=> String
3343
+ # resp.proxy_rule_group.proxy_rule_group_arn #=> String
3344
+ # resp.proxy_rule_group.create_time #=> Time
3345
+ # resp.proxy_rule_group.delete_time #=> Time
3346
+ # resp.proxy_rule_group.rules.pre_dns #=> Array
3347
+ # resp.proxy_rule_group.rules.pre_dns[0].proxy_rule_name #=> String
3348
+ # resp.proxy_rule_group.rules.pre_dns[0].description #=> String
3349
+ # resp.proxy_rule_group.rules.pre_dns[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
3350
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions #=> Array
3351
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_operator #=> String
3352
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_key #=> String
3353
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_values #=> Array
3354
+ # resp.proxy_rule_group.rules.pre_dns[0].conditions[0].condition_values[0] #=> String
3355
+ # resp.proxy_rule_group.rules.pre_request #=> Array
3356
+ # resp.proxy_rule_group.rules.pre_request[0].proxy_rule_name #=> String
3357
+ # resp.proxy_rule_group.rules.pre_request[0].description #=> String
3358
+ # resp.proxy_rule_group.rules.pre_request[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
3359
+ # resp.proxy_rule_group.rules.pre_request[0].conditions #=> Array
3360
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_operator #=> String
3361
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_key #=> String
3362
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_values #=> Array
3363
+ # resp.proxy_rule_group.rules.pre_request[0].conditions[0].condition_values[0] #=> String
3364
+ # resp.proxy_rule_group.rules.post_response #=> Array
3365
+ # resp.proxy_rule_group.rules.post_response[0].proxy_rule_name #=> String
3366
+ # resp.proxy_rule_group.rules.post_response[0].description #=> String
3367
+ # resp.proxy_rule_group.rules.post_response[0].action #=> String, one of "ALLOW", "DENY", "ALERT"
3368
+ # resp.proxy_rule_group.rules.post_response[0].conditions #=> Array
3369
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_operator #=> String
3370
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_key #=> String
3371
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_values #=> Array
3372
+ # resp.proxy_rule_group.rules.post_response[0].conditions[0].condition_values[0] #=> String
3373
+ # resp.proxy_rule_group.description #=> String
3374
+ # resp.proxy_rule_group.tags #=> Array
3375
+ # resp.proxy_rule_group.tags[0].key #=> String
3376
+ # resp.proxy_rule_group.tags[0].value #=> String
3377
+ # resp.update_token #=> String
3378
+ #
3379
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeProxyRuleGroup AWS API Documentation
3380
+ #
3381
+ # @overload describe_proxy_rule_group(params = {})
3382
+ # @param [Hash] params ({})
3383
+ def describe_proxy_rule_group(params = {}, options = {})
3384
+ req = build_request(:describe_proxy_rule_group, params)
3385
+ req.send_request(options)
3386
+ end
3387
+
2404
3388
  # Retrieves a resource policy that you created in a PutResourcePolicy
2405
3389
  # request.
2406
3390
  #
@@ -2821,6 +3805,87 @@ module Aws::NetworkFirewall
2821
3805
  req.send_request(options)
2822
3806
  end
2823
3807
 
3808
+ # Detaches ProxyRuleGroup resources from a ProxyConfiguration
3809
+ #
3810
+ # A Proxy Configuration defines the monitoring and protection behavior
3811
+ # for a Proxy. The details of the behavior are defined in the rule
3812
+ # groups that you add to your configuration.
3813
+ #
3814
+ # @option params [String] :proxy_configuration_name
3815
+ # The descriptive name of the proxy configuration. You can't change the
3816
+ # name of a proxy configuration after you create it.
3817
+ #
3818
+ # You must specify the ARN or the name, and you can specify both.
3819
+ #
3820
+ # @option params [String] :proxy_configuration_arn
3821
+ # The Amazon Resource Name (ARN) of a proxy configuration.
3822
+ #
3823
+ # You must specify the ARN or the name, and you can specify both.
3824
+ #
3825
+ # @option params [Array<String>] :rule_group_names
3826
+ # The proxy rule group names to detach from the proxy configuration
3827
+ #
3828
+ # @option params [Array<String>] :rule_group_arns
3829
+ # The proxy rule group arns to detach from the proxy configuration
3830
+ #
3831
+ # @option params [required, String] :update_token
3832
+ # A token used for optimistic locking. Network Firewall returns a token
3833
+ # to your requests that access the proxy configuration. The token marks
3834
+ # the state of the proxy configuration resource at the time of the
3835
+ # request.
3836
+ #
3837
+ # To make changes to the proxy configuration, you provide the token in
3838
+ # your request. Network Firewall uses the token to ensure that the proxy
3839
+ # configuration hasn't changed since you last retrieved it. If it has
3840
+ # changed, the operation fails with an `InvalidTokenException`. If this
3841
+ # happens, retrieve the proxy configuration again to get a current copy
3842
+ # of it with a current token. Reapply your changes as needed, then try
3843
+ # the operation again using the new token.
3844
+ #
3845
+ # @return [Types::DetachRuleGroupsFromProxyConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3846
+ #
3847
+ # * {Types::DetachRuleGroupsFromProxyConfigurationResponse#proxy_configuration #proxy_configuration} => Types::ProxyConfiguration
3848
+ # * {Types::DetachRuleGroupsFromProxyConfigurationResponse#update_token #update_token} => String
3849
+ #
3850
+ # @example Request syntax with placeholder values
3851
+ #
3852
+ # resp = client.detach_rule_groups_from_proxy_configuration({
3853
+ # proxy_configuration_name: "ResourceName",
3854
+ # proxy_configuration_arn: "ResourceArn",
3855
+ # rule_group_names: ["ResourceName"],
3856
+ # rule_group_arns: ["ResourceArn"],
3857
+ # update_token: "UpdateToken", # required
3858
+ # })
3859
+ #
3860
+ # @example Response structure
3861
+ #
3862
+ # resp.proxy_configuration.proxy_configuration_name #=> String
3863
+ # resp.proxy_configuration.proxy_configuration_arn #=> String
3864
+ # resp.proxy_configuration.description #=> String
3865
+ # resp.proxy_configuration.create_time #=> Time
3866
+ # resp.proxy_configuration.delete_time #=> Time
3867
+ # resp.proxy_configuration.rule_groups #=> Array
3868
+ # resp.proxy_configuration.rule_groups[0].proxy_rule_group_name #=> String
3869
+ # resp.proxy_configuration.rule_groups[0].proxy_rule_group_arn #=> String
3870
+ # resp.proxy_configuration.rule_groups[0].type #=> String
3871
+ # resp.proxy_configuration.rule_groups[0].priority #=> Integer
3872
+ # resp.proxy_configuration.default_rule_phase_actions.pre_dns #=> String, one of "ALLOW", "DENY", "ALERT"
3873
+ # resp.proxy_configuration.default_rule_phase_actions.pre_request #=> String, one of "ALLOW", "DENY", "ALERT"
3874
+ # resp.proxy_configuration.default_rule_phase_actions.post_response #=> String, one of "ALLOW", "DENY", "ALERT"
3875
+ # resp.proxy_configuration.tags #=> Array
3876
+ # resp.proxy_configuration.tags[0].key #=> String
3877
+ # resp.proxy_configuration.tags[0].value #=> String
3878
+ # resp.update_token #=> String
3879
+ #
3880
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DetachRuleGroupsFromProxyConfiguration AWS API Documentation
3881
+ #
3882
+ # @overload detach_rule_groups_from_proxy_configuration(params = {})
3883
+ # @param [Hash] params ({})
3884
+ def detach_rule_groups_from_proxy_configuration(params = {}, options = {})
3885
+ req = build_request(:detach_rule_groups_from_proxy_configuration, params)
3886
+ req.send_request(options)
3887
+ end
3888
+
2824
3889
  # Removes the specified Availability Zone associations from a transit
2825
3890
  # gateway-attached firewall. This removes the firewall endpoints from
2826
3891
  # these Availability Zones and stops traffic filtering in those zones.
@@ -3315,48 +4380,196 @@ module Aws::NetworkFirewall
3315
4380
  # resp.flows[0].byte_count #=> Integer
3316
4381
  # resp.next_token #=> String
3317
4382
  #
3318
- # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFlowOperationResults AWS API Documentation
4383
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFlowOperationResults AWS API Documentation
4384
+ #
4385
+ # @overload list_flow_operation_results(params = {})
4386
+ # @param [Hash] params ({})
4387
+ def list_flow_operation_results(params = {}, options = {})
4388
+ req = build_request(:list_flow_operation_results, params)
4389
+ req.send_request(options)
4390
+ end
4391
+
4392
+ # Returns a list of all flow operations ran in a specific firewall. You
4393
+ # can optionally narrow the request scope by specifying the operation
4394
+ # type or Availability Zone associated with a firewall's flow
4395
+ # operations.
4396
+ #
4397
+ # Flow operations let you manage the flows tracked in the flow table,
4398
+ # also known as the firewall table.
4399
+ #
4400
+ # A flow is network traffic that is monitored by a firewall, either by
4401
+ # stateful or stateless rules. For traffic to be considered part of a
4402
+ # flow, it must share Destination, DestinationPort, Direction, Protocol,
4403
+ # Source, and SourcePort.
4404
+ #
4405
+ # @option params [required, String] :firewall_arn
4406
+ # The Amazon Resource Name (ARN) of the firewall.
4407
+ #
4408
+ # @option params [String] :availability_zone
4409
+ # The ID of the Availability Zone where the firewall is located. For
4410
+ # example, `us-east-2a`.
4411
+ #
4412
+ # Defines the scope a flow operation. You can use up to 20 filters to
4413
+ # configure a single flow operation.
4414
+ #
4415
+ # @option params [String] :vpc_endpoint_association_arn
4416
+ # The Amazon Resource Name (ARN) of a VPC endpoint association.
4417
+ #
4418
+ # @option params [String] :vpc_endpoint_id
4419
+ # A unique identifier for the primary endpoint associated with a
4420
+ # firewall.
4421
+ #
4422
+ # @option params [String] :flow_operation_type
4423
+ # An optional string that defines whether any or all operation types are
4424
+ # returned.
4425
+ #
4426
+ # @option params [String] :next_token
4427
+ # When you request a list of objects with a `MaxResults` setting, if the
4428
+ # number of objects that are still available for retrieval exceeds the
4429
+ # maximum you requested, Network Firewall returns a `NextToken` value in
4430
+ # the response. To retrieve the next batch of objects, use the token
4431
+ # returned from the prior request in your next request.
4432
+ #
4433
+ # @option params [Integer] :max_results
4434
+ # The maximum number of objects that you want Network Firewall to return
4435
+ # for this request. If more objects are available, in the response,
4436
+ # Network Firewall provides a `NextToken` value that you can use in a
4437
+ # subsequent call to get the next batch of objects.
4438
+ #
4439
+ # @return [Types::ListFlowOperationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4440
+ #
4441
+ # * {Types::ListFlowOperationsResponse#flow_operations #flow_operations} => Array&lt;Types::FlowOperationMetadata&gt;
4442
+ # * {Types::ListFlowOperationsResponse#next_token #next_token} => String
4443
+ #
4444
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4445
+ #
4446
+ # @example Request syntax with placeholder values
4447
+ #
4448
+ # resp = client.list_flow_operations({
4449
+ # firewall_arn: "ResourceArn", # required
4450
+ # availability_zone: "AvailabilityZone",
4451
+ # vpc_endpoint_association_arn: "ResourceArn",
4452
+ # vpc_endpoint_id: "VpcEndpointId",
4453
+ # flow_operation_type: "FLOW_FLUSH", # accepts FLOW_FLUSH, FLOW_CAPTURE
4454
+ # next_token: "PaginationToken",
4455
+ # max_results: 1,
4456
+ # })
4457
+ #
4458
+ # @example Response structure
4459
+ #
4460
+ # resp.flow_operations #=> Array
4461
+ # resp.flow_operations[0].flow_operation_id #=> String
4462
+ # resp.flow_operations[0].flow_operation_type #=> String, one of "FLOW_FLUSH", "FLOW_CAPTURE"
4463
+ # resp.flow_operations[0].flow_request_timestamp #=> Time
4464
+ # resp.flow_operations[0].flow_operation_status #=> String, one of "COMPLETED", "IN_PROGRESS", "FAILED", "COMPLETED_WITH_ERRORS"
4465
+ # resp.next_token #=> String
4466
+ #
4467
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFlowOperations AWS API Documentation
4468
+ #
4469
+ # @overload list_flow_operations(params = {})
4470
+ # @param [Hash] params ({})
4471
+ def list_flow_operations(params = {}, options = {})
4472
+ req = build_request(:list_flow_operations, params)
4473
+ req.send_request(options)
4474
+ end
4475
+
4476
+ # Retrieves the metadata for the proxies that you have defined.
4477
+ # Depending on your setting for max results and the number of proxies, a
4478
+ # single call might not return the full list.
4479
+ #
4480
+ # @option params [String] :next_token
4481
+ # When you request a list of objects with a `MaxResults` setting, if the
4482
+ # number of objects that are still available for retrieval exceeds the
4483
+ # maximum you requested, Network Firewall returns a `NextToken` value in
4484
+ # the response. To retrieve the next batch of objects, use the token
4485
+ # returned from the prior request in your next request.
4486
+ #
4487
+ # @option params [Integer] :max_results
4488
+ # The maximum number of objects that you want Network Firewall to return
4489
+ # for this request. If more objects are available, in the response,
4490
+ # Network Firewall provides a `NextToken` value that you can use in a
4491
+ # subsequent call to get the next batch of objects.
4492
+ #
4493
+ # @return [Types::ListProxiesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4494
+ #
4495
+ # * {Types::ListProxiesResponse#proxies #proxies} => Array&lt;Types::ProxyMetadata&gt;
4496
+ # * {Types::ListProxiesResponse#next_token #next_token} => String
4497
+ #
4498
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4499
+ #
4500
+ # @example Request syntax with placeholder values
4501
+ #
4502
+ # resp = client.list_proxies({
4503
+ # next_token: "PaginationToken",
4504
+ # max_results: 1,
4505
+ # })
4506
+ #
4507
+ # @example Response structure
4508
+ #
4509
+ # resp.proxies #=> Array
4510
+ # resp.proxies[0].name #=> String
4511
+ # resp.proxies[0].arn #=> String
4512
+ # resp.next_token #=> String
4513
+ #
4514
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListProxies AWS API Documentation
3319
4515
  #
3320
- # @overload list_flow_operation_results(params = {})
4516
+ # @overload list_proxies(params = {})
3321
4517
  # @param [Hash] params ({})
3322
- def list_flow_operation_results(params = {}, options = {})
3323
- req = build_request(:list_flow_operation_results, params)
4518
+ def list_proxies(params = {}, options = {})
4519
+ req = build_request(:list_proxies, params)
3324
4520
  req.send_request(options)
3325
4521
  end
3326
4522
 
3327
- # Returns a list of all flow operations ran in a specific firewall. You
3328
- # can optionally narrow the request scope by specifying the operation
3329
- # type or Availability Zone associated with a firewall's flow
3330
- # operations.
4523
+ # Retrieves the metadata for the proxy configuration that you have
4524
+ # defined. Depending on your setting for max results and the number of
4525
+ # proxy configurations, a single call might not return the full list.
3331
4526
  #
3332
- # Flow operations let you manage the flows tracked in the flow table,
3333
- # also known as the firewall table.
4527
+ # @option params [String] :next_token
4528
+ # When you request a list of objects with a `MaxResults` setting, if the
4529
+ # number of objects that are still available for retrieval exceeds the
4530
+ # maximum you requested, Network Firewall returns a `NextToken` value in
4531
+ # the response. To retrieve the next batch of objects, use the token
4532
+ # returned from the prior request in your next request.
3334
4533
  #
3335
- # A flow is network traffic that is monitored by a firewall, either by
3336
- # stateful or stateless rules. For traffic to be considered part of a
3337
- # flow, it must share Destination, DestinationPort, Direction, Protocol,
3338
- # Source, and SourcePort.
4534
+ # @option params [Integer] :max_results
4535
+ # The maximum number of objects that you want Network Firewall to return
4536
+ # for this request. If more objects are available, in the response,
4537
+ # Network Firewall provides a `NextToken` value that you can use in a
4538
+ # subsequent call to get the next batch of objects.
3339
4539
  #
3340
- # @option params [required, String] :firewall_arn
3341
- # The Amazon Resource Name (ARN) of the firewall.
4540
+ # @return [Types::ListProxyConfigurationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3342
4541
  #
3343
- # @option params [String] :availability_zone
3344
- # The ID of the Availability Zone where the firewall is located. For
3345
- # example, `us-east-2a`.
4542
+ # * {Types::ListProxyConfigurationsResponse#proxy_configurations #proxy_configurations} => Array&lt;Types::ProxyConfigurationMetadata&gt;
4543
+ # * {Types::ListProxyConfigurationsResponse#next_token #next_token} => String
3346
4544
  #
3347
- # Defines the scope a flow operation. You can use up to 20 filters to
3348
- # configure a single flow operation.
4545
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
3349
4546
  #
3350
- # @option params [String] :vpc_endpoint_association_arn
3351
- # The Amazon Resource Name (ARN) of a VPC endpoint association.
4547
+ # @example Request syntax with placeholder values
3352
4548
  #
3353
- # @option params [String] :vpc_endpoint_id
3354
- # A unique identifier for the primary endpoint associated with a
3355
- # firewall.
4549
+ # resp = client.list_proxy_configurations({
4550
+ # next_token: "PaginationToken",
4551
+ # max_results: 1,
4552
+ # })
3356
4553
  #
3357
- # @option params [String] :flow_operation_type
3358
- # An optional string that defines whether any or all operation types are
3359
- # returned.
4554
+ # @example Response structure
4555
+ #
4556
+ # resp.proxy_configurations #=> Array
4557
+ # resp.proxy_configurations[0].name #=> String
4558
+ # resp.proxy_configurations[0].arn #=> String
4559
+ # resp.next_token #=> String
4560
+ #
4561
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListProxyConfigurations AWS API Documentation
4562
+ #
4563
+ # @overload list_proxy_configurations(params = {})
4564
+ # @param [Hash] params ({})
4565
+ def list_proxy_configurations(params = {}, options = {})
4566
+ req = build_request(:list_proxy_configurations, params)
4567
+ req.send_request(options)
4568
+ end
4569
+
4570
+ # Retrieves the metadata for the proxy rule groups that you have
4571
+ # defined. Depending on your setting for max results and the number of
4572
+ # proxy rule groups, a single call might not return the full list.
3360
4573
  #
3361
4574
  # @option params [String] :next_token
3362
4575
  # When you request a list of objects with a `MaxResults` setting, if the
@@ -3371,40 +4584,33 @@ module Aws::NetworkFirewall
3371
4584
  # Network Firewall provides a `NextToken` value that you can use in a
3372
4585
  # subsequent call to get the next batch of objects.
3373
4586
  #
3374
- # @return [Types::ListFlowOperationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4587
+ # @return [Types::ListProxyRuleGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3375
4588
  #
3376
- # * {Types::ListFlowOperationsResponse#flow_operations #flow_operations} => Array&lt;Types::FlowOperationMetadata&gt;
3377
- # * {Types::ListFlowOperationsResponse#next_token #next_token} => String
4589
+ # * {Types::ListProxyRuleGroupsResponse#proxy_rule_groups #proxy_rule_groups} => Array&lt;Types::ProxyRuleGroupMetadata&gt;
4590
+ # * {Types::ListProxyRuleGroupsResponse#next_token #next_token} => String
3378
4591
  #
3379
4592
  # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
3380
4593
  #
3381
4594
  # @example Request syntax with placeholder values
3382
4595
  #
3383
- # resp = client.list_flow_operations({
3384
- # firewall_arn: "ResourceArn", # required
3385
- # availability_zone: "AvailabilityZone",
3386
- # vpc_endpoint_association_arn: "ResourceArn",
3387
- # vpc_endpoint_id: "VpcEndpointId",
3388
- # flow_operation_type: "FLOW_FLUSH", # accepts FLOW_FLUSH, FLOW_CAPTURE
4596
+ # resp = client.list_proxy_rule_groups({
3389
4597
  # next_token: "PaginationToken",
3390
4598
  # max_results: 1,
3391
4599
  # })
3392
4600
  #
3393
4601
  # @example Response structure
3394
4602
  #
3395
- # resp.flow_operations #=> Array
3396
- # resp.flow_operations[0].flow_operation_id #=> String
3397
- # resp.flow_operations[0].flow_operation_type #=> String, one of "FLOW_FLUSH", "FLOW_CAPTURE"
3398
- # resp.flow_operations[0].flow_request_timestamp #=> Time
3399
- # resp.flow_operations[0].flow_operation_status #=> String, one of "COMPLETED", "IN_PROGRESS", "FAILED", "COMPLETED_WITH_ERRORS"
4603
+ # resp.proxy_rule_groups #=> Array
4604
+ # resp.proxy_rule_groups[0].name #=> String
4605
+ # resp.proxy_rule_groups[0].arn #=> String
3400
4606
  # resp.next_token #=> String
3401
4607
  #
3402
- # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFlowOperations AWS API Documentation
4608
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListProxyRuleGroups AWS API Documentation
3403
4609
  #
3404
- # @overload list_flow_operations(params = {})
4610
+ # @overload list_proxy_rule_groups(params = {})
3405
4611
  # @param [Hash] params ({})
3406
- def list_flow_operations(params = {}, options = {})
3407
- req = build_request(:list_flow_operations, params)
4612
+ def list_proxy_rule_groups(params = {}, options = {})
4613
+ req = build_request(:list_proxy_rule_groups, params)
3408
4614
  req.send_request(options)
3409
4615
  end
3410
4616
 
@@ -4767,6 +5973,430 @@ module Aws::NetworkFirewall
4767
5973
  req.send_request(options)
4768
5974
  end
4769
5975
 
5976
+ # Updates the properties of the specified proxy.
5977
+ #
5978
+ # @option params [required, String] :nat_gateway_id
5979
+ # The NAT Gateway the proxy is attached to.
5980
+ #
5981
+ # @option params [String] :proxy_name
5982
+ # The descriptive name of the proxy. You can't change the name of a
5983
+ # proxy after you create it.
5984
+ #
5985
+ # You must specify the ARN or the name, and you can specify both.
5986
+ #
5987
+ # @option params [String] :proxy_arn
5988
+ # The Amazon Resource Name (ARN) of a proxy.
5989
+ #
5990
+ # You must specify the ARN or the name, and you can specify both.
5991
+ #
5992
+ # @option params [Array<Types::ListenerPropertyRequest>] :listener_properties_to_add
5993
+ # Listener properties for HTTP and HTTPS traffic to add.
5994
+ #
5995
+ # @option params [Array<Types::ListenerPropertyRequest>] :listener_properties_to_remove
5996
+ # Listener properties for HTTP and HTTPS traffic to remove.
5997
+ #
5998
+ # @option params [Types::TlsInterceptPropertiesRequest] :tls_intercept_properties
5999
+ # TLS decryption on traffic to filter on attributes in the HTTP header.
6000
+ #
6001
+ # @option params [required, String] :update_token
6002
+ # A token used for optimistic locking. Network Firewall returns a token
6003
+ # to your requests that access the proxy. The token marks the state of
6004
+ # the proxy resource at the time of the request.
6005
+ #
6006
+ # To make changes to the proxy, you provide the token in your request.
6007
+ # Network Firewall uses the token to ensure that the proxy hasn't
6008
+ # changed since you last retrieved it. If it has changed, the operation
6009
+ # fails with an `InvalidTokenException`. If this happens, retrieve the
6010
+ # proxy again to get a current copy of it with a current token. Reapply
6011
+ # your changes as needed, then try the operation again using the new
6012
+ # token.
6013
+ #
6014
+ # @return [Types::UpdateProxyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6015
+ #
6016
+ # * {Types::UpdateProxyResponse#proxy #proxy} => Types::Proxy
6017
+ # * {Types::UpdateProxyResponse#update_token #update_token} => String
6018
+ #
6019
+ # @example Request syntax with placeholder values
6020
+ #
6021
+ # resp = client.update_proxy({
6022
+ # nat_gateway_id: "NatGatewayId", # required
6023
+ # proxy_name: "ResourceName",
6024
+ # proxy_arn: "ResourceArn",
6025
+ # listener_properties_to_add: [
6026
+ # {
6027
+ # port: 1, # required
6028
+ # type: "HTTP", # required, accepts HTTP, HTTPS
6029
+ # },
6030
+ # ],
6031
+ # listener_properties_to_remove: [
6032
+ # {
6033
+ # port: 1, # required
6034
+ # type: "HTTP", # required, accepts HTTP, HTTPS
6035
+ # },
6036
+ # ],
6037
+ # tls_intercept_properties: {
6038
+ # pca_arn: "ResourceArn",
6039
+ # tls_intercept_mode: "ENABLED", # accepts ENABLED, DISABLED
6040
+ # },
6041
+ # update_token: "UpdateToken", # required
6042
+ # })
6043
+ #
6044
+ # @example Response structure
6045
+ #
6046
+ # resp.proxy.create_time #=> Time
6047
+ # resp.proxy.delete_time #=> Time
6048
+ # resp.proxy.update_time #=> Time
6049
+ # resp.proxy.failure_code #=> String
6050
+ # resp.proxy.failure_message #=> String
6051
+ # resp.proxy.proxy_state #=> String, one of "ATTACHING", "ATTACHED", "DETACHING", "DETACHED", "ATTACH_FAILED", "DETACH_FAILED"
6052
+ # resp.proxy.proxy_modify_state #=> String, one of "MODIFYING", "COMPLETED", "FAILED"
6053
+ # resp.proxy.nat_gateway_id #=> String
6054
+ # resp.proxy.proxy_configuration_name #=> String
6055
+ # resp.proxy.proxy_configuration_arn #=> String
6056
+ # resp.proxy.proxy_name #=> String
6057
+ # resp.proxy.proxy_arn #=> String
6058
+ # resp.proxy.listener_properties #=> Array
6059
+ # resp.proxy.listener_properties[0].port #=> Integer
6060
+ # resp.proxy.listener_properties[0].type #=> String, one of "HTTP", "HTTPS"
6061
+ # resp.proxy.tls_intercept_properties.pca_arn #=> String
6062
+ # resp.proxy.tls_intercept_properties.tls_intercept_mode #=> String, one of "ENABLED", "DISABLED"
6063
+ # resp.proxy.tags #=> Array
6064
+ # resp.proxy.tags[0].key #=> String
6065
+ # resp.proxy.tags[0].value #=> String
6066
+ # resp.update_token #=> String
6067
+ #
6068
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateProxy AWS API Documentation
6069
+ #
6070
+ # @overload update_proxy(params = {})
6071
+ # @param [Hash] params ({})
6072
+ def update_proxy(params = {}, options = {})
6073
+ req = build_request(:update_proxy, params)
6074
+ req.send_request(options)
6075
+ end
6076
+
6077
+ # Updates the properties of the specified proxy configuration.
6078
+ #
6079
+ # @option params [String] :proxy_configuration_name
6080
+ # The descriptive name of the proxy configuration. You can't change the
6081
+ # name of a proxy configuration after you create it.
6082
+ #
6083
+ # You must specify the ARN or the name, and you can specify both.
6084
+ #
6085
+ # @option params [String] :proxy_configuration_arn
6086
+ # The Amazon Resource Name (ARN) of a proxy configuration.
6087
+ #
6088
+ # You must specify the ARN or the name, and you can specify both.
6089
+ #
6090
+ # @option params [required, Types::ProxyConfigDefaultRulePhaseActionsRequest] :default_rule_phase_actions
6091
+ # Evaluation points in the traffic flow where rules are applied. There
6092
+ # are three phases in a traffic where the rule match is applied.
6093
+ #
6094
+ # @option params [required, String] :update_token
6095
+ # A token used for optimistic locking. Network Firewall returns a token
6096
+ # to your requests that access the proxy configuration. The token marks
6097
+ # the state of the proxy configuration resource at the time of the
6098
+ # request.
6099
+ #
6100
+ # To make changes to the proxy configuration, you provide the token in
6101
+ # your request. Network Firewall uses the token to ensure that the proxy
6102
+ # configuration hasn't changed since you last retrieved it. If it has
6103
+ # changed, the operation fails with an `InvalidTokenException`. If this
6104
+ # happens, retrieve the proxy configuration again to get a current copy
6105
+ # of it with a current token. Reapply your changes as needed, then try
6106
+ # the operation again using the new token.
6107
+ #
6108
+ # @return [Types::UpdateProxyConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6109
+ #
6110
+ # * {Types::UpdateProxyConfigurationResponse#proxy_configuration #proxy_configuration} => Types::ProxyConfiguration
6111
+ # * {Types::UpdateProxyConfigurationResponse#update_token #update_token} => String
6112
+ #
6113
+ # @example Request syntax with placeholder values
6114
+ #
6115
+ # resp = client.update_proxy_configuration({
6116
+ # proxy_configuration_name: "ResourceName",
6117
+ # proxy_configuration_arn: "ResourceArn",
6118
+ # default_rule_phase_actions: { # required
6119
+ # pre_dns: "ALLOW", # accepts ALLOW, DENY, ALERT
6120
+ # pre_request: "ALLOW", # accepts ALLOW, DENY, ALERT
6121
+ # post_response: "ALLOW", # accepts ALLOW, DENY, ALERT
6122
+ # },
6123
+ # update_token: "UpdateToken", # required
6124
+ # })
6125
+ #
6126
+ # @example Response structure
6127
+ #
6128
+ # resp.proxy_configuration.proxy_configuration_name #=> String
6129
+ # resp.proxy_configuration.proxy_configuration_arn #=> String
6130
+ # resp.proxy_configuration.description #=> String
6131
+ # resp.proxy_configuration.create_time #=> Time
6132
+ # resp.proxy_configuration.delete_time #=> Time
6133
+ # resp.proxy_configuration.rule_groups #=> Array
6134
+ # resp.proxy_configuration.rule_groups[0].proxy_rule_group_name #=> String
6135
+ # resp.proxy_configuration.rule_groups[0].proxy_rule_group_arn #=> String
6136
+ # resp.proxy_configuration.rule_groups[0].type #=> String
6137
+ # resp.proxy_configuration.rule_groups[0].priority #=> Integer
6138
+ # resp.proxy_configuration.default_rule_phase_actions.pre_dns #=> String, one of "ALLOW", "DENY", "ALERT"
6139
+ # resp.proxy_configuration.default_rule_phase_actions.pre_request #=> String, one of "ALLOW", "DENY", "ALERT"
6140
+ # resp.proxy_configuration.default_rule_phase_actions.post_response #=> String, one of "ALLOW", "DENY", "ALERT"
6141
+ # resp.proxy_configuration.tags #=> Array
6142
+ # resp.proxy_configuration.tags[0].key #=> String
6143
+ # resp.proxy_configuration.tags[0].value #=> String
6144
+ # resp.update_token #=> String
6145
+ #
6146
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateProxyConfiguration AWS API Documentation
6147
+ #
6148
+ # @overload update_proxy_configuration(params = {})
6149
+ # @param [Hash] params ({})
6150
+ def update_proxy_configuration(params = {}, options = {})
6151
+ req = build_request(:update_proxy_configuration, params)
6152
+ req.send_request(options)
6153
+ end
6154
+
6155
+ # Updates the properties of the specified proxy rule.
6156
+ #
6157
+ # @option params [String] :proxy_rule_group_name
6158
+ # The descriptive name of the proxy rule group. You can't change the
6159
+ # name of a proxy rule group after you create it.
6160
+ #
6161
+ # You must specify the ARN or the name, and you can specify both.
6162
+ #
6163
+ # @option params [String] :proxy_rule_group_arn
6164
+ # The Amazon Resource Name (ARN) of a proxy rule group.
6165
+ #
6166
+ # You must specify the ARN or the name, and you can specify both.
6167
+ #
6168
+ # @option params [required, String] :proxy_rule_name
6169
+ # The descriptive name of the proxy rule. You can't change the name of
6170
+ # a proxy rule after you create it.
6171
+ #
6172
+ # @option params [String] :description
6173
+ # A description of the proxy rule.
6174
+ #
6175
+ # @option params [String] :action
6176
+ # Depending on the match action, the proxy either stops the evaluation
6177
+ # (if the action is terminal - allow or deny), or continues it (if the
6178
+ # action is alert) until it matches a rule with a terminal action.
6179
+ #
6180
+ # @option params [Array<Types::ProxyRuleCondition>] :add_conditions
6181
+ # Proxy rule conditions to add. Match criteria that specify what traffic
6182
+ # attributes to examine. Conditions include operators (StringEquals,
6183
+ # StringLike) and values to match against.
6184
+ #
6185
+ # @option params [Array<Types::ProxyRuleCondition>] :remove_conditions
6186
+ # Proxy rule conditions to remove. Match criteria that specify what
6187
+ # traffic attributes to examine. Conditions include operators
6188
+ # (StringEquals, StringLike) and values to match against.
6189
+ #
6190
+ # @option params [required, String] :update_token
6191
+ # A token used for optimistic locking. Network Firewall returns a token
6192
+ # to your requests that access the proxy rule. The token marks the state
6193
+ # of the proxy rule resource at the time of the request.
6194
+ #
6195
+ # To make changes to the proxy rule, you provide the token in your
6196
+ # request. Network Firewall uses the token to ensure that the proxy rule
6197
+ # hasn't changed since you last retrieved it. If it has changed, the
6198
+ # operation fails with an `InvalidTokenException`. If this happens,
6199
+ # retrieve the proxy rule again to get a current copy of it with a
6200
+ # current token. Reapply your changes as needed, then try the operation
6201
+ # again using the new token.
6202
+ #
6203
+ # @return [Types::UpdateProxyRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6204
+ #
6205
+ # * {Types::UpdateProxyRuleResponse#proxy_rule #proxy_rule} => Types::ProxyRule
6206
+ # * {Types::UpdateProxyRuleResponse#removed_conditions #removed_conditions} => Array&lt;Types::ProxyRuleCondition&gt;
6207
+ # * {Types::UpdateProxyRuleResponse#update_token #update_token} => String
6208
+ #
6209
+ # @example Request syntax with placeholder values
6210
+ #
6211
+ # resp = client.update_proxy_rule({
6212
+ # proxy_rule_group_name: "ResourceName",
6213
+ # proxy_rule_group_arn: "ResourceArn",
6214
+ # proxy_rule_name: "ResourceName", # required
6215
+ # description: "Description",
6216
+ # action: "ALLOW", # accepts ALLOW, DENY, ALERT
6217
+ # add_conditions: [
6218
+ # {
6219
+ # condition_operator: "ConditionOperator",
6220
+ # condition_key: "ConditionKey",
6221
+ # condition_values: ["ProxyConditionValue"],
6222
+ # },
6223
+ # ],
6224
+ # remove_conditions: [
6225
+ # {
6226
+ # condition_operator: "ConditionOperator",
6227
+ # condition_key: "ConditionKey",
6228
+ # condition_values: ["ProxyConditionValue"],
6229
+ # },
6230
+ # ],
6231
+ # update_token: "UpdateToken", # required
6232
+ # })
6233
+ #
6234
+ # @example Response structure
6235
+ #
6236
+ # resp.proxy_rule.proxy_rule_name #=> String
6237
+ # resp.proxy_rule.description #=> String
6238
+ # resp.proxy_rule.action #=> String, one of "ALLOW", "DENY", "ALERT"
6239
+ # resp.proxy_rule.conditions #=> Array
6240
+ # resp.proxy_rule.conditions[0].condition_operator #=> String
6241
+ # resp.proxy_rule.conditions[0].condition_key #=> String
6242
+ # resp.proxy_rule.conditions[0].condition_values #=> Array
6243
+ # resp.proxy_rule.conditions[0].condition_values[0] #=> String
6244
+ # resp.removed_conditions #=> Array
6245
+ # resp.removed_conditions[0].condition_operator #=> String
6246
+ # resp.removed_conditions[0].condition_key #=> String
6247
+ # resp.removed_conditions[0].condition_values #=> Array
6248
+ # resp.removed_conditions[0].condition_values[0] #=> String
6249
+ # resp.update_token #=> String
6250
+ #
6251
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateProxyRule AWS API Documentation
6252
+ #
6253
+ # @overload update_proxy_rule(params = {})
6254
+ # @param [Hash] params ({})
6255
+ def update_proxy_rule(params = {}, options = {})
6256
+ req = build_request(:update_proxy_rule, params)
6257
+ req.send_request(options)
6258
+ end
6259
+
6260
+ # Updates proxy rule group priorities within a proxy configuration.
6261
+ #
6262
+ # @option params [String] :proxy_configuration_name
6263
+ # The descriptive name of the proxy configuration. You can't change the
6264
+ # name of a proxy configuration after you create it.
6265
+ #
6266
+ # You must specify the ARN or the name, and you can specify both.
6267
+ #
6268
+ # @option params [String] :proxy_configuration_arn
6269
+ # The Amazon Resource Name (ARN) of a proxy configuration.
6270
+ #
6271
+ # You must specify the ARN or the name, and you can specify both.
6272
+ #
6273
+ # @option params [required, Array<Types::ProxyRuleGroupPriority>] :rule_groups
6274
+ # proxy rule group resources to update to new positions.
6275
+ #
6276
+ # @option params [required, String] :update_token
6277
+ # A token used for optimistic locking. Network Firewall returns a token
6278
+ # to your requests that access the proxy configuration. The token marks
6279
+ # the state of the proxy configuration resource at the time of the
6280
+ # request.
6281
+ #
6282
+ # To make changes to the proxy configuration, you provide the token in
6283
+ # your request. Network Firewall uses the token to ensure that the proxy
6284
+ # configuration hasn't changed since you last retrieved it. If it has
6285
+ # changed, the operation fails with an `InvalidTokenException`. If this
6286
+ # happens, retrieve the proxy configuration again to get a current copy
6287
+ # of it with a current token. Reapply your changes as needed, then try
6288
+ # the operation again using the new token.
6289
+ #
6290
+ # @return [Types::UpdateProxyRuleGroupPrioritiesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6291
+ #
6292
+ # * {Types::UpdateProxyRuleGroupPrioritiesResponse#proxy_rule_groups #proxy_rule_groups} => Array&lt;Types::ProxyRuleGroupPriorityResult&gt;
6293
+ # * {Types::UpdateProxyRuleGroupPrioritiesResponse#update_token #update_token} => String
6294
+ #
6295
+ # @example Request syntax with placeholder values
6296
+ #
6297
+ # resp = client.update_proxy_rule_group_priorities({
6298
+ # proxy_configuration_name: "ResourceName",
6299
+ # proxy_configuration_arn: "ResourceArn",
6300
+ # rule_groups: [ # required
6301
+ # {
6302
+ # proxy_rule_group_name: "ResourceName",
6303
+ # new_position: 1,
6304
+ # },
6305
+ # ],
6306
+ # update_token: "UpdateToken", # required
6307
+ # })
6308
+ #
6309
+ # @example Response structure
6310
+ #
6311
+ # resp.proxy_rule_groups #=> Array
6312
+ # resp.proxy_rule_groups[0].proxy_rule_group_name #=> String
6313
+ # resp.proxy_rule_groups[0].priority #=> Integer
6314
+ # resp.update_token #=> String
6315
+ #
6316
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateProxyRuleGroupPriorities AWS API Documentation
6317
+ #
6318
+ # @overload update_proxy_rule_group_priorities(params = {})
6319
+ # @param [Hash] params ({})
6320
+ def update_proxy_rule_group_priorities(params = {}, options = {})
6321
+ req = build_request(:update_proxy_rule_group_priorities, params)
6322
+ req.send_request(options)
6323
+ end
6324
+
6325
+ # Updates proxy rule priorities within a proxy rule group.
6326
+ #
6327
+ # @option params [String] :proxy_rule_group_name
6328
+ # The descriptive name of the proxy rule group. You can't change the
6329
+ # name of a proxy rule group after you create it.
6330
+ #
6331
+ # You must specify the ARN or the name, and you can specify both.
6332
+ #
6333
+ # @option params [String] :proxy_rule_group_arn
6334
+ # The Amazon Resource Name (ARN) of a proxy rule group.
6335
+ #
6336
+ # You must specify the ARN or the name, and you can specify both.
6337
+ #
6338
+ # @option params [required, String] :rule_group_request_phase
6339
+ # Evaluation points in the traffic flow where rules are applied. There
6340
+ # are three phases in a traffic where the rule match is applied.
6341
+ #
6342
+ # @option params [required, Array<Types::ProxyRulePriority>] :rules
6343
+ # proxy rule resources to update to new positions.
6344
+ #
6345
+ # @option params [required, String] :update_token
6346
+ # A token used for optimistic locking. Network Firewall returns a token
6347
+ # to your requests that access the proxy rule group. The token marks the
6348
+ # state of the proxy rule group resource at the time of the request.
6349
+ #
6350
+ # To make changes to the proxy rule group, you provide the token in your
6351
+ # request. Network Firewall uses the token to ensure that the proxy rule
6352
+ # group hasn't changed since you last retrieved it. If it has changed,
6353
+ # the operation fails with an `InvalidTokenException`. If this happens,
6354
+ # retrieve the proxy rule group again to get a current copy of it with a
6355
+ # current token. Reapply your changes as needed, then try the operation
6356
+ # again using the new token.
6357
+ #
6358
+ # @return [Types::UpdateProxyRulePrioritiesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6359
+ #
6360
+ # * {Types::UpdateProxyRulePrioritiesResponse#proxy_rule_group_name #proxy_rule_group_name} => String
6361
+ # * {Types::UpdateProxyRulePrioritiesResponse#proxy_rule_group_arn #proxy_rule_group_arn} => String
6362
+ # * {Types::UpdateProxyRulePrioritiesResponse#rule_group_request_phase #rule_group_request_phase} => String
6363
+ # * {Types::UpdateProxyRulePrioritiesResponse#rules #rules} => Array&lt;Types::ProxyRulePriority&gt;
6364
+ # * {Types::UpdateProxyRulePrioritiesResponse#update_token #update_token} => String
6365
+ #
6366
+ # @example Request syntax with placeholder values
6367
+ #
6368
+ # resp = client.update_proxy_rule_priorities({
6369
+ # proxy_rule_group_name: "ResourceName",
6370
+ # proxy_rule_group_arn: "ResourceArn",
6371
+ # rule_group_request_phase: "PRE_DNS", # required, accepts PRE_DNS, PRE_REQ, POST_RES
6372
+ # rules: [ # required
6373
+ # {
6374
+ # proxy_rule_name: "ResourceName",
6375
+ # new_position: 1,
6376
+ # },
6377
+ # ],
6378
+ # update_token: "UpdateToken", # required
6379
+ # })
6380
+ #
6381
+ # @example Response structure
6382
+ #
6383
+ # resp.proxy_rule_group_name #=> String
6384
+ # resp.proxy_rule_group_arn #=> String
6385
+ # resp.rule_group_request_phase #=> String, one of "PRE_DNS", "PRE_REQ", "POST_RES"
6386
+ # resp.rules #=> Array
6387
+ # resp.rules[0].proxy_rule_name #=> String
6388
+ # resp.rules[0].new_position #=> Integer
6389
+ # resp.update_token #=> String
6390
+ #
6391
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateProxyRulePriorities AWS API Documentation
6392
+ #
6393
+ # @overload update_proxy_rule_priorities(params = {})
6394
+ # @param [Hash] params ({})
6395
+ def update_proxy_rule_priorities(params = {}, options = {})
6396
+ req = build_request(:update_proxy_rule_priorities, params)
6397
+ req.send_request(options)
6398
+ end
6399
+
4770
6400
  # Updates the rule settings for the specified rule group. You use a rule
4771
6401
  # group by reference in one or more firewall policies. When you modify a
4772
6402
  # rule group, you modify all firewall policies that use the rule group.
@@ -5290,7 +6920,7 @@ module Aws::NetworkFirewall
5290
6920
  tracer: tracer
5291
6921
  )
5292
6922
  context[:gem_name] = 'aws-sdk-networkfirewall'
5293
- context[:gem_version] = '1.81.0'
6923
+ context[:gem_version] = '1.82.0'
5294
6924
  Seahorse::Client::Request.new(handlers, context)
5295
6925
  end
5296
6926