aws-sdk-fms 1.47.0 → 1.50.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.
@@ -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
@@ -294,12 +342,18 @@ module Aws::FMS
294
342
  # [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
295
343
  # @return [String]
296
344
  #
345
+ # @!attribute [rw] metadata
346
+ # Metadata about the resource that doesn't comply with the policy
347
+ # scope.
348
+ # @return [Hash<String,String>]
349
+ #
297
350
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ComplianceViolator AWS API Documentation
298
351
  #
299
352
  class ComplianceViolator < Struct.new(
300
353
  :resource_id,
301
354
  :violation_reason,
302
- :resource_type)
355
+ :resource_type,
356
+ :metadata)
303
357
  SENSITIVE = []
304
358
  include Aws::Structure
305
359
  end
@@ -412,6 +466,38 @@ module Aws::FMS
412
466
  #
413
467
  class DisassociateAdminAccountRequest < Aws::EmptyStructure; end
414
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
+
415
501
  # A DNS Firewall rule group that Firewall Manager tried to associate
416
502
  # with a VPC is already associated with the VPC and can't be associated
417
503
  # again.
@@ -810,6 +896,103 @@ module Aws::FMS
810
896
  include Aws::Structure
811
897
  end
812
898
 
899
+ # Contains information about the actions that you can take to remediate
900
+ # scope violations caused by your policy's `FirewallCreationConfig`.
901
+ # `FirewallCreationConfig` is an optional configuration that you can use
902
+ # to choose which Availability Zones Firewall Manager creates Network
903
+ # Firewall endpoints in.
904
+ #
905
+ # @!attribute [rw] description
906
+ # Describes the remedial action.
907
+ # @return [String]
908
+ #
909
+ # @!attribute [rw] firewall_creation_config
910
+ # A `FirewallCreationConfig` that you can copy into your current
911
+ # policy's [SecurityServiceData][1] in order to remedy scope
912
+ # violations.
913
+ #
914
+ #
915
+ #
916
+ # [1]: https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_SecurityServicePolicyData.html
917
+ # @return [String]
918
+ #
919
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/FMSPolicyUpdateFirewallCreationConfigAction AWS API Documentation
920
+ #
921
+ class FMSPolicyUpdateFirewallCreationConfigAction < Struct.new(
922
+ :description,
923
+ :firewall_creation_config)
924
+ SENSITIVE = []
925
+ include Aws::Structure
926
+ end
927
+
928
+ # Contains details about the firewall subnet that violates the policy
929
+ # scope.
930
+ #
931
+ # @!attribute [rw] firewall_subnet_id
932
+ # The ID of the firewall subnet that violates the policy scope.
933
+ # @return [String]
934
+ #
935
+ # @!attribute [rw] vpc_id
936
+ # The VPC ID of the firewall subnet that violates the policy scope.
937
+ # @return [String]
938
+ #
939
+ # @!attribute [rw] subnet_availability_zone
940
+ # The Availability Zone of the firewall subnet that violates the
941
+ # policy scope.
942
+ # @return [String]
943
+ #
944
+ # @!attribute [rw] subnet_availability_zone_id
945
+ # The Availability Zone ID of the firewall subnet that violates the
946
+ # policy scope.
947
+ # @return [String]
948
+ #
949
+ # @!attribute [rw] vpc_endpoint_id
950
+ # The VPC endpoint ID of the firewall subnet that violates the policy
951
+ # scope.
952
+ # @return [String]
953
+ #
954
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/FirewallSubnetIsOutOfScopeViolation AWS API Documentation
955
+ #
956
+ class FirewallSubnetIsOutOfScopeViolation < Struct.new(
957
+ :firewall_subnet_id,
958
+ :vpc_id,
959
+ :subnet_availability_zone,
960
+ :subnet_availability_zone_id,
961
+ :vpc_endpoint_id)
962
+ SENSITIVE = []
963
+ include Aws::Structure
964
+ end
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
+
813
996
  # @api private
814
997
  #
815
998
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAdminAccountRequest AWS API Documentation
@@ -1140,6 +1323,73 @@ module Aws::FMS
1140
1323
  include Aws::Structure
1141
1324
  end
1142
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
+ # Amazon Web Services Marketplace.
1369
+ #
1370
+ # * `NO_SUBSCRIPTION` - The Firewall Manager policy administrator
1371
+ # isn't subscribed to the third-party firewall service in the
1372
+ # Amazon Web Services 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
+
1143
1393
  # @note When making an API call, you may pass GetViolationDetailsRequest
