aws-sdk-fms 1.48.0 → 1.49.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe1856b2e7db71ec8c271606d37bf76353ca984e90989e79ff8b135c213ec108
4
- data.tar.gz: 276edd6276e83d327b817785a38be6a3fde6899604fbd7530ed5ea99038092e0
3
+ metadata.gz: 16ed215f917debd6e77e26d7aa5c7cb99079aac3b1189cbdb39b10d0ab0dec9d
4
+ data.tar.gz: 358cf904a9452d3a0b5c0a8cc5de573b6c01e1c7f4429298fd8d85ba43e03092
5
5
  SHA512:
6
- metadata.gz: e9781f9af09f7b87593143da3daae257adc24f9cdb28824f09faa3b0e110ae87fb7965897a7663848e7e841e6e51542078b0bc50d80923d9f89d185fefa5d7de
7
- data.tar.gz: 2ef93a5e9c63b64ea4c8051deb6a1548a1dac2995468feb6e63349e556800cfd0c2ef0a4312033e4b5d8db36700a8739215d940188c032f09d61bf76fcb0afdd
6
+ metadata.gz: c03589c37e3610e2ff989687a357302d0dcebbbd8cea89bf3da2537ecf122a8187a853b25c706416ab9bd78dc6b16177e39173223ecab23155dd716ec5343d8b
7
+ data.tar.gz: 957c9504c4d7a4af2850d23587aa67c96b60c332fdcc51e22115ee4ab5bd79b0640c1c6e5f0c8c80efeeca1db8c71af551cbb5d6b9dee69ed75d4a6efff16a74
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.49.0 (2022-03-30)
5
+ ------------------
6
+
7
+ * Feature - AWS Firewall Manager now supports the configuration of third-party policies that can use either the centralized or distributed deployment models.
8
+
4
9
  1.48.0 (2022-02-24)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.48.0
1
+ 1.49.0
@@ -397,6 +397,37 @@ module Aws::FMS
397
397
  req.send_request(options)
398
398
  end
399
399
 
400
+ # Sets the Firewall Manager policy administrator as a tenant
401
+ # administrator of a third-party firewall service. A tenant is an
402
+ # instance of the third-party firewall service that's associated with
403
+ # your Amazon Web Services customer account.
404
+ #
405
+ # @option params [required, String] :third_party_firewall
406
+ # The name of the third-party firewall vendor.
407
+ #
408
+ # @return [Types::AssociateThirdPartyFirewallResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
409
+ #
410
+ # * {Types::AssociateThirdPartyFirewallResponse#third_party_firewall_status #third_party_firewall_status} => String
411
+ #
412
+ # @example Request syntax with placeholder values
413
+ #
414
+ # resp = client.associate_third_party_firewall({
415
+ # third_party_firewall: "PALO_ALTO_NETWORKS_CLOUD_NGFW", # required, accepts PALO_ALTO_NETWORKS_CLOUD_NGFW
416
+ # })
417
+ #
418
+ # @example Response structure
419
+ #
420
+ # resp.third_party_firewall_status #=> String, one of "ONBOARDING", "ONBOARD_COMPLETE", "OFFBOARDING", "OFFBOARD_COMPLETE", "NOT_EXIST"
421
+ #
422
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AssociateThirdPartyFirewall AWS API Documentation
423
+ #
424
+ # @overload associate_third_party_firewall(params = {})
425
+ # @param [Hash] params ({})
426
+ def associate_third_party_firewall(params = {}, options = {})
427
+ req = build_request(:associate_third_party_firewall, params)
428
+ req.send_request(options)
429
+ end
430
+
400
431
  # Permanently deletes an Firewall Manager applications list.
401
432
  #
402
433
  # @option params [required, String] :list_id
@@ -528,6 +559,37 @@ module Aws::FMS
528
559
  req.send_request(options)
529
560
  end
530
561
 
562
+ # Disassociates a Firewall Manager policy administrator from a
563
+ # third-party firewall tenant. When you call
564
+ # `DisassociateThirdPartyFirewall`, the third-party firewall vendor
565
+ # deletes all of the firewalls that are associated with the account.
566
+ #
567
+ # @option params [required, String] :third_party_firewall
568
+ # The name of the third-party firewall vendor.
569
+ #
570
+ # @return [Types::DisassociateThirdPartyFirewallResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
571
+ #
572
+ # * {Types::DisassociateThirdPartyFirewallResponse#third_party_firewall_status #third_party_firewall_status} => String
573
+ #
574
+ # @example Request syntax with placeholder values
575
+ #
576
+ # resp = client.disassociate_third_party_firewall({
577
+ # third_party_firewall: "PALO_ALTO_NETWORKS_CLOUD_NGFW", # required, accepts PALO_ALTO_NETWORKS_CLOUD_NGFW
578
+ # })
579
+ #
580
+ # @example Response structure
581
+ #
582
+ # resp.third_party_firewall_status #=> String, one of "ONBOARDING", "ONBOARD_COMPLETE", "OFFBOARDING", "OFFBOARD_COMPLETE", "NOT_EXIST"
583
+ #
584
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DisassociateThirdPartyFirewall AWS API Documentation
585
+ #
586
+ # @overload disassociate_third_party_firewall(params = {})
587
+ # @param [Hash] params ({})
588
+ def disassociate_third_party_firewall(params = {}, options = {})
589
+ req = build_request(:disassociate_third_party_firewall, params)
590
+ req.send_request(options)
591
+ end
592
+
531
593
  # Returns the Organizations account that is associated with Firewall
532
594
  # Manager as the Firewall Manager administrator.
533
595
  #
@@ -648,7 +710,7 @@ module Aws::FMS
648
710
  # resp.policy_compliance_detail.member_account #=> String
649
711
  # resp.policy_compliance_detail.violators #=> Array
650
712
  # resp.policy_compliance_detail.violators[0].resource_id #=> String
651
- # resp.policy_compliance_detail.violators[0].violation_reason #=> String, one of "WEB_ACL_MISSING_RULE_GROUP", "RESOURCE_MISSING_WEB_ACL", "RESOURCE_INCORRECT_WEB_ACL", "RESOURCE_MISSING_SHIELD_PROTECTION", "RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION", "RESOURCE_MISSING_SECURITY_GROUP", "RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP", "SECURITY_GROUP_UNUSED", "SECURITY_GROUP_REDUNDANT", "FMS_CREATED_SECURITY_GROUP_EDITED", "MISSING_FIREWALL", "MISSING_FIREWALL_SUBNET_IN_AZ", "MISSING_EXPECTED_ROUTE_TABLE", "NETWORK_FIREWALL_POLICY_MODIFIED", "INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE", "FIREWALL_SUBNET_MISSING_EXPECTED_ROUTE", "UNEXPECTED_FIREWALL_ROUTES", "UNEXPECTED_TARGET_GATEWAY_ROUTES", "TRAFFIC_INSPECTION_CROSSES_AZ_BOUNDARY", "INVALID_ROUTE_CONFIGURATION", "MISSING_TARGET_GATEWAY", "INTERNET_TRAFFIC_NOT_INSPECTED", "BLACK_HOLE_ROUTE_DETECTED", "BLACK_HOLE_ROUTE_DETECTED_IN_FIREWALL_SUBNET", "RESOURCE_MISSING_DNS_FIREWALL", "FIREWALL_SUBNET_IS_OUT_OF_SCOPE", "ROUTE_HAS_OUT_OF_SCOPE_ENDPOINT"
713
+ # resp.policy_compliance_detail.violators[0].violation_reason #=> String, one of "WEB_ACL_MISSING_RULE_GROUP", "RESOURCE_MISSING_WEB_ACL", "RESOURCE_INCORRECT_WEB_ACL", "RESOURCE_MISSING_SHIELD_PROTECTION", "RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION", "RESOURCE_MISSING_SECURITY_GROUP", "RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP", "SECURITY_GROUP_UNUSED", "SECURITY_GROUP_REDUNDANT", "FMS_CREATED_SECURITY_GROUP_EDITED", "MISSING_FIREWALL", "MISSING_FIREWALL_SUBNET_IN_AZ", "MISSING_EXPECTED_ROUTE_TABLE", "NETWORK_FIREWALL_POLICY_MODIFIED", "FIREWALL_SUBNET_IS_OUT_OF_SCOPE", "INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE", "FIREWALL_SUBNET_MISSING_EXPECTED_ROUTE", "UNEXPECTED_FIREWALL_ROUTES", "UNEXPECTED_TARGET_GATEWAY_ROUTES", "TRAFFIC_INSPECTION_CROSSES_AZ_BOUNDARY", "INVALID_ROUTE_CONFIGURATION", "MISSING_TARGET_GATEWAY", "INTERNET_TRAFFIC_NOT_INSPECTED", "BLACK_HOLE_ROUTE_DETECTED", "BLACK_HOLE_ROUTE_DETECTED_IN_FIREWALL_SUBNET", "RESOURCE_MISSING_DNS_FIREWALL", "ROUTE_HAS_OUT_OF_SCOPE_ENDPOINT", "FIREWALL_SUBNET_MISSING_VPCE_ENDPOINT"
652
714
  # resp.policy_compliance_detail.violators[0].resource_type #=> String
653
715
  # resp.policy_compliance_detail.violators[0].metadata #=> Hash
654
716
  # resp.policy_compliance_detail.violators[0].metadata["LengthBoundedString"] #=> String
@@ -709,9 +771,10 @@ module Aws::FMS
709
771
  # resp.policy.policy_id #=> String
710
772
  # resp.policy.policy_name #=> String
711
773
  # resp.policy.policy_update_token #=> String
712
- # resp.policy.security_service_policy_data.type #=> String, one of "WAF", "WAFV2", "SHIELD_ADVANCED", "SECURITY_GROUPS_COMMON", "SECURITY_GROUPS_CONTENT_AUDIT", "SECURITY_GROUPS_USAGE_AUDIT", "NETWORK_FIREWALL", "DNS_FIREWALL"
774
+ # resp.policy.security_service_policy_data.type #=> String, one of "WAF", "WAFV2", "SHIELD_ADVANCED", "SECURITY_GROUPS_COMMON", "SECURITY_GROUPS_CONTENT_AUDIT", "SECURITY_GROUPS_USAGE_AUDIT", "NETWORK_FIREWALL", "DNS_FIREWALL", "THIRD_PARTY_FIREWALL"
713
775
  # resp.policy.security_service_policy_data.managed_service_data #=> String
