aws-sdk-fms 1.48.0 → 1.49.0

Sign up to get free protection for your applications and to get access to all the features.
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