1144
1394
  # data as a hash:
1145
1395
  #
@@ -1610,6 +1860,74 @@ module Aws::FMS
1610
1860
  include Aws::Structure
1611
1861
  end
1612
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
+
1613
1931
  # Violation detail for an internet gateway route with an inactive state
1614
1932
  # in the customer subnet route table or Network Firewall subnet route
1615
1933
  # table.
@@ -1940,6 +2258,39 @@ module Aws::FMS
1940
2258
  include Aws::Structure
1941
2259
  end
1942
2260
 
2261
+ # Configures the firewall policy deployment model of Network Firewall.
2262
+ # For information about Network Firewall deployment models, see [Network
2263
+ # Firewall example architectures with routing][1] in the *Network
2264
+ # Firewall Developer Guide*.
2265
+ #
2266
+ #
2267
+ #
2268
+ # [1]: https://docs.aws.amazon.com/network-firewall/latest/developerguide/architectures.html
2269
+ #
2270
+ # @note When making an API call, you may pass NetworkFirewallPolicy
2271
+ # data as a hash:
2272
+ #
2273
+ # {
2274
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
2275
+ # }
2276
+ #
2277
+ # @!attribute [rw] firewall_deployment_model
2278
+ # Defines the deployment model to use for the firewall policy. To use
2279
+ # a distributed model, set [PolicyOption][1] to `NULL`.
2280
+ #
2281
+ #
2282
+ #
2283
+ # [1]: https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_PolicyOption.html
2284
+ # @return [String]
2285
+ #
2286
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/NetworkFirewallPolicy AWS API Documentation
2287
+ #
2288
+ class NetworkFirewallPolicy < Struct.new(
2289
+ :firewall_deployment_model)
2290
+ SENSITIVE = []
2291
+ include Aws::Structure
2292
+ end
2293
+
1943
2294
  # The definition of the Network Firewall firewall policy.
1944
2295
  #
1945
2296
  # @!attribute [rw] stateless_rule_groups
@@ -1967,6 +2318,29 @@ module Aws::FMS
1967
2318
  # firewall policy.
1968
2319
  # @return [Array<Types::StatefulRuleGroup>]
1969
2320
  #
2321
+ # @!attribute [rw] stateful_default_actions
2322
+ # The default actions to take on a packet that doesn't match any
2323
+ # stateful rules. The stateful default action is optional, and is only
2324
+ # valid when using the strict rule order.
2325
+ #
2326
+ # Valid values of the stateful default action:
2327
+ #
2328
+ # * aws:drop\_strict
2329
+ #
2330
+ # * aws:drop\_established
2331
+ #
2332
+ # * aws:alert\_strict
2333
+ #
2334
+ # * aws:alert\_established
2335
+ # @return [Array<String>]
2336
+ #
2337
+ # @!attribute [rw] stateful_engine_options
2338
+ # Additional options governing how Network Firewall handles stateful
2339
+ # rules. The stateful rule groups that you use in your policy must
2340
+ # have stateful rule options settings that are compatible with these
2341
+ # settings.
2342
+ # @return [Types::StatefulEngineOptions]
2343
+ #
1970
2344
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/NetworkFirewallPolicyDescription AWS API Documentation
1971
2345
  #
1972
2346
  class NetworkFirewallPolicyDescription < Struct.new(
@@ -1974,7 +2348,9 @@ module Aws::FMS
1974
2348
  :stateless_default_actions,
1975
2349
  :stateless_fragment_default_actions,
1976
2350
  :stateless_custom_actions,
1977
- :stateful_rule_groups)
2351
+ :stateful_rule_groups,
2352
+ :stateful_default_actions,
2353
+ :stateful_engine_options)
1978
2354
  SENSITIVE = []
1979
2355
  include Aws::Structure
1980
2356
  end
@@ -2102,8 +2478,16 @@ module Aws::FMS
2102
2478
  # policy_name: "ResourceName", # required
2103
2479
  # policy_update_token: "PolicyUpdateToken",
2104
2480
  # security_service_policy_data: { # required
2105
- # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL, DNS_FIREWALL
2481
+ # 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
2106
2482
  # managed_service_data: "ManagedServiceData",
2483
+ # policy_option: {
2484
+ # network_firewall_policy: {
2485
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
2486
+ # },
2487
+ # third_party_firewall_policy: {
2488
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
2489
+ # },
2490
+ # },
2107
2491
  # },