714
- # resp.policy.security_service_policy_data.policy_option.network_firewall_policy.firewall_deployment_model #=> String, one of "CENTRALIZED"
776
+ # resp.policy.security_service_policy_data.policy_option.network_firewall_policy.firewall_deployment_model #=> String, one of "CENTRALIZED", "DISTRIBUTED"
777
+ # resp.policy.security_service_policy_data.policy_option.third_party_firewall_policy.firewall_deployment_model #=> String, one of "CENTRALIZED", "DISTRIBUTED"
715
778
  # resp.policy.resource_type #=> String
716
779
  # resp.policy.resource_type_list #=> Array
717
780
  # resp.policy.resource_type_list[0] #=> String
@@ -797,7 +860,7 @@ module Aws::FMS
797
860
  # @example Response structure
798
861
  #
799
862
  # resp.admin_account_id #=> String
800
- # resp.service_type #=> String, one of "WAF", "WAFV2", "SHIELD_ADVANCED", "SECURITY_GROUPS_COMMON", "SECURITY_GROUPS_CONTENT_AUDIT", "SECURITY_GROUPS_USAGE_AUDIT", "NETWORK_FIREWALL", "DNS_FIREWALL"
863
+ # resp.service_type #=> String, one of "WAF", "WAFV2", "SHIELD_ADVANCED", "SECURITY_GROUPS_COMMON", "SECURITY_GROUPS_CONTENT_AUDIT", "SECURITY_GROUPS_USAGE_AUDIT", "NETWORK_FIREWALL", "DNS_FIREWALL", "THIRD_PARTY_FIREWALL"
801
864
  # resp.data #=> String
802
865
  # resp.next_token #=> String
803
866
  #
@@ -856,6 +919,37 @@ module Aws::FMS
856
919
  req.send_request(options)
857
920
  end
858
921
 
922
+ # The onboarding status of a Firewall Manager admin account to
923
+ # third-party firewall vendor tenant.
924
+ #
925
+ # @option params [required, String] :third_party_firewall
926
+ # The name of the third-party firewall vendor.
927
+ #
928
+ # @return [Types::GetThirdPartyFirewallAssociationStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
929
+ #
930
+ # * {Types::GetThirdPartyFirewallAssociationStatusResponse#third_party_firewall_status #third_party_firewall_status} => String
931
+ # * {Types::GetThirdPartyFirewallAssociationStatusResponse#marketplace_onboarding_status #marketplace_onboarding_status} => String
932
+ #
933
+ # @example Request syntax with placeholder values
934
+ #
935
+ # resp = client.get_third_party_firewall_association_status({
936
+ # third_party_firewall: "PALO_ALTO_NETWORKS_CLOUD_NGFW", # required, accepts PALO_ALTO_NETWORKS_CLOUD_NGFW
937
+ # })
938
+ #
939
+ # @example Response structure
940
+ #
941
+ # resp.third_party_firewall_status #=> String, one of "ONBOARDING", "ONBOARD_COMPLETE", "OFFBOARDING", "OFFBOARD_COMPLETE", "NOT_EXIST"
942
+ # resp.marketplace_onboarding_status #=> String, one of "NO_SUBSCRIPTION", "NOT_COMPLETE", "COMPLETE"
943
+ #
944
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetThirdPartyFirewallAssociationStatus AWS API Documentation
945
+ #
946
+ # @overload get_third_party_firewall_association_status(params = {})
947
+ # @param [Hash] params ({})
948
+ def get_third_party_firewall_association_status(params = {}, options = {})
949
+ req = build_request(:get_third_party_firewall_association_status, params)
950
+ req.send_request(options)
951
+ end
952
+
859
953
  # Retrieves violations for a resource based on the specified Firewall
860
954
  # Manager policy and Amazon Web Services account.
861
955
  #
@@ -1180,6 +1274,23 @@ module Aws::FMS
1180
1274
  # resp.violation_detail.resource_violations[0].route_has_out_of_scope_endpoint_violation.internet_gateway_routes[0].target_type #=> String, one of "GATEWAY", "CARRIER_GATEWAY", "INSTANCE", "LOCAL_GATEWAY", "NAT_GATEWAY", "NETWORK_INTERFACE", "VPC_ENDPOINT", "VPC_PEERING_CONNECTION", "EGRESS_ONLY_INTERNET_GATEWAY", "TRANSIT_GATEWAY"
1181
1275
  # resp.violation_detail.resource_violations[0].route_has_out_of_scope_endpoint_violation.internet_gateway_routes[0].destination #=> String
1182
1276
  # resp.violation_detail.resource_violations[0].route_has_out_of_scope_endpoint_violation.internet_gateway_routes[0].target #=> String
1277
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_firewall_violation.violation_target #=> String
1278
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_firewall_violation.vpc #=> String
1279
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_firewall_violation.availability_zone #=> String
1280
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_firewall_violation.target_violation_reason #=> String
1281
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_subnet_violation.violation_target #=> String
1282
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_subnet_violation.vpc #=> String
1283
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_subnet_violation.availability_zone #=> String
1284
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_subnet_violation.target_violation_reason #=> String
1285
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_expected_route_table_violation.violation_target #=> String
1286
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_expected_route_table_violation.vpc #=> String
1287
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_expected_route_table_violation.availability_zone #=> String
1288
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_expected_route_table_violation.current_route_table #=> String
1289
+ # resp.violation_detail.resource_violations[0].third_party_firewall_missing_expected_route_table_violation.expected_route_table #=> String
1290
+ # resp.violation_detail.resource_violations[0].firewall_subnet_missing_vpc_endpoint_violation.firewall_subnet_id #=> String
1291
+ # resp.violation_detail.resource_violations[0].firewall_subnet_missing_vpc_endpoint_violation.vpc_id #=> String
1292
+ # resp.violation_detail.resource_violations[0].firewall_subnet_missing_vpc_endpoint_violation.subnet_availability_zone #=> String
1293
+ # resp.violation_detail.resource_violations[0].firewall_subnet_missing_vpc_endpoint_violation.subnet_availability_zone_id #=> String
1183
1294
  # resp.violation_detail.resource_tags #=> Array
1184
1295
  # resp.violation_detail.resource_tags[0].key #=> String
1185
1296
  # resp.violation_detail.resource_tags[0].value #=> String
@@ -1406,7 +1517,7 @@ module Aws::FMS
1406
1517
  # resp.policy_list[0].policy_id #=> String
1407
1518
  # resp.policy_list[0].policy_name #=> String
1408
1519
  # resp.policy_list[0].resource_type #=> String
1409
- # resp.policy_list[0].security_service_type #=> String, one of "WAF", "WAFV2", "SHIELD_ADVANCED", "SECURITY_GROUPS_COMMON", "SECURITY_GROUPS_CONTENT_AUDIT", "SECURITY_GROUPS_USAGE_AUDIT", "NETWORK_FIREWALL", "DNS_FIREWALL"
1520
+ # resp.policy_list[0].security_service_type #=> String, one of "WAF", "WAFV2", "SHIELD_ADVANCED", "SECURITY_GROUPS_COMMON", "SECURITY_GROUPS_CONTENT_AUDIT", "SECURITY_GROUPS_USAGE_AUDIT", "NETWORK_FIREWALL", "DNS_FIREWALL", "THIRD_PARTY_FIREWALL"
1410
1521
  # resp.policy_list[0].remediation_enabled #=> Boolean
1411
1522
  # resp.policy_list[0].delete_unused_fm_managed_resources #=> Boolean
1412
1523
  # resp.next_token #=> String
@@ -1509,6 +1620,63 @@ module Aws::FMS
1509
1620
  req.send_request(options)
1510
1621
  end
1511
1622
 
1623
+ # Retrieves a list of all of the third-party firewall policies that are
1624
+ # associated with the third-party firewall administrator's account.
1625
+ #
1626
+ # @option params [required, String] :third_party_firewall
1627
+ # The name of the third-party firewall vendor.
1628
+ #
1629
+ # @option params [String] :next_token
1630
+ # If the previous response included a `NextToken` element, the specified
1631
+ # third-party firewall vendor is associated with more third-party
1632
+ # firewall policies. To get more third-party firewall policies, submit
1633
+ # another `ListThirdPartyFirewallFirewallPoliciesRequest` request.
1634
+ #
1635
+ # For the value of `NextToken`, specify the value of `NextToken` from
1636
+ # the previous response. If the previous response didn't include a
1637
+ # `NextToken` element, there are no more third-party firewall policies
1638
+ # to get.
1639
+ #
1640
+ # @option params [required, Integer] :max_results
1641
+ # The maximum number of third-party firewall policies that you want
1642
+ # Firewall Manager to return. If the specified third-party firewall
1643
+ # vendor is associated with more than `MaxResults` firewall policies,
1644
+ # the response includes a `NextToken` element. `NextToken` contains an
1645
+ # encrypted token that identifies the first third-party firewall
1646
+ # policies that Firewall Manager will return if you submit another
1647
+ # request.
1648
+ #
1649
+ # @return [Types::ListThirdPartyFirewallFirewallPoliciesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1650
+ #
1651
+ # * {Types::ListThirdPartyFirewallFirewallPoliciesResponse#third_party_firewall_firewall_policies #third_party_firewall_firewall_policies} => Array<Types::ThirdPartyFirewallFirewallPolicy>
1652
+ # * {Types::ListThirdPartyFirewallFirewallPoliciesResponse#next_token #next_token} => String
1653
+ #
1654
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1655
+ #
1656
+ # @example Request syntax with placeholder values
1657
+ #
1658
+ # resp = client.list_third_party_firewall_firewall_policies({
1659
+ # third_party_firewall: "PALO_ALTO_NETWORKS_CLOUD_NGFW", # required, accepts PALO_ALTO_NETWORKS_CLOUD_NGFW
1660
+ # next_token: "PaginationToken",
1661
+ # max_results: 1, # required
1662
+ # })
1663
+ #
1664
+ # @example Response structure
1665
+ #
1666
+ # resp.third_party_firewall_firewall_policies #=> Array
1667
+ # resp.third_party_firewall_firewall_policies[0].firewall_policy_id #=> String
1668
+ # resp.third_party_firewall_firewall_policies[0].firewall_policy_name #=> String
1669
+ # resp.next_token #=> String
1670
+ #
1671
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListThirdPartyFirewallFirewallPolicies AWS API Documentation
1672
+ #
1673
+ # @overload list_third_party_firewall_firewall_policies(params = {})
1674
+ # @param [Hash] params ({})
1675
+ def list_third_party_firewall_firewall_policies(params = {}, options = {})
1676
+ req = build_request(:list_third_party_firewall_firewall_policies, params)
1677
+ req.send_request(options)
1678
+ end
1679
+
1512
1680
  # Creates an Firewall Manager applications list.
