aws-sdk-fms 1.47.0 → 1.50.0

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