2108
2492
  # resource_type: "ResourceType", # required
2109
2493
  # resource_type_list: ["ResourceType"],
@@ -2389,6 +2773,38 @@ module Aws::FMS
2389
2773
  include Aws::Structure
2390
2774
  end
2391
2775
 
2776
+ # Contains the Network Firewall firewall policy options to configure the
2777
+ # policy's deployment model and third-party firewall policy settings.
2778
+ #
2779
+ # @note When making an API call, you may pass PolicyOption
2780
+ # data as a hash:
2781
+ #
2782
+ # {
2783
+ # network_firewall_policy: {
2784
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
2785
+ # },
2786
+ # third_party_firewall_policy: {
2787
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
2788
+ # },
2789
+ # }
2790
+ #
2791
+ # @!attribute [rw] network_firewall_policy
2792
+ # Defines the deployment model to use for the firewall policy.
2793
+ # @return [Types::NetworkFirewallPolicy]
2794
+ #
2795
+ # @!attribute [rw] third_party_firewall_policy
2796
+ # Defines the policy options for a third-party firewall policy.
2797
+ # @return [Types::ThirdPartyFirewallPolicy]
2798
+ #
2799
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PolicyOption AWS API Documentation
2800
+ #
2801
+ class PolicyOption < Struct.new(
2802
+ :network_firewall_policy,
2803
+ :third_party_firewall_policy)
2804
+ SENSITIVE = []
2805
+ include Aws::Structure
2806
+ end
2807
+
2392
2808
  # Details of the Firewall Manager policy.
2393
2809
  #
2394
2810
  # @!attribute [rw] policy_arn
@@ -2703,8 +3119,16 @@ module Aws::FMS
2703
3119
  # policy_name: "ResourceName", # required
2704
3120
  # policy_update_token: "PolicyUpdateToken",
2705
3121
  # security_service_policy_data: { # required
2706
- # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL, DNS_FIREWALL
3122
+ # 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
2707
3123
  # managed_service_data: "ManagedServiceData",
3124
+ # policy_option: {
3125
+ # network_firewall_policy: {
3126
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
3127
+ # },
3128
+ # third_party_firewall_policy: {
3129
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
3130
+ # },
3131
+ # },
2708
3132
  # },
2709
3133
  # resource_type: "ResourceType", # required
2710
3134
  # resource_type_list: ["ResourceType"],
@@ -2860,6 +3284,10 @@ module Aws::FMS
2860
3284
  # Information about the CreateRouteTable action in the Amazon EC2 API.
2861
3285
  # @return [Types::EC2CreateRouteTableAction]
2862
3286
  #
3287
+ # @!attribute [rw] fms_policy_update_firewall_creation_config_action
3288
+ # The remedial action to take when updating a firewall configuration.
3289
+ # @return [Types::FMSPolicyUpdateFirewallCreationConfigAction]
3290
+ #
2863
3291
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/RemediationAction AWS API Documentation
2864
3292
  #
2865
3293
  class RemediationAction < Struct.new(
@@ -2870,7 +3298,8 @@ module Aws::FMS
2870
3298
  :ec2_copy_route_table_action,
2871
3299
  :ec2_replace_route_table_association_action,
2872
3300
  :ec2_associate_route_table_action,
2873
- :ec2_create_route_table_action)
3301
+ :ec2_create_route_table_action,
3302
+ :fms_policy_update_firewall_creation_config_action)
2874
3303
  SENSITIVE = []
2875
3304
  include Aws::Structure
2876
3305
  end
@@ -3037,6 +3466,37 @@ module Aws::FMS
3037
3466
  # actions.
3038
3467
  # @return [Types::PossibleRemediationActions]
3039
3468
  #