1513
1681
  #
1514
1682
  # @option params [required, Types::AppsListData] :apps_list
@@ -1675,11 +1843,14 @@ module Aws::FMS
1675
1843
  # policy_name: "ResourceName", # required
1676
1844
  # policy_update_token: "PolicyUpdateToken",
1677
1845
  # security_service_policy_data: { # required
1678
- # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL, DNS_FIREWALL
1846
+ # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL, DNS_FIREWALL, THIRD_PARTY_FIREWALL
1679
1847
  # managed_service_data: "ManagedServiceData",
1680
1848
  # policy_option: {
1681
1849
  # network_firewall_policy: {
1682
- # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED
1850
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
1851
+ # },
1852
+ # third_party_firewall_policy: {
1853
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
1683
1854
  # },
1684
1855
  # },
1685
1856
  # },
@@ -1714,9 +1885,10 @@ module Aws::FMS
1714
1885
  # resp.policy.policy_id #=> String
1715
1886
  # resp.policy.policy_name #=> String
1716
1887
  # resp.policy.policy_update_token #=> String
1717
- # resp.policy.security_service_policy_data.type #=> String, one of "WAF", "WAFV2", "SHIELD_ADVANCED", "SECURITY_GROUPS_COMMON", "SECURITY_GROUPS_CONTENT_AUDIT", "SECURITY_GROUPS_USAGE_AUDIT", "NETWORK_FIREWALL", "DNS_FIREWALL"
1888
+ # resp.policy.security_service_policy_data.type #=> String, one of "WAF", "WAFV2", "SHIELD_ADVANCED", "SECURITY_GROUPS_COMMON", "SECURITY_GROUPS_CONTENT_AUDIT", "SECURITY_GROUPS_USAGE_AUDIT", "NETWORK_FIREWALL", "DNS_FIREWALL", "THIRD_PARTY_FIREWALL"
1718
1889
  # resp.policy.security_service_policy_data.managed_service_data #=> String
1719
- # resp.policy.security_service_policy_data.policy_option.network_firewall_policy.firewall_deployment_model #=> String, one of "CENTRALIZED"
1890
+ # resp.policy.security_service_policy_data.policy_option.network_firewall_policy.firewall_deployment_model #=> String, one of "CENTRALIZED", "DISTRIBUTED"
1891
+ # resp.policy.security_service_policy_data.policy_option.third_party_firewall_policy.firewall_deployment_model #=> String, one of "CENTRALIZED", "DISTRIBUTED"
1720
1892
  # resp.policy.resource_type #=> String
1721
1893
  # resp.policy.resource_type_list #=> Array
1722
1894
  # resp.policy.resource_type_list[0] #=> String
@@ -1875,7 +2047,7 @@ module Aws::FMS
1875
2047
  params: params,
1876
2048
  config: config)
1877
2049
  context[:gem_name] = 'aws-sdk-fms'
1878
- context[:gem_version] = '1.48.0'
2050
+ context[:gem_version] = '1.49.0'
1879
2051
  Seahorse::Client::Request.new(handlers, context)
1880
2052
  end
1881
2053
 
@@ -22,6 +22,8 @@ module Aws::FMS
22
22
  AppsListDataSummary = Shapes::StructureShape.new(name: 'AppsListDataSummary')
23
23
  AppsListsData = Shapes::ListShape.new(name: 'AppsListsData')
24
24
  AssociateAdminAccountRequest = Shapes::StructureShape.new(name: 'AssociateAdminAccountRequest')
25
+ AssociateThirdPartyFirewallRequest = Shapes::StructureShape.new(name: 'AssociateThirdPartyFirewallRequest')
26
+ AssociateThirdPartyFirewallResponse = Shapes::StructureShape.new(name: 'AssociateThirdPartyFirewallResponse')
25
27
  AwsEc2InstanceViolation = Shapes::StructureShape.new(name: 'AwsEc2InstanceViolation')
26
28
  AwsEc2NetworkInterfaceViolation = Shapes::StructureShape.new(name: 'AwsEc2NetworkInterfaceViolation')
27
29
  AwsEc2NetworkInterfaceViolations = Shapes::ListShape.new(name: 'AwsEc2NetworkInterfaceViolations')
@@ -44,6 +46,8 @@ module Aws::FMS
44
46
  DestinationType = Shapes::StringShape.new(name: 'DestinationType')
45
47
  DetailedInfo = Shapes::StringShape.new(name: 'DetailedInfo')
46
48
  DisassociateAdminAccountRequest = Shapes::StructureShape.new(name: 'DisassociateAdminAccountRequest')
49
+ DisassociateThirdPartyFirewallRequest = Shapes::StructureShape.new(name: 'DisassociateThirdPartyFirewallRequest')
50
+ DisassociateThirdPartyFirewallResponse = Shapes::StructureShape.new(name: 'DisassociateThirdPartyFirewallResponse')
47
51
  DnsDuplicateRuleGroupViolation = Shapes::StructureShape.new(name: 'DnsDuplicateRuleGroupViolation')
48
52
  DnsRuleGroupLimitExceededViolation = Shapes::StructureShape.new(name: 'DnsRuleGroupLimitExceededViolation')
49
53
  DnsRuleGroupPriorities = Shapes::ListShape.new(name: 'DnsRuleGroupPriorities')
@@ -63,7 +67,10 @@ module Aws::FMS
63
67
  ExpectedRoutes = Shapes::ListShape.new(name: 'ExpectedRoutes')
64
68
  FMSPolicyUpdateFirewallCreationConfigAction = Shapes::StructureShape.new(name: 'FMSPolicyUpdateFirewallCreationConfigAction')
65
69
  FirewallDeploymentModel = Shapes::StringShape.new(name: 'FirewallDeploymentModel')
70
+ FirewallPolicyId = Shapes::StringShape.new(name: 'FirewallPolicyId')
71
+ FirewallPolicyName = Shapes::StringShape.new(name: 'FirewallPolicyName')
66
72
  FirewallSubnetIsOutOfScopeViolation = Shapes::StructureShape.new(name: 'FirewallSubnetIsOutOfScopeViolation')
73
+ FirewallSubnetMissingVPCEndpointViolation = Shapes::StructureShape.new(name: 'FirewallSubnetMissingVPCEndpointViolation')
67
74
  GetAdminAccountRequest = Shapes::StructureShape.new(name: 'GetAdminAccountRequest')
68
75
  GetAdminAccountResponse = Shapes::StructureShape.new(name: 'GetAdminAccountResponse')
69
76
  GetAppsListRequest = Shapes::StructureShape.new(name: 'GetAppsListRequest')
@@ -78,6 +85,8 @@ module Aws::FMS
78
85
  GetProtectionStatusResponse = Shapes::StructureShape.new(name: 'GetProtectionStatusResponse')
79
86
  GetProtocolsListRequest = Shapes::StructureShape.new(name: 'GetProtocolsListRequest')
80
87
  GetProtocolsListResponse = Shapes::StructureShape.new(name: 'GetProtocolsListResponse')
88
+ GetThirdPartyFirewallAssociationStatusRequest = Shapes::StructureShape.new(name: 'GetThirdPartyFirewallAssociationStatusRequest')
89
+ GetThirdPartyFirewallAssociationStatusResponse = Shapes::StructureShape.new(name: 'GetThirdPartyFirewallAssociationStatusResponse')
81
90
  GetViolationDetailsRequest = Shapes::StructureShape.new(name: 'GetViolationDetailsRequest')
82
91
  GetViolationDetailsResponse = Shapes::StructureShape.new(name: 'GetViolationDetailsResponse')
83
92
  IPPortNumber = Shapes::IntegerShape.new(name: 'IPPortNumber')
@@ -102,7 +111,10 @@ module Aws::FMS
102
111
  ListProtocolsListsResponse = Shapes::StructureShape.new(name: 'ListProtocolsListsResponse')
103
112
  ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
104
113
  ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
114
+ ListThirdPartyFirewallFirewallPoliciesRequest = Shapes::StructureShape.new(name: 'ListThirdPartyFirewallFirewallPoliciesRequest')
115
+ ListThirdPartyFirewallFirewallPoliciesResponse = Shapes::StructureShape.new(name: 'ListThirdPartyFirewallFirewallPoliciesResponse')
105
116
  ManagedServiceData = Shapes::StringShape.new(name: 'ManagedServiceData')
117
+ MarketplaceSubscriptionOnboardingStatus = Shapes::StringShape.new(name: 'MarketplaceSubscriptionOnboardingStatus')
106
118
  MemberAccounts = Shapes::ListShape.new(name: 'MemberAccounts')
107
119
  NetworkFirewallAction = Shapes::StringShape.new(name: 'NetworkFirewallAction')
108
120
  NetworkFirewallActionList = Shapes::ListShape.new(name: 'NetworkFirewallActionList')
@@ -195,6 +207,14 @@ module Aws::FMS
195
207
  TargetType = Shapes::StringShape.new(name: 'TargetType')
196
208
  TargetViolationReason = Shapes::StringShape.new(name: 'TargetViolationReason')
197
209
  TargetViolationReasons = Shapes::ListShape.new(name: 'TargetViolationReasons')
210
+ ThirdPartyFirewall = Shapes::StringShape.new(name: 'ThirdPartyFirewall')
211
+ ThirdPartyFirewallAssociationStatus = Shapes::StringShape.new(name: 'ThirdPartyFirewallAssociationStatus')
212
+ ThirdPartyFirewallFirewallPolicies = Shapes::ListShape.new(name: 'ThirdPartyFirewallFirewallPolicies')
213
+ ThirdPartyFirewallFirewallPolicy = Shapes::StructureShape.new(name: 'ThirdPartyFirewallFirewallPolicy')
214
+ ThirdPartyFirewallMissingExpectedRouteTableViolation = Shapes::StructureShape.new(name: 'ThirdPartyFirewallMissingExpectedRouteTableViolation')
215
+ ThirdPartyFirewallMissingFirewallViolation = Shapes::StructureShape.new(name: 'ThirdPartyFirewallMissingFirewallViolation')
216
+ ThirdPartyFirewallMissingSubnetViolation = Shapes::StructureShape.new(name: 'ThirdPartyFirewallMissingSubnetViolation')
217
+ ThirdPartyFirewallPolicy = Shapes::StructureShape.new(name: 'ThirdPartyFirewallPolicy')
198
218
  TimeStamp = Shapes::TimestampShape.new(name: 'TimeStamp')