3469
+ # @!attribute [rw] firewall_subnet_is_out_of_scope_violation
3470
+ # Contains details about the firewall subnet that violates the policy
3471
+ # scope.
3472
+ # @return [Types::FirewallSubnetIsOutOfScopeViolation]
3473
+ #
3474
+ # @!attribute [rw] route_has_out_of_scope_endpoint_violation
3475
+ # Contains details about the route endpoint that violates the policy
3476
+ # scope.
3477
+ # @return [Types::RouteHasOutOfScopeEndpointViolation]
3478
+ #
3479
+ # @!attribute [rw] third_party_firewall_missing_firewall_violation
3480
+ # The violation details for a third-party firewall that's been
3481
+ # deleted.
3482
+ # @return [Types::ThirdPartyFirewallMissingFirewallViolation]
3483
+ #
3484
+ # @!attribute [rw] third_party_firewall_missing_subnet_violation
3485
+ # The violation details for a third-party firewall's subnet that's
3486
+ # been deleted.
3487
+ # @return [Types::ThirdPartyFirewallMissingSubnetViolation]
3488
+ #
3489
+ # @!attribute [rw] third_party_firewall_missing_expected_route_table_violation
3490
+ # The violation details for a third-party firewall that has the
3491
+ # Firewall Manager managed route table that was associated with the
3492
+ # third-party firewall has been deleted.
3493
+ # @return [Types::ThirdPartyFirewallMissingExpectedRouteTableViolation]
3494
+ #
3495
+ # @!attribute [rw] firewall_subnet_missing_vpc_endpoint_violation
3496
+ # The violation details for a third-party firewall's VPC endpoint
3497
+ # subnet that was deleted.
3498
+ # @return [Types::FirewallSubnetMissingVPCEndpointViolation]
3499
+ #
3040
3500
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ResourceViolation AWS API Documentation
3041
3501
  #
3042
3502
  class ResourceViolation < Struct.new(
@@ -3056,7 +3516,13 @@ module Aws::FMS
3056
3516
  :dns_rule_group_priority_conflict_violation,
3057
3517
  :dns_duplicate_rule_group_violation,
3058
3518
  :dns_rule_group_limit_exceeded_violation,
3059
- :possible_remediation_actions)
3519
+ :possible_remediation_actions,
3520
+ :firewall_subnet_is_out_of_scope_violation,
3521
+ :route_has_out_of_scope_endpoint_violation,
3522
+ :third_party_firewall_missing_firewall_violation,
3523
+ :third_party_firewall_missing_subnet_violation,
3524
+ :third_party_firewall_missing_expected_route_table_violation,
3525
+ :firewall_subnet_missing_vpc_endpoint_violation)
3060
3526
  SENSITIVE = []
3061
3527
  include Aws::Structure
3062
3528
  end
@@ -3090,6 +3556,77 @@ module Aws::FMS
3090
3556
  include Aws::Structure
3091
3557
  end
3092
3558
 
3559
+ # Contains details about the route endpoint that violates the policy
3560
+ # scope.
3561
+ #
3562
+ # @!attribute [rw] subnet_id
3563
+ # The ID of the subnet associated with the route that violates the
3564
+ # policy scope.
3565
+ # @return [String]
3566
+ #
3567
+ # @!attribute [rw] vpc_id
3568
+ # The VPC ID of the route that violates the policy scope.
3569
+ # @return [String]
3570
+ #
3571
+ # @!attribute [rw] route_table_id
3572
+ # The ID of the route table.
3573
+ # @return [String]
3574
+ #
3575
+ # @!attribute [rw] violating_routes
3576
+ # The list of routes that violate the route table.
3577
+ # @return [Array<Types::Route>]
3578
+ #
3579
+ # @!attribute [rw] subnet_availability_zone
3580
+ # The subnet's Availability Zone.
3581
+ # @return [String]
3582
+ #
3583
+ # @!attribute [rw] subnet_availability_zone_id
3584
+ # The ID of the subnet's Availability Zone.
3585
+ # @return [String]
3586
+ #
3587
+ # @!attribute [rw] current_firewall_subnet_route_table
3588
+ # The route table associated with the current firewall subnet.
3589
+ # @return [String]
3590
+ #
3591
+ # @!attribute [rw] firewall_subnet_id
3592
+ # The ID of the firewall subnet.
3593
+ # @return [String]
3594
+ #
3595
+ # @!attribute [rw] firewall_subnet_routes
3596
+ # The list of firewall subnet routes.
3597
+ # @return [Array<Types::Route>]
3598
+ #
3599
+ # @!attribute [rw] internet_gateway_id
3600
+ # The ID of the Internet Gateway.
3601
+ # @return [String]
3602
+ #
3603
+ # @!attribute [rw] current_internet_gateway_route_table
3604
+ # The current route table associated with the Internet Gateway.
3605
+ # @return [String]
3606
+ #
3607
+ # @!attribute [rw] internet_gateway_routes
3608
+ # The routes in the route table associated with the Internet Gateway.
3609
+ # @return [Array<Types::Route>]
3610
+ #
3611
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/RouteHasOutOfScopeEndpointViolation AWS API Documentation
3612
+ #
3613
+ class RouteHasOutOfScopeEndpointViolation < Struct.new(
3614
+ :subnet_id,
3615
+ :vpc_id,
3616
+ :route_table_id,
3617
+ :violating_routes,
3618
+ :subnet_availability_zone,
3619
+ :subnet_availability_zone_id,
3620
+ :current_firewall_subnet_route_table,
3621
+ :firewall_subnet_id,
3622
+ :firewall_subnet_routes,
3623
+ :internet_gateway_id,
3624
+ :current_internet_gateway_route_table,
3625
+ :internet_gateway_routes)
3626
+ SENSITIVE = []
3627
+ include Aws::Structure
3628
+ end
3629
+
3093
3630
  # Remediation option for the rule specified in the `ViolationTarget`.
3094
3631
  #
3095
3632
  # @!attribute [rw] remediation_action_type
@@ -3169,8 +3706,16 @@ module Aws::FMS
3169
3706
  # data as a hash:
3170
3707
  #
3171
3708
  # {
3172
- # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL, DNS_FIREWALL
3709
+ # 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
3173
3710
  # managed_service_data: "ManagedServiceData",
3711
+ # policy_option: {
3712
+ # network_firewall_policy: {
3713
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
3714
+ # },
3715
+ # third_party_firewall_policy: {
3716
+ # firewall_deployment_model: "CENTRALIZED", # accepts CENTRALIZED, DISTRIBUTED
3717
+ # },
3718
+ # },
3174
3719
  # }
3175
3720
  #
3176
3721
  # @!attribute [rw] type
@@ -3197,10 +3742,78 @@ module Aws::FMS
3197
3742
  #
3198
3743
  # </note>
3199
3744
  #
3200
- # * Example: `NETWORK_FIREWALL`
3745
+ # * Example: `NETWORK_FIREWALL` - Centralized deployment model
3746
+ #
3747
+ # `"\{"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":[]\}\}\}\}"`
3748
+ #
3749
+ # To use the centralized deployment model, you must set
3750
+ # [PolicyOption][1] to `CENTRALIZED`.
3751
+ #
3752
+ # * Example: `NETWORK_FIREWALL` - Distributed deployment model with
3753
+ # automatic Availability Zone configuration
3754
+ #
3755
+ # `
3756
+ # "\{"type":"NETWORK_FIREWALL","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"\}],"networkFirewallOrchestrationConfig":\{"singleFirewallEndpointPerVPC":false,"allowedIPV4CidrList":["10.0.0.0/28","192.168.0.0/28"],"routeManagementAction":"OFF"\},"networkFirewallLoggingConfiguration":\{"logDestinationConfigs":[\{"logDestinationType":"S3","logType":"ALERT","logDestination":\{"bucketName":"s3-bucket-name"\}\},\{"logDestinationType":"S3","logType":"FLOW","logDestination":\{"bucketName":"s3-bucket-name"\}\}],"overrideExistingConfig":true\}\}"
3757
+ # `
3758
+ #
3759
+ # With automatic Availbility Zone configuration, Firewall Manager
3760
+ # chooses which Availability Zones to create the endpoints in. To
3761
+ # use the distributed deployment model, you must set
3762
+ # [PolicyOption][1] to `NULL`.
3763
+ #
3764
+ # * Example: `NETWORK_FIREWALL` - Distributed deployment model with
3765
+ # automatic Availability Zone configuration and route management
3766
+ #
3767
+ # `
3768
+ # "\{"type":"NETWORK_FIREWALL","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"\}],"networkFirewallOrchestrationConfig":\{"singleFirewallEndpointPerVPC":false,"allowedIPV4CidrList":["10.0.0.0/28","192.168.0.0/28"],"routeManagementAction":"MONITOR","routeManagementTargetTypes":["InternetGateway"]\},"networkFirewallLoggingConfiguration":\{"logDestinationConfigs":[\{"logDestinationType":"S3","logType":"ALERT","logDestination":\{"bucketName":"s3-bucket-name"\}\},\{"logDestinationType":"S3","logType":
3769
+ # "FLOW","logDestination":\{"bucketName":"s3-bucket-name"\}\}],"overrideExistingConfig":true\}\}"
3770
+ # `
3771
+ #
3772
+ # To use the distributed deployment model, you must set
3773
+ # [PolicyOption][1] to `NULL`.
3774
+ #
3775
+ # * Example: `NETWORK_FIREWALL` - Distributed deployment model with
3776
+ # custom Availability Zone configuration
3777
+ #
3778
+ # `"\{"type":"NETWORK_FIREWALL","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","fragmentcustomactionname"],"networkFirewallStatelessCustomActions":[\{"actionName":"customActionName",
3779
+ # "actionDefinition":\{"publishMetricAction":\{"dimensions":[\{"value":"metricdimensionvalue"\}]\}\}\},\{"actionName":"fragmentcustomactionname","actionDefinition":\{"publishMetricAction":\{"dimensions":[\{"value":"fragmentmetricdimensionvalue"\}]\}\}\}],"networkFirewallStatefulRuleGroupReferences":[\{"resourceARN":"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test"\}],"networkFirewallOrchestrationConfig":\{"firewallCreationConfig":\{
3780
+ # "endpointLocation":\{"availabilityZoneConfigList":[\{"availabilityZoneName":"us-east-1a","allowedIPV4CidrList":["10.0.0.0/28"]\},\{"availabilityZoneName":"us-east-1b","allowedIPV4CidrList":[
3781
+ # "10.0.0.0/28"]\}]\}
3782
+ # \},"singleFirewallEndpointPerVPC":false,"allowedIPV4CidrList":null,"routeManagementAction":"OFF","networkFirewallLoggingConfiguration":\{"logDestinationConfigs":[\{"logDestinationType":"S3","logType":"ALERT","logDestination":\{"bucketName":"s3-bucket-name"\}\},\{"logDestinationType":"S3","logType":"FLOW","logDestination":\{"bucketName":"s3-bucket-name"\}\}],"overrideExistingConfig":boolean\}\}"
3783
+ # `
3784
+ #
3785
+ # With custom Availability Zone configuration, you define which
3786
+ # specific Availability Zones to create endpoints in by configuring
3787
+ # `firewallCreationConfig`. To configure the Availability Zones in
3788
+ # `firewallCreationConfig`, specify either the
3789
+ # `availabilityZoneName` or `availabilityZoneId` parameter, not both
3790
+ # parameters.
3791
+ #
3792
+ # To use the distributed deployment model, you must set
3793
+ # [PolicyOption][1] to `NULL`.
3794
+ #
3795
+ # * Example: `NETWORK_FIREWALL` - Distributed deployment model with
3796
+ # custom Availability Zone configuration and route management
3797
+ #
3798
+ # `"\{"type":"NETWORK_FIREWALL","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","fragmentcustomactionname"],"networkFirewallStatelessCustomActions":[\{"actionName":"customActionName","actionDefinition":\{"publishMetricAction":\{"dimensions":[\{"value":"metricdimensionvalue"\}]\}\}\},\{"actionName":"fragmentcustomactionname","actionDefinition":\{"publishMetricAction":\{"dimensions":[\{"value":"fragmentmetricdimensionvalue"\}]\}\}\}],"networkFirewallStatefulRuleGroupReferences":[\{"resourceARN":"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test"\}],"networkFirewallOrchestrationConfig":\{"firewallCreationConfig":\{"endpointLocation":\{"availabilityZoneConfigList":[\{"availabilityZoneName":"us-east-1a","allowedIPV4CidrList":["10.0.0.0/28"]\},\{"availabilityZoneName":"us-east-1b","allowedIPV4CidrList":["10.0.0.0/28"]\}]\}\},"singleFirewallEndpointPerVPC":false,"allowedIPV4CidrList":null,"routeManagementAction":"MONITOR","routeManagementTargetTypes":["InternetGateway"],"routeManagementConfig":\{"allowCrossAZTrafficIfNoEndpoint":true\}\},"networkFirewallLoggingConfiguration":\{"logDestinationConfigs":[\{"logDestinationType":"S3","logType":"ALERT","logDestination":\{"bucketName":"s3-bucket-name"\}\},\{"logDestinationType":"S3","logType":"FLOW","logDestination":\{"bucketName":"s3-bucket-name"\}\}],"overrideExistingConfig":boolean\}\}"
3799
+ # `
3201
3800
  #