199
219
  UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
200
220
  UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
@@ -234,6 +254,12 @@ module Aws::FMS
234
254
  AssociateAdminAccountRequest.add_member(:admin_account, Shapes::ShapeRef.new(shape: AWSAccountId, required: true, location_name: "AdminAccount"))
235
255
  AssociateAdminAccountRequest.struct_class = Types::AssociateAdminAccountRequest
236
256
 
257
+ AssociateThirdPartyFirewallRequest.add_member(:third_party_firewall, Shapes::ShapeRef.new(shape: ThirdPartyFirewall, required: true, location_name: "ThirdPartyFirewall"))
258
+ AssociateThirdPartyFirewallRequest.struct_class = Types::AssociateThirdPartyFirewallRequest
259
+
260
+ AssociateThirdPartyFirewallResponse.add_member(:third_party_firewall_status, Shapes::ShapeRef.new(shape: ThirdPartyFirewallAssociationStatus, location_name: "ThirdPartyFirewallStatus"))
261
+ AssociateThirdPartyFirewallResponse.struct_class = Types::AssociateThirdPartyFirewallResponse
262
+
237
263
  AwsEc2InstanceViolation.add_member(:violation_target, Shapes::ShapeRef.new(shape: ViolationTarget, location_name: "ViolationTarget"))
238
264
  AwsEc2InstanceViolation.add_member(:aws_ec2_network_interface_violations, Shapes::ShapeRef.new(shape: AwsEc2NetworkInterfaceViolations, location_name: "AwsEc2NetworkInterfaceViolations"))
239
265
  AwsEc2InstanceViolation.struct_class = Types::AwsEc2InstanceViolation
@@ -280,6 +306,12 @@ module Aws::FMS
280
306
 
281
307
  DisassociateAdminAccountRequest.struct_class = Types::DisassociateAdminAccountRequest
282
308
 
309
+ DisassociateThirdPartyFirewallRequest.add_member(:third_party_firewall, Shapes::ShapeRef.new(shape: ThirdPartyFirewall, required: true, location_name: "ThirdPartyFirewall"))
310
+ DisassociateThirdPartyFirewallRequest.struct_class = Types::DisassociateThirdPartyFirewallRequest
311
+
312
+ DisassociateThirdPartyFirewallResponse.add_member(:third_party_firewall_status, Shapes::ShapeRef.new(shape: ThirdPartyFirewallAssociationStatus, location_name: "ThirdPartyFirewallStatus"))
313
+ DisassociateThirdPartyFirewallResponse.struct_class = Types::DisassociateThirdPartyFirewallResponse
314
+
283
315
  DnsDuplicateRuleGroupViolation.add_member(:violation_target, Shapes::ShapeRef.new(shape: ViolationTarget, location_name: "ViolationTarget"))
284
316
  DnsDuplicateRuleGroupViolation.add_member(:violation_target_description, Shapes::ShapeRef.new(shape: LengthBoundedString, location_name: "ViolationTargetDescription"))
285
317
  DnsDuplicateRuleGroupViolation.struct_class = Types::DnsDuplicateRuleGroupViolation
@@ -370,6 +402,12 @@ module Aws::FMS
370
402
  FirewallSubnetIsOutOfScopeViolation.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: ResourceId, location_name: "VpcEndpointId"))
371
403
  FirewallSubnetIsOutOfScopeViolation.struct_class = Types::FirewallSubnetIsOutOfScopeViolation
372
404
 
405
+ FirewallSubnetMissingVPCEndpointViolation.add_member(:firewall_subnet_id, Shapes::ShapeRef.new(shape: ResourceId, location_name: "FirewallSubnetId"))
406
+ FirewallSubnetMissingVPCEndpointViolation.add_member(:vpc_id, Shapes::ShapeRef.new(shape: ResourceId, location_name: "VpcId"))
407
+ FirewallSubnetMissingVPCEndpointViolation.add_member(:subnet_availability_zone, Shapes::ShapeRef.new(shape: LengthBoundedString, location_name: "SubnetAvailabilityZone"))
408
+ FirewallSubnetMissingVPCEndpointViolation.add_member(:subnet_availability_zone_id, Shapes::ShapeRef.new(shape: LengthBoundedString, location_name: "SubnetAvailabilityZoneId"))
409
+ FirewallSubnetMissingVPCEndpointViolation.struct_class = Types::FirewallSubnetMissingVPCEndpointViolation
410
+
373
411
  GetAdminAccountRequest.struct_class = Types::GetAdminAccountRequest
374
412
 
375
413
  GetAdminAccountResponse.add_member(:admin_account, Shapes::ShapeRef.new(shape: AWSAccountId, location_name: "AdminAccount"))
@@ -426,6 +464,13 @@ module Aws::FMS
426
464
  GetProtocolsListResponse.add_member(:protocols_list_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ProtocolsListArn"))
427
465
  GetProtocolsListResponse.struct_class = Types::GetProtocolsListResponse
428
466
 
467
+ GetThirdPartyFirewallAssociationStatusRequest.add_member(:third_party_firewall, Shapes::ShapeRef.new(shape: ThirdPartyFirewall, required: true, location_name: "ThirdPartyFirewall"))
468
+ GetThirdPartyFirewallAssociationStatusRequest.struct_class = Types::GetThirdPartyFirewallAssociationStatusRequest
469
+
470
+ GetThirdPartyFirewallAssociationStatusResponse.add_member(:third_party_firewall_status, Shapes::ShapeRef.new(shape: ThirdPartyFirewallAssociationStatus, location_name: "ThirdPartyFirewallStatus"))
471
+ GetThirdPartyFirewallAssociationStatusResponse.add_member(:marketplace_onboarding_status, Shapes::ShapeRef.new(shape: MarketplaceSubscriptionOnboardingStatus, location_name: "MarketplaceOnboardingStatus"))
472
+ GetThirdPartyFirewallAssociationStatusResponse.struct_class = Types::GetThirdPartyFirewallAssociationStatusResponse
473
+
429
474
  GetViolationDetailsRequest.add_member(:policy_id, Shapes::ShapeRef.new(shape: PolicyId, required: true, location_name: "PolicyId"))
430
475
  GetViolationDetailsRequest.add_member(:member_account, Shapes::ShapeRef.new(shape: AWSAccountId, required: true, location_name: "MemberAccount"))
431
476
  GetViolationDetailsRequest.add_member(:resource_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "ResourceId"))
@@ -504,6 +549,15 @@ module Aws::FMS
504
549
  ListTagsForResourceResponse.add_member(:tag_list, Shapes::ShapeRef.new(shape: TagList, location_name: "TagList"))
505
550
  ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse
506
551
 
552
+ ListThirdPartyFirewallFirewallPoliciesRequest.add_member(:third_party_firewall, Shapes::ShapeRef.new(shape: ThirdPartyFirewall, required: true, location_name: "ThirdPartyFirewall"))
553
+ ListThirdPartyFirewallFirewallPoliciesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
554
+ ListThirdPartyFirewallFirewallPoliciesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: PaginationMaxResults, required: true, location_name: "MaxResults"))
555
+ ListThirdPartyFirewallFirewallPoliciesRequest.struct_class = Types::ListThirdPartyFirewallFirewallPoliciesRequest
556
+
557
+ ListThirdPartyFirewallFirewallPoliciesResponse.add_member(:third_party_firewall_firewall_policies, Shapes::ShapeRef.new(shape: ThirdPartyFirewallFirewallPolicies, location_name: "ThirdPartyFirewallFirewallPolicies"))
558
+ ListThirdPartyFirewallFirewallPoliciesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
559
+ ListThirdPartyFirewallFirewallPoliciesResponse.struct_class = Types::ListThirdPartyFirewallFirewallPoliciesResponse
560
+
507
561
  MemberAccounts.member = Shapes::ShapeRef.new(shape: AWSAccountId)
508
562
 
509
563
  NetworkFirewallActionList.member = Shapes::ShapeRef.new(shape: NetworkFirewallAction)
@@ -644,6 +698,7 @@ module Aws::FMS
644
698
  PolicyComplianceStatusList.member = Shapes::ShapeRef.new(shape: PolicyComplianceStatus)
645
699
 
646
700
  PolicyOption.add_member(:network_firewall_policy, Shapes::ShapeRef.new(shape: NetworkFirewallPolicy, location_name: "NetworkFirewallPolicy"))
701
+ PolicyOption.add_member(:third_party_firewall_policy, Shapes::ShapeRef.new(shape: ThirdPartyFirewallPolicy, location_name: "ThirdPartyFirewallPolicy"))
647
702
  PolicyOption.struct_class = Types::PolicyOption
648
703
 
649
704
  PolicySummary.add_member(:policy_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "PolicyArn"))
@@ -768,6 +823,10 @@ module Aws::FMS
768
823
  ResourceViolation.add_member(:possible_remediation_actions, Shapes::ShapeRef.new(shape: PossibleRemediationActions, location_name: "PossibleRemediationActions"))
769
824
  ResourceViolation.add_member(:firewall_subnet_is_out_of_scope_violation, Shapes::ShapeRef.new(shape: FirewallSubnetIsOutOfScopeViolation, location_name: "FirewallSubnetIsOutOfScopeViolation"))
770
825
  ResourceViolation.add_member(:route_has_out_of_scope_endpoint_violation, Shapes::ShapeRef.new(shape: RouteHasOutOfScopeEndpointViolation, location_name: "RouteHasOutOfScopeEndpointViolation"))
826
+ ResourceViolation.add_member(:third_party_firewall_missing_firewall_violation, Shapes::ShapeRef.new(shape: ThirdPartyFirewallMissingFirewallViolation, location_name: "ThirdPartyFirewallMissingFirewallViolation"))
827
+ ResourceViolation.add_member(:third_party_firewall_missing_subnet_violation, Shapes::ShapeRef.new(shape: ThirdPartyFirewallMissingSubnetViolation, location_name: "ThirdPartyFirewallMissingSubnetViolation"))
828
+ ResourceViolation.add_member(:third_party_firewall_missing_expected_route_table_violation, Shapes::ShapeRef.new(shape: ThirdPartyFirewallMissingExpectedRouteTableViolation, location_name: "ThirdPartyFirewallMissingExpectedRouteTableViolation"))
829
+ ResourceViolation.add_member(:firewall_subnet_missing_vpc_endpoint_violation, Shapes::ShapeRef.new(shape: FirewallSubnetMissingVPCEndpointViolation, location_name: "FirewallSubnetMissingVPCEndpointViolation"))
771
830
  ResourceViolation.struct_class = Types::ResourceViolation
772
831
 
773
832
  ResourceViolations.member = Shapes::ShapeRef.new(shape: ResourceViolation)
@@ -844,6 +903,34 @@ module Aws::FMS
844
903
 
845
904
  TargetViolationReasons.member = Shapes::ShapeRef.new(shape: TargetViolationReason)
846
905
 
906
+ ThirdPartyFirewallFirewallPolicies.member = Shapes::ShapeRef.new(shape: ThirdPartyFirewallFirewallPolicy)
907
+
908
+ ThirdPartyFirewallFirewallPolicy.add_member(:firewall_policy_id, Shapes::ShapeRef.new(shape: FirewallPolicyId, location_name: "FirewallPolicyId"))
909
+ ThirdPartyFirewallFirewallPolicy.add_member(:firewall_policy_name, Shapes::ShapeRef.new(shape: FirewallPolicyName, location_name: "FirewallPolicyName"))
910
+ ThirdPartyFirewallFirewallPolicy.struct_class = Types::ThirdPartyFirewallFirewallPolicy
911
+
912
+ ThirdPartyFirewallMissingExpectedRouteTableViolation.add_member(:violation_target, Shapes::ShapeRef.new(shape: ViolationTarget, location_name: "ViolationTarget"))
913
+ ThirdPartyFirewallMissingExpectedRouteTableViolation.add_member(:vpc, Shapes::ShapeRef.new(shape: ResourceId, location_name: "VPC"))
914
+ ThirdPartyFirewallMissingExpectedRouteTableViolation.add_member(:availability_zone, Shapes::ShapeRef.new(shape: LengthBoundedString, location_name: "AvailabilityZone"))
915
+ ThirdPartyFirewallMissingExpectedRouteTableViolation.add_member(:current_route_table, Shapes::ShapeRef.new(shape: ResourceId, location_name: "CurrentRouteTable"))
916
+ ThirdPartyFirewallMissingExpectedRouteTableViolation.add_member(:expected_route_table, Shapes::ShapeRef.new(shape: ResourceId, location_name: "ExpectedRouteTable"))
917
+ ThirdPartyFirewallMissingExpectedRouteTableViolation.struct_class = Types::ThirdPartyFirewallMissingExpectedRouteTableViolation
918
+
919
+ ThirdPartyFirewallMissingFirewallViolation.add_member(:violation_target, Shapes::ShapeRef.new(shape: ViolationTarget, location_name: "ViolationTarget"))
920
+ ThirdPartyFirewallMissingFirewallViolation.add_member(:vpc, Shapes::ShapeRef.new(shape: ResourceId, location_name: "VPC"))
921
+ ThirdPartyFirewallMissingFirewallViolation.add_member(:availability_zone, Shapes::ShapeRef.new(shape: LengthBoundedString, location_name: "AvailabilityZone"))
922
+ ThirdPartyFirewallMissingFirewallViolation.add_member(:target_violation_reason, Shapes::ShapeRef.new(shape: TargetViolationReason, location_name: "TargetViolationReason"))
923
+ ThirdPartyFirewallMissingFirewallViolation.struct_class = Types::ThirdPartyFirewallMissingFirewallViolation
924
+
925
+ ThirdPartyFirewallMissingSubnetViolation.add_member(:violation_target, Shapes::ShapeRef.new(shape: ViolationTarget, location_name: "ViolationTarget"))
926
+ ThirdPartyFirewallMissingSubnetViolation.add_member(:vpc, Shapes::ShapeRef.new(shape: ResourceId, location_name: "VPC"))
927
+ ThirdPartyFirewallMissingSubnetViolation.add_member(:availability_zone, Shapes::ShapeRef.new(shape: LengthBoundedString, location_name: "AvailabilityZone"))
928
+ ThirdPartyFirewallMissingSubnetViolation.add_member(:target_violation_reason, Shapes::ShapeRef.new(shape: TargetViolationReason, location_name: "TargetViolationReason"))
929
+ ThirdPartyFirewallMissingSubnetViolation.struct_class = Types::ThirdPartyFirewallMissingSubnetViolation
930
+
931
+ ThirdPartyFirewallPolicy.add_member(:firewall_deployment_model, Shapes::ShapeRef.new(shape: FirewallDeploymentModel, location_name: "FirewallDeploymentModel"))
932
+ ThirdPartyFirewallPolicy.struct_class = Types::ThirdPartyFirewallPolicy
933
+
847
934
  UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
848
935
  UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location_name: "TagKeys"))
849
936
  UntagResourceRequest.struct_class = Types::UntagResourceRequest
@@ -891,6 +978,18 @@ module Aws::FMS
891
978
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
892
979
  end)
893
980
 
981
+ api.add_operation(:associate_third_party_firewall, Seahorse::Model::Operation.new.tap do |o|
982
+ o.name = "AssociateThirdPartyFirewall"
983
+ o.http_method = "POST"
984
+ o.http_request_uri = "/"
985
+ o.input = Shapes::ShapeRef.new(shape: AssociateThirdPartyFirewallRequest)
986
+ o.output = Shapes::ShapeRef.new(shape: AssociateThirdPartyFirewallResponse)
987
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
988
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
989
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
990
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
991
+ end)
992
+
894
993
  api.add_operation(:delete_apps_list, Seahorse::Model::Operation.new.tap do |o|
895
994
  o.name = "DeleteAppsList"
896
995
  o.http_method = "POST"
@@ -948,6 +1047,18 @@ module Aws::FMS
948
1047
  o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
949
1048
  end)
950
1049
 
1050
+ api.add_operation(:disassociate_third_party_firewall, Seahorse::Model::Operation.new.tap do |o|
1051
+ o.name = "DisassociateThirdPartyFirewall"
1052
+ o.http_method = "POST"
1053
+ o.http_request_uri = "/"
1054
+ o.input = Shapes::ShapeRef.new(shape: DisassociateThirdPartyFirewallRequest)
1055
+ o.output = Shapes::ShapeRef.new(shape: DisassociateThirdPartyFirewallResponse)
1056
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
1057
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1058
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1059
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1060
+ end)
1061
+
951
1062
  api.add_operation(:get_admin_account, Seahorse::Model::Operation.new.tap do |o|
952
1063
  o.name = "GetAdminAccount"
953
1064
  o.http_method = "POST"
@@ -1027,6 +1138,18 @@ module Aws::FMS
1027
1138
  o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1028
1139
  end)
1029
1140
 
1141
+ api.add_operation(:get_third_party_firewall_association_status, Seahorse::Model::Operation.new.tap do |o|
1142
+ o.name = "GetThirdPartyFirewallAssociationStatus"
1143
+ o.http_method = "POST"
1144
+ o.http_request_uri = "/"
1145
+ o.input = Shapes::ShapeRef.new(shape: GetThirdPartyFirewallAssociationStatusRequest)
1146
+ o.output = Shapes::ShapeRef.new(shape: GetThirdPartyFirewallAssociationStatusResponse)
1147
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
1148
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1149
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1150
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1151
+ end)
1152
+
1030
1153
  api.add_operation(:get_violation_details, Seahorse::Model::Operation.new.tap do |o|
1031
1154
  o.name = "GetViolationDetails"
1032
1155
  o.http_method = "POST"
@@ -1135,6 +1258,24 @@ module Aws::FMS
1135
1258
  o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1136
1259
  end)
1137
1260
 