3202
- # `"\{"type":"NETWORK_FIREWALL","networkFirewallStatelessRuleGroupReferences":[\{"resourceARN":"arn:aws:network-firewall:us-west-1:1234567891011:stateless-rulegroup/rulegroup2","priority":10\}],"networkFirewallStatelessDefaultActions":["aws:pass","custom1"],"networkFirewallStatelessFragmentDefaultActions":["custom2","aws:pass"],"networkFirewallStatelessCustomActions":[\{"actionName":"custom1","actionDefinition":\{"publishMetricAction":\{"dimensions":[\{"value":"dimension1"\}]\}\}\},\{"actionName":"custom2","actionDefinition":\{"publishMetricAction":\{"dimensions":[\{"value":"dimension2"\}]\}\}\}],"networkFirewallStatefulRuleGroupReferences":[\{"resourceARN":"arn:aws:network-firewall:us-west-1:1234567891011:stateful-rulegroup/rulegroup1"\}],"networkFirewallOrchestrationConfig":\{"singleFirewallEndpointPerVPC":true,"allowedIPV4CidrList":["10.24.34.0/28"]\}
3203
- # \}"`
3801
+ # To use the distributed deployment model, you must set
3802
+ # [PolicyOption][1] to `NULL`.
3803
+ #
3804
+ # * Example: `THIRD_PARTY_FIREWALL`
3805
+ #
3806
+ # `"\{ "type":"THIRD_PARTY_FIREWALL",
3807
+ # "thirdPartyFirewall":"PALO_ALTO_NETWORKS_CLOUD_NGFW",
3808
+ # "thirdPartyFirewallConfig":\{
3809
+ # "thirdPartyFirewallPolicyList":["global-1"] \},
3810
+ # "firewallDeploymentModel":\{
3811
+ # "distributedFirewallDeploymentModel":\{
3812
+ # "distributedFirewallOrchestrationConfig":\{
3813
+ # "firewallCreationConfig":\{ "endpointLocation":\{
3814
+ # "availabilityZoneConfigList":[ \{
3815
+ # "availabilityZoneName":"$\{AvailabilityZone\}" \} ] \} \},
3816
+ # "allowedIPV4CidrList":[ ] \} \} \} \}"`
3204
3817
  #
3205
3818
  # * Specification for `SHIELD_ADVANCED` for Amazon CloudFront
3206
3819
  # distributions
@@ -3240,12 +3853,42 @@ module Aws::FMS
3240
3853
  # "overrideAction" : \{"type": "COUNT"\}\}],
3241
3854
  # "defaultAction": \{"type": "BLOCK"\}\}"`
3242
3855
  #
3856
+ # * Example: `WAFV2` - Firewall Manager support for WAF managed rule
3857
+ # group versioning
3858
+ #
3859
+ # `"\{"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"\}]\}\}"`
3860
+ #
3861
+ # To use a specific version of a WAF managed rule group in your
3862
+ # Firewall Manager policy, you must set `versionEnabled` to `true`,
3863
+ # and set `version` to the version you'd like to use. If you don't
3864
+ # set `versionEnabled` to `true`, or if you omit `versionEnabled`,
3865
+ # then Firewall Manager uses the default version of the WAF managed
3866
+ # rule group.
3867
+ #
3243
3868
  # * Example: `SECURITY_GROUPS_COMMON`
3244
3869
  #
3245
3870
  # `"\{"type":"SECURITY_GROUPS_COMMON","revertManualSecurityGroupChanges":false,"exclusiveResourceSecurityGroupManagement":false,
3246
3871
  # "applyToAllEC2InstanceENIs":false,"securityGroups":[\{"id":"
3247
3872
  # sg-000e55995d61a06bd"\}]\}"`
3248
3873
  #
3874
+ # * Example: `SECURITY_GROUPS_COMMON` - Security group tag
3875
+ # distribution
3876
+ #
3877
+ # `""\{"type":"SECURITY_GROUPS_COMMON","securityGroups":[\{"id":"sg-000e55995d61a06bd"\}],"revertManualSecurityGroupChanges":true,"exclusiveResourceSecurityGroupManagement":false,"applyToAllEC2InstanceENIs":false,"includeSharedVPC":false,"enableTagDistribution":true\}""`
3878
+ #
3879
+ # Firewall Manager automatically distributes tags from the primary
3880
+ # group to the security groups created by this policy. To use
3881
+ # security group tag distribution, you must also set
3882
+ # `revertManualSecurityGroupChanges` to `true`, otherwise Firewall
3883
+ # Manager won't be able to create the policy. When you enable
3884
+ # `revertManualSecurityGroupChanges`, Firewall Manager identifies
3885
+ # and reports when the security groups created by this policy become
3886
+ # non-compliant.
3887
+ #
3888
+ # Firewall Manager won't distrubute system tags added by Amazon Web
3889
+ # Services services into the replica security groups. System tags
3890
+ # begin with the `aws:` prefix.
3891
+ #
3249
3892
  # * Example: Shared VPCs. Apply the preceding policy to resources in