1261
+ api.add_operation(:list_third_party_firewall_firewall_policies, Seahorse::Model::Operation.new.tap do |o|
1262
+ o.name = "ListThirdPartyFirewallFirewallPolicies"
1263
+ o.http_method = "POST"
1264
+ o.http_request_uri = "/"
1265
+ o.input = Shapes::ShapeRef.new(shape: ListThirdPartyFirewallFirewallPoliciesRequest)
1266
+ o.output = Shapes::ShapeRef.new(shape: ListThirdPartyFirewallFirewallPoliciesResponse)
1267
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
1268
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1269
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1270
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1271
+ o[:pager] = Aws::Pager.new(
1272
+ limit_key: "max_results",
1273
+ tokens: {
1274
+ "next_token" => "next_token"
1275
+ }
1276
+ )
1277
+ end)
1278
+
1138
1279
  api.add_operation(:put_apps_list, Seahorse::Model::Operation.new.tap do |o|
1139
1280
  o.name = "PutAppsList"
1140
1281
  o.http_method = "POST"
@@ -200,6 +200,54 @@ module Aws::FMS
200
200
  include Aws::Structure
201
201
  end
202
202
 
203
+ # @note When making an API call, you may pass AssociateThirdPartyFirewallRequest
204
+ # data as a hash:
205
+ #
206
+ # {
207
+ # third_party_firewall: "PALO_ALTO_NETWORKS_CLOUD_NGFW", # required, accepts PALO_ALTO_NETWORKS_CLOUD_NGFW
208
+ # }
209
+ #
210
+ # @!attribute [rw] third_party_firewall
211
+ # The name of the third-party firewall vendor.
212
+ # @return [String]
213
+ #
214
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AssociateThirdPartyFirewallRequest AWS API Documentation
215
+ #
216
+ class AssociateThirdPartyFirewallRequest < Struct.new(
217
+ :third_party_firewall)
218
+ SENSITIVE = []
219
+ include Aws::Structure
220
+ end
221
+
222
+ # @!attribute [rw] third_party_firewall_status
223
+ # The current status for setting a Firewall Manager policy
224
+ # administrator's account as an administrator of the third-party
225
+ # firewall tenant.
226
+ #
227
+ # * `ONBOARDING` - The Firewall Manager policy administrator is being
228
+ # designated as a tenant administrator.
229
+ #
230
+ # * `ONBOARD_COMPLETE` - The Firewall Manager policy administrator is
231
+ # designated as a tenant administrator.
232
+ #
233
+ # * `OFFBOARDING` - The Firewall Manager policy administrator is being
234
+ # removed as a tenant administrator.
235
+ #
236
+ # * `OFFBOARD_COMPLETE` - The Firewall Manager policy administrator
237
+ # has been removed as a tenant administrator.
238
+ #
239
+ # * `NOT_EXIST` - The Firewall Manager policy administrator doesn't
240
+ # exist as a tenant administrator.
241
+ # @return [String]
242
+ #
243
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AssociateThirdPartyFirewallResponse AWS API Documentation
244
+ #
245
+ class AssociateThirdPartyFirewallResponse < Struct.new(
246
+ :third_party_firewall_status)
247
+ SENSITIVE = []
248
+ include Aws::Structure
249
+ end
250
+
203
251
  # Violation detail for an EC2 instance resource.
204
252
  #
205
253
  # @!attribute [rw] violation_target
@@ -418,6 +466,38 @@ module Aws::FMS
418
466
  #
419
467
  class DisassociateAdminAccountRequest < Aws::EmptyStructure; end
420
468
 
469
+ # @note When making an API call, you may pass DisassociateThirdPartyFirewallRequest
470
+ # data as a hash:
471
+ #
472
+ # {
473
+ # third_party_firewall: "PALO_ALTO_NETWORKS_CLOUD_NGFW", # required, accepts PALO_ALTO_NETWORKS_CLOUD_NGFW
474
+ # }
475
+ #
476
+ # @!attribute [rw] third_party_firewall
477
+ # The name of the third-party firewall vendor.
478
+ # @return [String]
479
+ #
480
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DisassociateThirdPartyFirewallRequest AWS API Documentation
481
+ #
482
+ class DisassociateThirdPartyFirewallRequest < Struct.new(
483
+ :third_party_firewall)
484
+ SENSITIVE = []
485
+ include Aws::Structure
486
+ end
487
+
488
+ # @!attribute [rw] third_party_firewall_status
489
+ # The current status for the disassociation of a Firewall Manager
490
+ # administrators account with a third-party firewall.
491
+ # @return [String]
492
+ #
493
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DisassociateThirdPartyFirewallResponse AWS API Documentation
494
+ #
495
+ class DisassociateThirdPartyFirewallResponse < Struct.new(
496
+ :third_party_firewall_status)
497
+ SENSITIVE = []
498
+ include Aws::Structure
499
+ end
500
+
421
501
  # A DNS Firewall rule group that Firewall Manager tried to associate
422
502
  # with a VPC is already associated with the VPC and can't be associated
423
503
  # again.
@@ -883,6 +963,36 @@ module Aws::FMS
883
963
  include Aws::Structure
884
964
  end
885
965
 
966
+ # The violation details for a firewall subnet's VPC endpoint that's
967
+ # deleted or missing.
968
+ #
969
+ # @!attribute [rw] firewall_subnet_id
970
+ # The ID of the firewall that this VPC endpoint is associated with.
971
+ # @return [String]
972
+ #
973
+ # @!attribute [rw] vpc_id
974
+ # The resource ID of the VPC associated with the deleted VPC subnet.
975
+ # @return [String]
976
+ #
977
+ # @!attribute [rw] subnet_availability_zone
978
+ # The name of the Availability Zone of the deleted VPC subnet.
979
+ # @return [String]
980
+ #
981
+ # @!attribute [rw] subnet_availability_zone_id
982
+ # The ID of the Availability Zone of the deleted VPC subnet.
983
+ # @return [String]
984
+ #
985
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/FirewallSubnetMissingVPCEndpointViolation AWS API Documentation
986
+ #
987
+ class FirewallSubnetMissingVPCEndpointViolation < Struct.new(
988
+ :firewall_subnet_id,
989
+ :vpc_id,
990
+ :subnet_availability_zone,
991
+ :subnet_availability_zone_id)
992
+ SENSITIVE = []
993
+ include Aws::Structure
994
+ end
995
+
886
996
  # @api private
887
997
  #
888
998
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAdminAccountRequest AWS API Documentation
@@ -1213,6 +1323,73 @@ module Aws::FMS
1213
1323
  include Aws::Structure
1214
1324
  end
1215
1325
 
1326
+ # @note When making an API call, you may pass GetThirdPartyFirewallAssociationStatusRequest
1327
+ # data as a hash:
1328
+ #
1329
+ # {
1330
+ # third_party_firewall: "PALO_ALTO_NETWORKS_CLOUD_NGFW", # required, accepts PALO_ALTO_NETWORKS_CLOUD_NGFW
1331
+ # }
1332
+ #
1333
+ # @!attribute [rw] third_party_firewall
1334
+ # The name of the third-party firewall vendor.
1335
+ # @return [String]
1336
+ #
1337
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetThirdPartyFirewallAssociationStatusRequest AWS API Documentation
1338
+ #
1339
+ class GetThirdPartyFirewallAssociationStatusRequest < Struct.new(
1340
+ :third_party_firewall)
1341
+ SENSITIVE = []
1342
+ include Aws::Structure
1343
+ end
1344
+
1345
+ # @!attribute [rw] third_party_firewall_status
1346
+ # The current status for setting a Firewall Manager policy
1347
+ # administrators account as an administrator of the third-party
1348
+ # firewall tenant.
1349
+ #
1350
+ # * `ONBOARDING` - The Firewall Manager policy administrator is being
1351
+ # designated as a tenant administrator.
1352
+ #
1353
+ # * `ONBOARD_COMPLETE` - The Firewall Manager policy administrator is
1354
+ # designated as a tenant administrator.
1355
+ #
1356
+ # * `OFFBOARDING` - The Firewall Manager policy administrator is being
1357
+ # removed as a tenant administrator.
1358
+ #
1359
+ # * `OFFBOARD_COMPLETE` - The Firewall Manager policy administrator
1360
+ # has been removed as a tenant administrator.
1361
+ #
1362
+ # * `NOT_EXIST` - The Firewall Manager policy administrator doesn't
1363
+ # exist as a tenant administrator.
1364
+ # @return [String]
1365
+ #
1366
+ # @!attribute [rw] marketplace_onboarding_status
1367
+ # The status for subscribing to the third-party firewall vendor in the
1368
+ # AWS Marketplace.
1369
+ #
1370
+ # * `NO_SUBSCRIPTION` - The Firewall Manager policy administrator
1371
+ # isn't subscribed to the third-party firewall service in the AWS
1372
+ # Marketplace.
1373
+ #
1374
+ # * `NOT_COMPLETE` - The Firewall Manager policy administrator is in
1375
+ # the process of subscribing to the third-party firewall service in
1376
+ # the Amazon Web Services Marketplace, but doesn't yet have an
1377
+ # active subscription.
1378
+ #
1379
+ # * `COMPLETE` - The Firewall Manager policy administrator has an
1380
+ # active subscription to the third-party firewall service in the
1381
+ # Amazon Web Services Marketplace.
1382
+ # @return [String]
1383
+ #
1384
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetThirdPartyFirewallAssociationStatusResponse AWS API Documentation
1385
+ #
1386
+ class GetThirdPartyFirewallAssociationStatusResponse < Struct.new(
1387
+ :third_party_firewall_status,
1388
+ :marketplace_onboarding_status)
1389
+ SENSITIVE = []
1390
+ include Aws::Structure
1391
+ end
1392
+
1216
1393
  # @note When making an API call, you may pass GetViolationDetailsRequest
1217
1394
  # data as a hash:
1218
1395
  #
@@ -1683,6 +1860,74 @@ module Aws::FMS
1683
1860
  include Aws::Structure
1684
1861
  end
1685
1862
 
1863
+ # @note When making an API call, you may pass ListThirdPartyFirewallFirewallPoliciesRequest
1864
+ # data as a hash:
1865
+ #
1866
+ # {
1867
+ # third_party_firewall: "PALO_ALTO_NETWORKS_CLOUD_NGFW", # required, accepts PALO_ALTO_NETWORKS_CLOUD_NGFW
1868
+ # next_token: "PaginationToken",
1869
+ # max_results: 1, # required
1870
+ # }
1871
+ #
1872
+ # @!attribute [rw] third_party_firewall
1873
+ # The name of the third-party firewall vendor.
1874
+ # @return [String]
1875
+ #
1876
+ # @!attribute [rw] next_token
1877
+ # If the previous response included a `NextToken` element, the
1878
+ # specified third-party firewall vendor is associated with more
1879
+ # third-party firewall policies. To get more third-party firewall
1880
+ # policies, submit another
1881
+ # `ListThirdPartyFirewallFirewallPoliciesRequest` request.
1882
+ #
1883
+ # For the value of `NextToken`, specify the value of `NextToken` from
1884
+ # the previous response. If the previous response didn't include a
1885
+ # `NextToken` element, there are no more third-party firewall policies
1886
+ # to get.
1887
+ # @return [String]
1888
+ #
1889
+ # @!attribute [rw] max_results
1890
+ # The maximum number of third-party firewall policies that you want
1891
+ # Firewall Manager to return. If the specified third-party firewall
1892
+ # vendor is associated with more than `MaxResults` firewall policies,
1893
+ # the response includes a `NextToken` element. `NextToken` contains an
1894
+ # encrypted token that identifies the first third-party firewall
1895
+ # policies that Firewall Manager will return if you submit another
1896
+ # request.
1897
+ # @return [Integer]
1898
+ #
1899
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListThirdPartyFirewallFirewallPoliciesRequest AWS API Documentation
1900
+ #
1901
+ class ListThirdPartyFirewallFirewallPoliciesRequest < Struct.new(
1902
+ :third_party_firewall,
1903
+ :next_token,
1904
+ :max_results)
1905
+ SENSITIVE = []
1906
+ include Aws::Structure
1907
+ end
1908
+
1909
+ # @!attribute [rw] third_party_firewall_firewall_policies
1910
+ # A list that contains one `ThirdPartyFirewallFirewallPolicies`
1911
+ # element for each third-party firewall policies that the specified
1912
+ # third-party firewall vendor is associated with. Each
1913
+ # `ThirdPartyFirewallFirewallPolicies` element contains the firewall
1914
+ # policy name and ID.
1915
+ # @return [Array<Types::ThirdPartyFirewallFirewallPolicy>]
1916
+ #
1917
+ # @!attribute [rw] next_token
1918
+ # The value that you will use for `NextToken` in the next
1919
+ # `ListThirdPartyFirewallFirewallPolicies` request.
1920
+ # @return [String]
1921
+ #
1922
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListThirdPartyFirewallFirewallPoliciesResponse AWS API Documentation
1923
+ #
1924
+ class ListThirdPartyFirewallFirewallPoliciesResponse < Struct.new(
1925
+ :third_party_firewall_firewall_policies,
1926
+ :next_token)
1927
+ SENSITIVE = []
1928
+ include Aws::Structure
1929
+ end
1930
+
1686
1931
  # Violation detail for an internet gateway route with an inactive state
1687
1932
  # in the customer subnet route table or Network Firewall subnet route
1688
1933
  # table.
@@ -2026,7 +2271,7 @@ module Aws::FMS
2026
2271
  # data as a hash:
2027
2272
  #
2028
2273
  # {
2029
- # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED
2274
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
2030
2275
  # }
2031
2276
  #
2032
2277
  # @!attribute [rw] firewall_deployment_model
@@ -2208,11 +2453,14 @@ module Aws::FMS
2208
2453
  # policy_name: "ResourceName", # required
2209
2454
  # policy_update_token: "PolicyUpdateToken",
2210
2455
  # security_service_policy_data: { # required
2211
- # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL, DNS_FIREWALL
2456
+ # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL, DNS_FIREWALL, THIRD_PARTY_FIREWALL
2212
2457
  # managed_service_data: "ManagedServiceData",
2213
2458
  # policy_option: {
2214
2459
  # network_firewall_policy: {
2215
- # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED
2460
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
2461
+ # },
2462
+ # third_party_firewall_policy: {
2463
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
2216
2464
  # },
2217
2465
  # },
2218
2466
  # },
@@ -2295,9 +2543,6 @@ module Aws::FMS
2295
2543
  # `ResourceTag` array are not in scope of the policy. If set to
2296
2544
  # `False`, and the `ResourceTag` array is not null, only resources
2297
2545
  # with the specified tags are in scope of the policy.
2298
- #
2299
- # This option isn't available for the centralized deployment model
2300
- # when creating policies to configure Network Firewall.
2301
2546
  # @return [Boolean]
2302
2547
  #
2303
2548
  # @!attribute [rw] remediation_enabled
@@ -2348,9 +2593,6 @@ module Aws::FMS
2348
2593
  # a comma. For example, the following is a valid map: `\{“ACCOUNT” :
2349
2594
  # [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”,
2350
2595
  # “ouid112”]\}`.
2351
- #
2352
- # This option isn't available for the centralized deployment model
2353
- # when creating policies to configure Network Firewall.
2354
2596
  # @return [Hash<String,Array<String>>]
2355
2597
  #
2356
2598
  # @!attribute [rw] exclude_map
@@ -2381,9 +2623,6 @@ module Aws::FMS
2381
2623
  # a comma. For example, the following is a valid map: `\{“ACCOUNT” :
2382
2624
  # [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”,
2383
2625
  # “ouid112”]\}`.
2384
- #
2385
- # This option isn't available for the centralized deployment model
2386
- # when creating policies to configure Network Firewall.
2387
2626
  # @return [Hash<String,Array<String>>]
2388
2627
  #
2389
2628
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/Policy AWS API Documentation
@@ -2517,7 +2756,10 @@ module Aws::FMS
2517
2756
  #
2518
2757
  # {
2519
2758
  # network_firewall_policy: {
2520
- # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED
2759
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
2760
+ # },
2761
+ # third_party_firewall_policy: {
2762
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
2521
2763
  # },
2522
2764
  # }
2523
2765
  #
@@ -2525,10 +2767,15 @@ module Aws::FMS
2525
2767
  # Defines the deployment model to use for the firewall policy.
2526
2768
  # @return [Types::NetworkFirewallPolicy]
2527
2769
  #
2770
+ # @!attribute [rw] third_party_firewall_policy
2771
+ # Defines the policy options for a third-party firewall policy.
2772
+ # @return [Types::ThirdPartyFirewallPolicy]
2773
+ #
2528
2774
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PolicyOption AWS API Documentation
2529
2775
  #
2530
2776
  class PolicyOption < Struct.new(
2531
- :network_firewall_policy)
2777
+ :network_firewall_policy,
2778
+ :third_party_firewall_policy)
2532
2779
  SENSITIVE = []
2533
2780
  include Aws::Structure
2534
2781
  end
@@ -2847,11 +3094,14 @@ module Aws::FMS
2847
3094
  # policy_name: "ResourceName", # required
2848
3095
  # policy_update_token: "PolicyUpdateToken",
2849
3096
  # security_service_policy_data: { # required
2850
- # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL, DNS_FIREWALL
3097
+ # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL, DNS_FIREWALL, THIRD_PARTY_FIREWALL
2851
3098
  # managed_service_data: "ManagedServiceData",
2852
3099
  # policy_option: {
2853
3100
  # network_firewall_policy: {
2854
- # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED
3101
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
3102
+ # },
3103
+ # third_party_firewall_policy: {
3104
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
2855
3105
  # },
2856
3106
  # },
2857
3107
  # },
@@ -3201,6 +3451,27 @@ module Aws::FMS
3201
3451
  # scope.
3202
3452
  # @return [Types::RouteHasOutOfScopeEndpointViolation]
3203
3453
  #
3454
+ # @!attribute [rw] third_party_firewall_missing_firewall_violation
3455
+ # The violation details for a third-party firewall that's been
3456
+ # deleted.
3457
+ # @return [Types::ThirdPartyFirewallMissingFirewallViolation]
3458
+ #
3459
+ # @!attribute [rw] third_party_firewall_missing_subnet_violation
3460
+ # The violation details for a third-party firewall's subnet that's
3461
+ # been deleted.
3462
+ # @return [Types::ThirdPartyFirewallMissingSubnetViolation]
3463
+ #
3464
+ # @!attribute [rw] third_party_firewall_missing_expected_route_table_violation
3465
+ # The violation details for a third-party firewall that has the
3466
+ # Firewall Manager managed route table that was associated with the
3467
+ # third-party firewall has been deleted.
3468
+ # @return [Types::ThirdPartyFirewallMissingExpectedRouteTableViolation]
3469
+ #
3470
+ # @!attribute [rw] firewall_subnet_missing_vpc_endpoint_violation
3471
+ # The violation details for a third-party firewall's VPC endpoint
3472
+ # subnet that was deleted.
3473
+ # @return [Types::FirewallSubnetMissingVPCEndpointViolation]
3474
+ #
3204
3475
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ResourceViolation AWS API Documentation
3205
3476
  #
3206
3477
  class ResourceViolation < Struct.new(
@@ -3222,7 +3493,11 @@ module Aws::FMS
3222
3493
  :dns_rule_group_limit_exceeded_violation,
3223
3494
  :possible_remediation_actions,
3224
3495
  :firewall_subnet_is_out_of_scope_violation,
3225
- :route_has_out_of_scope_endpoint_violation)
3496
+ :route_has_out_of_scope_endpoint_violation,
3497
+ :third_party_firewall_missing_firewall_violation,
3498
+ :third_party_firewall_missing_subnet_violation,
3499
+ :third_party_firewall_missing_expected_route_table_violation,
3500
+ :firewall_subnet_missing_vpc_endpoint_violation)
3226
3501
  SENSITIVE = []
3227
3502
  include Aws::Structure
3228
3503
  end
@@ -3406,11 +3681,14 @@ module Aws::FMS
3406
3681
  # data as a hash:
3407
3682
  #
3408
3683
  # {
3409
- # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL, DNS_FIREWALL
3684
+ # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL, DNS_FIREWALL, THIRD_PARTY_FIREWALL
3410
3685
  # managed_service_data: "ManagedServiceData",
3411
3686
  # policy_option: {
3412
3687
  # network_firewall_policy: {
3413
- # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED
3688
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
3689
+ # },
3690
+ # third_party_firewall_policy: {
3691
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
3414
3692
  # },
3415
3693
  # },
3416
3694
  # }
@@ -3439,12 +3717,15 @@ module Aws::FMS
3439
3717
  #
3440
3718
  # </note>
3441
3719
  #
3442
- # * Example: `NETWORK_FIREWALL` - Centralized deployment model.
3720
+ # * Example: `DNS_FIREWALL`
3721
+ #
3722
+ # `"\{"type":"DNS_FIREWALL","preProcessRuleGroups":[\{"ruleGroupId":"rslvr-frg-1","priority":10\}],"postProcessRuleGroups":[\{"ruleGroupId":"rslvr-frg-2","priority":9911\}]\}"`
3443
3723
  #
3444
- # `"\{"type":"NETWORK_FIREWALL","awsNetworkFirewallConfig":\{"networkFirewallStatelessRuleGroupReferences":[\{"resourceARN":"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test","priority":1\}],"networkFirewallStatelessDefaultActions":["aws:forward_to_sfe","customActionName"],"networkFirewallStatelessFragmentDefaultActions":["aws:forward_to_sfe","customActionName"],"networkFirewallStatelessCustomActions":[\{"actionName":"customActionName","actionDefinition":\{"publishMetricAction":\{"dimensions":[\{"value":"metricdimensionvalue"\}]\}\}\}],"networkFirewallStatefulRuleGroupReferences":[\{"resourceARN":"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test"\}],"networkFirewallLoggingConfiguration":\{"logDestinationConfigs":[\{"logDestinationType":"S3","logType":"ALERT","logDestination":\{"bucketName":"s3-bucket-name"\}\},\{"logDestinationType":"S3","logType":"FLOW","logDestination":\{"bucketName":"s3-bucket-name"\}\}],"overrideExistingConfig":true\}\},"firewallDeploymentModel":\{"centralizedFirewallDeploymentModel":\{"centralizedFirewallOrchestrationConfig":\{"inspectionVpcIds":[\{"resourceId":"vpc-1234","accountId":"123456789011"\}],"firewallCreationConfig":\{"endpointLocation":\{"availabilityZoneConfigList":[\{"availabilityZoneId":null,"availabilityZoneName":"us-east-1a","allowedIPV4CidrList":["10.0.0.0/28"]\}]\}\},"allowedIPV4CidrList":[]\}\}\}\}"`
3724
+ # <note markdown="1"> Valid values for `preProcessRuleGroups` are between 1 and 99.
3725
+ # Valid values for `postProcessRuleGroups` are between 9901 and
3726
+ # 10000.
3445
3727
  #
3446
- # To use the centralized deployment model, you must set
3447
- # [PolicyOption][1] to `CENTRALIZED`.
3728
+ # </note>
3448
3729
  #