3250
3893
  # shared VPCs as well as to those in VPCs that the account owns
3251
3894
  #
@@ -3267,13 +3910,47 @@ module Aws::FMS
3267
3910
  # * Example: `SECURITY_GROUPS_USAGE_AUDIT`
3268
3911
  #
3269
3912
  # `"\{"type":"SECURITY_GROUPS_USAGE_AUDIT","deleteUnusedSecurityGroups":true,"coalesceRedundantSecurityGroups":true\}"`
3913
+ #
3914
+ #
3915
+ #
3916
+ # [1]: https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_PolicyOption.html
3270
3917
  # @return [String]
3271
3918
  #
3919
+ # @!attribute [rw] policy_option
3920
+ # Contains the Network Firewall firewall policy options to configure a
3921
+ # centralized deployment model.
3922
+ # @return [Types::PolicyOption]
3923
+ #
3272
3924
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/SecurityServicePolicyData AWS API Documentation
3273
3925
  #
3274
3926
  class SecurityServicePolicyData < Struct.new(
3275
3927
  :type,
3276
- :managed_service_data)
3928
+ :managed_service_data,
3929
+ :policy_option)
3930
+ SENSITIVE = []
3931
+ include Aws::Structure
3932
+ end
3933
+
3934
+ # Configuration settings for the handling of the stateful rule groups in
3935
+ # a Network Firewall firewall policy.
3936
+ #
3937
+ # @!attribute [rw] rule_order
3938
+ # Indicates how to manage the order of stateful rule evaluation for
3939
+ # the policy. `DEFAULT_ACTION_ORDER` is the default behavior. Stateful
3940
+ # rules are provided to the rule engine as Suricata compatible
3941
+ # strings, and Suricata evaluates them based on certain settings. For
3942
+ # more information, see [Evaluation order for stateful rules][1] in
3943
+ # the *Network Firewall Developer Guide*.
3944
+ #
3945
+ #
3946
+ #
3947
+ # [1]: https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html
3948
+ # @return [String]
3949
+ #
3950
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/StatefulEngineOptions AWS API Documentation
3951
+ #
3952
+ class StatefulEngineOptions < Struct.new(
3953
+ :rule_order)
3277
3954
  SENSITIVE = []
3278
3955
  include Aws::Structure
3279
3956
  end
@@ -3289,11 +3966,29 @@ module Aws::FMS
3289
3966
  # The resource ID of the rule group.
3290
3967
  # @return [String]
3291
3968
  #
3969
+ # @!attribute [rw] priority
3970
+ # An integer setting that indicates the order in which to run the
3971
+ # stateful rule groups in a single Network Firewall firewall policy.
3972
+ # This setting only applies to firewall policies that specify the
3973
+ # `STRICT_ORDER` rule order in the stateful engine options settings.
3974
+ #
3975
+ # Network Firewall evalutes each stateful rule group against a packet
3976
+ # starting with the group that has the lowest priority setting. You
3977
+ # must ensure that the priority settings are unique within each
3978
+ # policy. For information about
3979
+ #
3980
+ # You can change the priority settings of your rule groups at any
3981
+ # time. To make it easier to insert rule groups later, number them so
3982
+ # there's a wide range in between, for example use 100, 200, and so
3983
+ # on.
3984
+ # @return [Integer]
3985
+ #
3292
3986
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/StatefulRuleGroup AWS API Documentation
3293
3987
  #
3294
3988
  class StatefulRuleGroup < Struct.new(
3295
3989
  :rule_group_name,
3296
- :resource_id)
3990
+ :resource_id,
3991
+ :priority)
3297
3992
  SENSITIVE = []
3298
3993
  include Aws::Structure
3299
3994
  end
@@ -3397,6 +4092,152 @@ module Aws::FMS
3397
4092
  #
3398
4093
  class TagResourceResponse < Aws::EmptyStructure; end
3399
4094
 
4095
+ # Configures the third-party firewall's firewall policy.
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 deployment model 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
+ # policy.
4231
+ # @return [String]
4232
+ #
4233
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ThirdPartyFirewallPolicy AWS API Documentation
4234
+ #
4235
+ class ThirdPartyFirewallPolicy < Struct.new(
4236
+ :firewall_deployment_model)
4237
+ SENSITIVE = []
4238
+ include Aws::Structure
4239
+ end
4240
+
3400
4241
  # @note When making an API call, you may pass UntagResourceRequest
3401
4242
  # data as a hash:
3402
4243
  #