3449
3730
  # * Example: `NETWORK_FIREWALL` - Distributed deployment model with
3450
3731
  # automatic Availability Zone configuration. With automatic
@@ -3588,6 +3869,10 @@ module Aws::FMS
3588
3869
  # "logDestination":\{ "bucketName":"s3-bucket-name" \} \} ],
3589
3870
  # "overrideExistingConfig":boolean \} \}"`
3590
3871
  #
3872
+ # * Example: `PARTNER_FIREWALL` for Firewall Manager
3873
+ #
3874
+ # `"\{"type":"THIRD_PARTY_FIREWALL","thirdPartyrFirewall":"PALO_ALTO_NETWORKS_CLOUD_NGFW","thirdPartyFirewallConfig":\{"thirdPartyFirewallPolicyList":["global-123456789012-1"],"networkFirewallLoggingConfiguration":null\},"firewallDeploymentModel":\{"distributedFirewallDeploymentModel":\{"distributedFirewallOrchestrationConfig":\{"firewallCreationConfig":\{"endpointLocation":\{"availabilityZoneConfigList":[\{"availabilityZoneId":null,"availabilityZoneName":"us-east-1a","allowedIPV4CidrList":["10.0.1.0/28"]\}]\}\},"allowedIPV4CidrList":null\},"distributedRouteManagementConfig":null\},"centralizedFirewallDeploymentModel":null\}\}""`
3875
+ #
3591
3876
  # * Specification for `SHIELD_ADVANCED` for Amazon CloudFront
3592
3877
  # distributions
3593
3878
  #
@@ -3626,6 +3911,18 @@ module Aws::FMS
3626
3911
  # "overrideAction" : \{"type": "COUNT"\}\}],
3627
3912
  # "defaultAction": \{"type": "BLOCK"\}\}"`
3628
3913
  #
3914
+ # * Example: `WAFV2` - Firewall Manager support for WAF managed rule
3915
+ # group versioning
3916
+ #
3917
+ # `"\{"type":"WAFV2","preProcessRuleGroups":[\{"ruleGroupArn":null,"overrideAction":\{"type":"NONE"\},"managedRuleGroupIdentifier":\{"versionEnabled":true,"version":"Version_2.0","vendorName":"AWS","managedRuleGroupName":"AWSManagedRulesCommonRuleSet"\},"ruleGroupType":"ManagedRuleGroup","excludeRules":[\{"name":"NoUserAgent_HEADER"\}]\}],"postProcessRuleGroups":[],"defaultAction":\{"type":"ALLOW"\},"overrideCustomerWebACLAssociation":false,"loggingConfiguration":\{"logDestinationConfigs":["arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination"],"redactedFields":[\{"redactedFieldType":"SingleHeader","redactedFieldValue":"Cookies"\},\{"redactedFieldType":"Method"\}]\}\}"`
3918
+ #
3919
+ # To use a specific version of a WAF managed rule group in your
3920
+ # Firewall Manager policy, you must set `versionEnabled` to `true`,
3921
+ # and set `version` to the version you'd like to use. If you don't
3922
+ # set `versionEnabled` to `true`, or if you omit `versionEnabled`,
3923
+ # then Firewall Manager uses the default version of the WAF managed
3924
+ # rule group.
3925
+ #
3629
3926
  # * Example: `SECURITY_GROUPS_COMMON`
3630
3927
  #
3631
3928
  # `"\{"type":"SECURITY_GROUPS_COMMON","revertManualSecurityGroupChanges":false,"exclusiveResourceSecurityGroupManagement":false,
@@ -3793,6 +4090,153 @@ module Aws::FMS
3793
4090
  #
3794
4091
  class TagResourceResponse < Aws::EmptyStructure; end
3795
4092
 
4093
+ # Configures the firewall policy deployment model for a third-party
4094
+ # firewall. The deployment model can either be distributed or
4095
+ # centralized.
4096
+ #
4097
+ # @!attribute [rw] firewall_policy_id
4098
+ # The ID of the specified firewall policy.
4099
+ # @return [String]
4100
+ #
4101
+ # @!attribute [rw] firewall_policy_name
4102
+ # The name of the specified firewall policy.
4103
+ # @return [String]
4104
+ #
4105
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ThirdPartyFirewallFirewallPolicy AWS API Documentation
4106
+ #
4107
+ class ThirdPartyFirewallFirewallPolicy < Struct.new(
4108
+ :firewall_policy_id,
4109
+ :firewall_policy_name)
4110
+ SENSITIVE = []
4111
+ include Aws::Structure
4112
+ end
4113
+
4114
+ # The violation details for a third-party firewall that's not
4115
+ # associated with an Firewall Manager managed route table.
4116
+ #
4117
+ # @!attribute [rw] violation_target
4118
+ # The ID of the third-party firewall or VPC resource that's causing
4119
+ # the violation.
4120
+ # @return [String]
4121
+ #
4122
+ # @!attribute [rw] vpc
4123
+ # The resource ID of the VPC associated with a fireawll subnet that's
4124
+ # causing the violation.
4125
+ # @return [String]
4126
+ #
4127
+ # @!attribute [rw] availability_zone
4128
+ # The Availability Zone of the firewall subnet that's causing the
4129
+ # violation.
4130
+ # @return [String]
4131
+ #
4132
+ # @!attribute [rw] current_route_table
4133
+ # The resource ID of the current route table that's associated with
4134
+ # the subnet, if one is available.
4135
+ # @return [String]
4136
+ #
4137
+ # @!attribute [rw] expected_route_table
4138
+ # The resource ID of the route table that should be associated with
4139
+ # the subnet.
4140
+ # @return [String]
4141
+ #
4142
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ThirdPartyFirewallMissingExpectedRouteTableViolation AWS API Documentation
4143
+ #
4144
+ class ThirdPartyFirewallMissingExpectedRouteTableViolation < Struct.new(
4145
+ :violation_target,
4146
+ :vpc,
4147
+ :availability_zone,
4148
+ :current_route_table,
4149
+ :expected_route_table)
4150
+ SENSITIVE = []
4151
+ include Aws::Structure
4152
+ end
4153
+
4154
+ # The violation details about a third-party firewall's subnet that
4155
+ # doesn't have a Firewall Manager managed firewall in its VPC.
4156
+ #
4157
+ # @!attribute [rw] violation_target
4158
+ # The ID of the third-party firewall that's causing the violation.
4159
+ # @return [String]
4160
+ #
4161
+ # @!attribute [rw] vpc
4162
+ # The resource ID of the VPC associated with a third-party firewall.
4163
+ # @return [String]
4164
+ #
4165
+ # @!attribute [rw] availability_zone
4166
+ # The Availability Zone of the third-party firewall that's causing
4167
+ # the violation.
4168
+ # @return [String]
4169
+ #
4170
+ # @!attribute [rw] target_violation_reason
4171
+ # The reason the resource is causing this violation, if a reason is
4172
+ # available.
4173
+ # @return [String]
4174
+ #
4175
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ThirdPartyFirewallMissingFirewallViolation AWS API Documentation
4176
+ #
4177
+ class ThirdPartyFirewallMissingFirewallViolation < Struct.new(
4178
+ :violation_target,
4179
+ :vpc,
4180
+ :availability_zone,
4181
+ :target_violation_reason)
4182
+ SENSITIVE = []
4183
+ include Aws::Structure
4184
+ end
4185
+
4186
+ # The violation details for a third-party firewall for an Availability
4187
+ # Zone that's missing the Firewall Manager managed subnet.
4188
+ #
4189
+ # @!attribute [rw] violation_target
4190
+ # The ID of the third-party firewall or VPC resource that's causing
4191
+ # the violation.
4192
+ # @return [String]
4193
+ #
4194
+ # @!attribute [rw] vpc
4195
+ # The resource ID of the VPC associated with a subnet that's causing
4196
+ # the violation.
4197
+ # @return [String]
4198
+ #
4199
+ # @!attribute [rw] availability_zone
4200
+ # The Availability Zone of a subnet that's causing the violation.
4201
+ # @return [String]
4202
+ #
4203
+ # @!attribute [rw] target_violation_reason
4204
+ # The reason the resource is causing the violation, if a reason is
4205
+ # available.
4206
+ # @return [String]
4207
+ #
4208
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ThirdPartyFirewallMissingSubnetViolation AWS API Documentation
4209
+ #
4210
+ class ThirdPartyFirewallMissingSubnetViolation < Struct.new(
4211
+ :violation_target,
4212
+ :vpc,
4213
+ :availability_zone,
4214
+ :target_violation_reason)
4215
+ SENSITIVE = []
4216
+ include Aws::Structure
4217
+ end
4218
+
4219
+ # Configures the policy for the third-party firewall.
4220
+ #
4221
+ # @note When making an API call, you may pass ThirdPartyFirewallPolicy
4222
+ # data as a hash:
4223
+ #
4224
+ # {
4225
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
4226
+ # }
4227
+ #
4228
+ # @!attribute [rw] firewall_deployment_model
4229
+ # Defines the deployment model to use for the third-party firewall.
4230
+ # @return [String]
4231
+ #
4232
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ThirdPartyFirewallPolicy AWS API Documentation
4233
+ #
4234
+ class ThirdPartyFirewallPolicy < Struct.new(
4235
+ :firewall_deployment_model)
4236
+ SENSITIVE = []
4237
+ include Aws::Structure
4238
+ end
4239
+
3796
4240
  # @note When making an API call, you may pass UntagResourceRequest
3797
4241
  # data as a hash:
3798
4242
  #
@@ -3851,9 +4295,6 @@ module Aws::FMS
3851
4295
  #
3852
4296
  # @!attribute [rw] resource_tags
3853
4297
  # The `ResourceTag` objects associated with the resource.
3854
- #
3855
- # This option isn't available for the centralized deployment model
3856
- # when creating policies to configure Network Firewall.
3857
4298
  # @return [Array<Types::Tag>]
3858
4299
  #
3859
4300
  # @!attribute [rw] resource_description
data/lib/aws-sdk-fms.rb CHANGED
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-fms/customizations'
48
48
  # @!group service
49
49
  module Aws::FMS
50
50
 
51
- GEM_VERSION = '1.48.0'
51
+ GEM_VERSION = '1.49.0'
52
52
 
53
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-fms
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.48.0
4
+ version: 1.49.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-24 00:00:00.000000000 Z
11
+ date: 2022-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core