aws-sdk-fms 1.28.0 → 1.33.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,6 +10,153 @@
10
10
  module Aws::FMS
11
11
  module Types
12
12
 
13
+ # An individual AWS Firewall Manager application.
14
+ #
15
+ # @note When making an API call, you may pass App
16
+ # data as a hash:
17
+ #
18
+ # {
19
+ # app_name: "ResourceName", # required
20
+ # protocol: "Protocol", # required
21
+ # port: 1, # required
22
+ # }
23
+ #
24
+ # @!attribute [rw] app_name
25
+ # The application's name.
26
+ # @return [String]
27
+ #
28
+ # @!attribute [rw] protocol
29
+ # The IP protocol name or number. The name can be one of `tcp`, `udp`,
30
+ # or `icmp`. For information on possible numbers, see [Protocol
31
+ # Numbers][1].
32
+ #
33
+ #
34
+ #
35
+ # [1]: https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
36
+ # @return [String]
37
+ #
38
+ # @!attribute [rw] port
39
+ # The application's port number, for example `80`.
40
+ # @return [Integer]
41
+ #
42
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/App AWS API Documentation
43
+ #
44
+ class App < Struct.new(
45
+ :app_name,
46
+ :protocol,
47
+ :port)
48
+ SENSITIVE = []
49
+ include Aws::Structure
50
+ end
51
+
52
+ # An AWS Firewall Manager applications list.
53
+ #
54
+ # @note When making an API call, you may pass AppsListData
55
+ # data as a hash:
56
+ #
57
+ # {
58
+ # list_id: "ListId",
59
+ # list_name: "ResourceName", # required
60
+ # list_update_token: "UpdateToken",
61
+ # create_time: Time.now,
62
+ # last_update_time: Time.now,
63
+ # apps_list: [ # required
64
+ # {
65
+ # app_name: "ResourceName", # required
66
+ # protocol: "Protocol", # required
67
+ # port: 1, # required
68
+ # },
69
+ # ],
70
+ # previous_apps_list: {
71
+ # "PreviousListVersion" => [
72
+ # {
73
+ # app_name: "ResourceName", # required
74
+ # protocol: "Protocol", # required
75
+ # port: 1, # required
76
+ # },
77
+ # ],
78
+ # },
79
+ # }
80
+ #
81
+ # @!attribute [rw] list_id
82
+ # The ID of the AWS Firewall Manager applications list.
83
+ # @return [String]
84
+ #
85
+ # @!attribute [rw] list_name
86
+ # The name of the AWS Firewall Manager applications list.
87
+ # @return [String]
88
+ #
89
+ # @!attribute [rw] list_update_token
90
+ # A unique identifier for each update to the list. When you update the
91
+ # list, the update token must match the token of the current version
92
+ # of the application list. You can retrieve the update token by
93
+ # getting the list.
94
+ # @return [String]
95
+ #
96
+ # @!attribute [rw] create_time
97
+ # The time that the AWS Firewall Manager applications list was
98
+ # created.
99
+ # @return [Time]
100
+ #
101
+ # @!attribute [rw] last_update_time
102
+ # The time that the AWS Firewall Manager applications list was last
103
+ # updated.
104
+ # @return [Time]
105
+ #
106
+ # @!attribute [rw] apps_list
107
+ # An array of applications in the AWS Firewall Manager applications
108
+ # list.
109
+ # @return [Array<Types::App>]
110
+ #
111
+ # @!attribute [rw] previous_apps_list
112
+ # A map of previous version numbers to their corresponding `App`
113
+ # object arrays.
114
+ # @return [Hash<String,Array<Types::App>>]
115
+ #
116
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AppsListData AWS API Documentation
117
+ #
118
+ class AppsListData < Struct.new(
119
+ :list_id,
120
+ :list_name,
121
+ :list_update_token,
122
+ :create_time,
123
+ :last_update_time,
124
+ :apps_list,
125
+ :previous_apps_list)
126
+ SENSITIVE = []
127
+ include Aws::Structure
128
+ end
129
+
130
+ # Details of the AWS Firewall Manager applications list.
131
+ #
132
+ # @!attribute [rw] list_arn
133
+ # The Amazon Resource Name (ARN) of the applications list.
134
+ # @return [String]
135
+ #
136
+ # @!attribute [rw] list_id
137
+ # The ID of the applications list.
138
+ # @return [String]
139
+ #
140
+ # @!attribute [rw] list_name
141
+ # The name of the applications list.
142
+ # @return [String]
143
+ #
144
+ # @!attribute [rw] apps_list
145
+ # An array of `App` objects in the AWS Firewall Manager applications
146
+ # list.
147
+ # @return [Array<Types::App>]
148
+ #
149
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AppsListDataSummary AWS API Documentation
150
+ #
151
+ class AppsListDataSummary < Struct.new(
152
+ :list_arn,
153
+ :list_id,
154
+ :list_name,
155
+ :apps_list)
156
+ SENSITIVE = []
157
+ include Aws::Structure
158
+ end
159
+
13
160
  # @note When making an API call, you may pass AssociateAdminAccountRequest
14
161
  # data as a hash:
15
162
  #
@@ -37,6 +184,76 @@ module Aws::FMS
37
184
  include Aws::Structure
38
185
  end
39
186
 
187
+ # Violations for an EC2 instance resource.
188
+ #
189
+ # @!attribute [rw] violation_target
190
+ # The resource ID of the EC2 instance.
191
+ # @return [String]
192
+ #
193
+ # @!attribute [rw] aws_ec2_network_interface_violations
194
+ # Violations for network interfaces associated with the EC2 instance.
195
+ # @return [Array<Types::AwsEc2NetworkInterfaceViolation>]
196
+ #
197
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AwsEc2InstanceViolation AWS API Documentation
198
+ #
199
+ class AwsEc2InstanceViolation < Struct.new(
200
+ :violation_target,
201
+ :aws_ec2_network_interface_violations)
202
+ SENSITIVE = []
203
+ include Aws::Structure
204
+ end
205
+
206
+ # Violations for network interfaces associated with an EC2 instance.
207
+ #
208
+ # @!attribute [rw] violation_target
209
+ # The resource ID of the network interface.
210
+ # @return [String]
211
+ #
212
+ # @!attribute [rw] violating_security_groups
213
+ # List of security groups that violate the rules specified in the
214
+ # master security group of the AWS Firewall Manager policy.
215
+ # @return [Array<String>]
216
+ #
217
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AwsEc2NetworkInterfaceViolation AWS API Documentation
218
+ #
219
+ class AwsEc2NetworkInterfaceViolation < Struct.new(
220
+ :violation_target,
221
+ :violating_security_groups)
222
+ SENSITIVE = []
223
+ include Aws::Structure
224
+ end
225
+
226
+ # Details of the rule violation in a security group when compared to the
227
+ # master security group of the AWS Firewall Manager policy.
228
+ #
229
+ # @!attribute [rw] violation_target
230
+ # The security group rule that is being evaluated.
231
+ # @return [String]
232
+ #
233
+ # @!attribute [rw] violation_target_description
234
+ # A description of the security group that violates the policy.
235
+ # @return [String]
236
+ #
237
+ # @!attribute [rw] partial_matches
238
+ # List of rules specified in the security group of the AWS Firewall
239
+ # Manager policy that partially match the `ViolationTarget` rule.
240
+ # @return [Array<Types::PartialMatch>]
241
+ #
242
+ # @!attribute [rw] possible_security_group_remediation_actions
243
+ # Remediation options for the rule specified in the `ViolationTarget`.
244
+ # @return [Array<Types::SecurityGroupRemediationAction>]
245
+ #
246
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AwsVPCSecurityGroupViolation AWS API Documentation
247
+ #
248
+ class AwsVPCSecurityGroupViolation < Struct.new(
249
+ :violation_target,
250
+ :violation_target_description,
251
+ :partial_matches,
252
+ :possible_security_group_remediation_actions)
253
+ SENSITIVE = []
254
+ include Aws::Structure
255
+ end
256
+
40
257
  # Details of the resource that is not protected by the policy.
41
258
  #
42
259
  # @!attribute [rw] resource_id
@@ -50,8 +267,9 @@ module Aws::FMS
50
267
  # @!attribute [rw] resource_type
51
268
  # The resource type. This is in the format shown in the [AWS Resource
52
269
  # Types Reference][1]. For example:
53
- # `AWS::ElasticLoadBalancingV2::LoadBalancer` or
54
- # `AWS::CloudFront::Distribution`.
270
+ # `AWS::ElasticLoadBalancingV2::LoadBalancer`,
271
+ # `AWS::CloudFront::Distribution`, or
272
+ # `AWS::NetworkFirewall::FirewallPolicy`.
55
273
  #
56
274
  #
57
275
  #
@@ -68,6 +286,27 @@ module Aws::FMS
68
286
  include Aws::Structure
69
287
  end
70
288
 
289
+ # @note When making an API call, you may pass DeleteAppsListRequest
290
+ # data as a hash:
291
+ #
292
+ # {
293
+ # list_id: "ListId", # required
294
+ # }
295
+ #
296
+ # @!attribute [rw] list_id
297
+ # The ID of the applications list that you want to delete. You can
298
+ # retrieve this ID from `PutAppsList`, `ListAppsLists`, and
299
+ # `GetAppsList`.
300
+ # @return [String]
301
+ #
302
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteAppsListRequest AWS API Documentation
303
+ #
304
+ class DeleteAppsListRequest < Struct.new(
305
+ :list_id)
306
+ SENSITIVE = []
307
+ include Aws::Structure
308
+ end
309
+
71
310
  # @api private
72
311
  #
73
312
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteNotificationChannelRequest AWS API Documentation
@@ -83,8 +322,8 @@ module Aws::FMS
83
322
  # }
84
323
  #
85
324
  # @!attribute [rw] policy_id
86
- # The ID of the policy that you want to delete. `PolicyId` is returned
87
- # by `PutPolicy` and by `ListPolicies`.
325
+ # The ID of the policy that you want to delete. You can retrieve this
326
+ # ID from `PutPolicy` and `ListPolicies`.
88
327
  # @return [String]
89
328
  #
90
329
  # @!attribute [rw] delete_all_policy_resources
@@ -128,6 +367,27 @@ module Aws::FMS
128
367
  include Aws::Structure
129
368
  end
130
369
 
370
+ # @note When making an API call, you may pass DeleteProtocolsListRequest
371
+ # data as a hash:
372
+ #
373
+ # {
374
+ # list_id: "ListId", # required
375
+ # }
376
+ #
377
+ # @!attribute [rw] list_id
378
+ # The ID of the protocols list that you want to delete. You can
379
+ # retrieve this ID from `PutProtocolsList`, `ListProtocolsLists`, and
380
+ # `GetProtocolsLost`.
381
+ # @return [String]
382
+ #
383
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteProtocolsListRequest AWS API Documentation
384
+ #
385
+ class DeleteProtocolsListRequest < Struct.new(
386
+ :list_id)
387
+ SENSITIVE = []
388
+ include Aws::Structure
389
+ end
390
+
131
391
  # @api private
132
392
  #
133
393
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DisassociateAdminAccountRequest AWS API Documentation
@@ -193,6 +453,51 @@ module Aws::FMS
193
453
  include Aws::Structure
194
454
  end
195
455
 
456
+ # @note When making an API call, you may pass GetAppsListRequest
457
+ # data as a hash:
458
+ #
459
+ # {
460
+ # list_id: "ListId", # required
461
+ # default_list: false,
462
+ # }
463
+ #
464
+ # @!attribute [rw] list_id
465
+ # The ID of the AWS Firewall Manager applications list that you want
466
+ # the details for.
467
+ # @return [String]
468
+ #
469
+ # @!attribute [rw] default_list
470
+ # Specifies whether the list to retrieve is a default list owned by
471
+ # AWS Firewall Manager.
472
+ # @return [Boolean]
473
+ #
474
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAppsListRequest AWS API Documentation
475
+ #
476
+ class GetAppsListRequest < Struct.new(
477
+ :list_id,
478
+ :default_list)
479
+ SENSITIVE = []
480
+ include Aws::Structure
481
+ end
482
+
483
+ # @!attribute [rw] apps_list
484
+ # Information about the specified AWS Firewall Manager applications
485
+ # list.
486
+ # @return [Types::AppsListData]
487
+ #
488
+ # @!attribute [rw] apps_list_arn
489
+ # The Amazon Resource Name (ARN) of the applications list.
490
+ # @return [String]
491
+ #
492
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAppsListResponse AWS API Documentation
493
+ #
494
+ class GetAppsListResponse < Struct.new(
495
+ :apps_list,
496
+ :apps_list_arn)
497
+ SENSITIVE = []
498
+ include Aws::Structure
499
+ end
500
+
196
501
  # @note When making an API call, you may pass GetComplianceDetailRequest
197
502
  # data as a hash:
198
503
  #
@@ -410,6 +715,109 @@ module Aws::FMS
410
715
  include Aws::Structure
411
716
  end
412
717
 
718
+ # @note When making an API call, you may pass GetProtocolsListRequest
719
+ # data as a hash:
720
+ #
721
+ # {
722
+ # list_id: "ListId", # required
723
+ # default_list: false,
724
+ # }
725
+ #
726
+ # @!attribute [rw] list_id
727
+ # The ID of the AWS Firewall Manager protocols list that you want the
728
+ # details for.
729
+ # @return [String]
730
+ #
731
+ # @!attribute [rw] default_list
732
+ # Specifies whether the list to retrieve is a default list owned by
733
+ # AWS Firewall Manager.
734
+ # @return [Boolean]
735
+ #
736
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtocolsListRequest AWS API Documentation
737
+ #
738
+ class GetProtocolsListRequest < Struct.new(
739
+ :list_id,
740
+ :default_list)
741
+ SENSITIVE = []
742
+ include Aws::Structure
743
+ end
744
+
745
+ # @!attribute [rw] protocols_list
746
+ # Information about the specified AWS Firewall Manager protocols list.
747
+ # @return [Types::ProtocolsListData]
748
+ #
749
+ # @!attribute [rw] protocols_list_arn
750
+ # The Amazon Resource Name (ARN) of the specified protocols list.
751
+ # @return [String]
752
+ #
753
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtocolsListResponse AWS API Documentation
754
+ #
755
+ class GetProtocolsListResponse < Struct.new(
756
+ :protocols_list,
757
+ :protocols_list_arn)
758
+ SENSITIVE = []
759
+ include Aws::Structure
760
+ end
761
+
762
+ # @note When making an API call, you may pass GetViolationDetailsRequest
763
+ # data as a hash:
764
+ #
765
+ # {
766
+ # policy_id: "PolicyId", # required
767
+ # member_account: "AWSAccountId", # required
768
+ # resource_id: "ResourceId", # required
769
+ # resource_type: "ResourceType", # required
770
+ # }
771
+ #
772
+ # @!attribute [rw] policy_id
773
+ # The ID of the AWS Firewall Manager policy that you want the details
774
+ # for. This currently only supports security group content audit
775
+ # policies.
776
+ # @return [String]
777
+ #
778
+ # @!attribute [rw] member_account
779
+ # The AWS account ID that you want the details for.
780
+ # @return [String]
781
+ #
782
+ # @!attribute [rw] resource_id
783
+ # The ID of the resource that has violations.
784
+ # @return [String]
785
+ #
786
+ # @!attribute [rw] resource_type
787
+ # The resource type. This is in the format shown in the [AWS Resource
788
+ # Types Reference][1]. Supported resource types are:
789
+ # `AWS::EC2::Instance`, `AWS::EC2::NetworkInterface`,
790
+ # `AWS::EC2::SecurityGroup`, `AWS::NetworkFirewall::FirewallPolicy`,
791
+ # and `AWS::EC2::Subnet`.
792
+ #
793
+ #
794
+ #
795
+ # [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
796
+ # @return [String]
797
+ #
798
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetViolationDetailsRequest AWS API Documentation
799
+ #
800
+ class GetViolationDetailsRequest < Struct.new(
801
+ :policy_id,
802
+ :member_account,
803
+ :resource_id,
804
+ :resource_type)
805
+ SENSITIVE = []
806
+ include Aws::Structure
807
+ end
808
+
809
+ # @!attribute [rw] violation_detail
810
+ # Violation detail for a resource.
811
+ # @return [Types::ViolationDetail]
812
+ #
813
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetViolationDetailsResponse AWS API Documentation
814
+ #
815
+ class GetViolationDetailsResponse < Struct.new(
816
+ :violation_detail)
817
+ SENSITIVE = []
818
+ include Aws::Structure
819
+ end
820
+
413
821
  # The operation failed because of a system problem, even though the
414
822
  # request was valid. Retry your request.
415
823
  #
@@ -437,10 +845,13 @@ module Aws::FMS
437
845
  include Aws::Structure
438
846
  end
439
847
 
440
- # The operation failed because there was nothing to do. For example, you
441
- # might have submitted an `AssociateAdminAccount` request, but the
442
- # account ID that you submitted was already set as the AWS Firewall
443
- # Manager administrator.
848
+ # The operation failed because there was nothing to do or the operation
849
+ # wasn't possible. For example, you might have submitted an
850
+ # `AssociateAdminAccount` request for an account ID that was already set
851
+ # as the AWS Firewall Manager administrator. Or you might have tried to
852
+ # access a Region that's disabled by default, and that you need to
853
+ # enable for the Firewall Manager administrator account and for AWS
854
+ # Organizations before you can access it.
444
855
  #
445
856
  # @!attribute [rw] message
446
857
  # @return [String]
@@ -486,6 +897,68 @@ module Aws::FMS
486
897
  include Aws::Structure
487
898
  end
488
899
 
900
+ # @note When making an API call, you may pass ListAppsListsRequest
901
+ # data as a hash:
902
+ #
903
+ # {
904
+ # default_lists: false,
905
+ # next_token: "PaginationToken",
906
+ # max_results: 1, # required
907
+ # }
908
+ #
909
+ # @!attribute [rw] default_lists
910
+ # Specifies whether the lists to retrieve are default lists owned by
911
+ # AWS Firewall Manager.
912
+ # @return [Boolean]
913
+ #
914
+ # @!attribute [rw] next_token
915
+ # If you specify a value for `MaxResults` in your list request, and
916
+ # you have more objects than the maximum, AWS Firewall Manager returns
917
+ # this token in the response. For all but the first request, you
918
+ # provide the token returned by the prior request in the request
919
+ # parameters, to retrieve the next batch of objects.
920
+ # @return [String]
921
+ #
922
+ # @!attribute [rw] max_results
923
+ # The maximum number of objects that you want AWS Firewall Manager to
924
+ # return for this request. If more objects are available, in the
925
+ # response, AWS Firewall Manager provides a `NextToken` value that you
926
+ # can use in a subsequent call to get the next batch of objects.
927
+ #
928
+ # If you don't specify this, AWS Firewall Manager returns all
929
+ # available objects.
930
+ # @return [Integer]
931
+ #
932
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListAppsListsRequest AWS API Documentation
933
+ #
934
+ class ListAppsListsRequest < Struct.new(
935
+ :default_lists,
936
+ :next_token,
937
+ :max_results)
938
+ SENSITIVE = []
939
+ include Aws::Structure
940
+ end
941
+
942
+ # @!attribute [rw] apps_lists
943
+ # An array of `AppsListDataSummary` objects.
944
+ # @return [Array<Types::AppsListDataSummary>]
945
+ #
946
+ # @!attribute [rw] next_token
947
+ # If you specify a value for `MaxResults` in your list request, and
948
+ # you have more objects than the maximum, AWS Firewall Manager returns
949
+ # this token in the response. You can use this token in subsequent
950
+ # requests to retrieve the next batch of objects.
951
+ # @return [String]
952
+ #
953
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListAppsListsResponse AWS API Documentation
954
+ #
955
+ class ListAppsListsResponse < Struct.new(
956
+ :apps_lists,
957
+ :next_token)
958
+ SENSITIVE = []
959
+ include Aws::Structure
960
+ end
961
+
489
962
  # @note When making an API call, you may pass ListComplianceStatusRequest
490
963
  # data as a hash:
491
964
  #
@@ -665,32 +1138,94 @@ module Aws::FMS
665
1138
  include Aws::Structure
666
1139
  end
667
1140
 
668
- # @note When making an API call, you may pass ListTagsForResourceRequest
1141
+ # @note When making an API call, you may pass ListProtocolsListsRequest
669
1142
  # data as a hash:
670
1143
  #
671
1144
  # {
672
- # resource_arn: "ResourceArn", # required
1145
+ # default_lists: false,
1146
+ # next_token: "PaginationToken",
1147
+ # max_results: 1, # required
673
1148
  # }
674
1149
  #
675
- # @!attribute [rw] resource_arn
676
- # The Amazon Resource Name (ARN) of the resource to return tags for.
677
- # The Firewall Manager policy is the only AWS resource that supports
678
- # tagging, so this ARN is a policy ARN..
1150
+ # @!attribute [rw] default_lists
1151
+ # Specifies whether the lists to retrieve are default lists owned by
1152
+ # AWS Firewall Manager.
1153
+ # @return [Boolean]
1154
+ #
1155
+ # @!attribute [rw] next_token
1156
+ # If you specify a value for `MaxResults` in your list request, and
1157
+ # you have more objects than the maximum, AWS Firewall Manager returns
1158
+ # this token in the response. For all but the first request, you
1159
+ # provide the token returned by the prior request in the request
1160
+ # parameters, to retrieve the next batch of objects.
679
1161
  # @return [String]
680
1162
  #
681
- # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListTagsForResourceRequest AWS API Documentation
1163
+ # @!attribute [rw] max_results
1164
+ # The maximum number of objects that you want AWS Firewall Manager to
1165
+ # return for this request. If more objects are available, in the
1166
+ # response, AWS Firewall Manager provides a `NextToken` value that you
1167
+ # can use in a subsequent call to get the next batch of objects.
682
1168
  #
683
- class ListTagsForResourceRequest < Struct.new(
684
- :resource_arn)
1169
+ # If you don't specify this, AWS Firewall Manager returns all
1170
+ # available objects.
1171
+ # @return [Integer]
1172
+ #
1173
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListProtocolsListsRequest AWS API Documentation
1174
+ #
1175
+ class ListProtocolsListsRequest < Struct.new(
1176
+ :default_lists,
1177
+ :next_token,
1178
+ :max_results)
685
1179
  SENSITIVE = []
686
1180
  include Aws::Structure
687
1181
  end
688
1182
 
689
- # @!attribute [rw] tag_list
690
- # The tags associated with the resource.
691
- # @return [Array<Types::Tag>]
692
- #
693
- # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListTagsForResourceResponse AWS API Documentation
1183
+ # @!attribute [rw] protocols_lists
1184
+ # An array of `ProtocolsListDataSummary` objects.
1185
+ # @return [Array<Types::ProtocolsListDataSummary>]
1186
+ #
1187
+ # @!attribute [rw] next_token
1188
+ # If you specify a value for `MaxResults` in your list request, and
1189
+ # you have more objects than the maximum, AWS Firewall Manager returns
1190
+ # this token in the response. You can use this token in subsequent
1191
+ # requests to retrieve the next batch of objects.
1192
+ # @return [String]
1193
+ #
1194
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListProtocolsListsResponse AWS API Documentation
1195
+ #
1196
+ class ListProtocolsListsResponse < Struct.new(
1197
+ :protocols_lists,
1198
+ :next_token)
1199
+ SENSITIVE = []
1200
+ include Aws::Structure
1201
+ end
1202
+
1203
+ # @note When making an API call, you may pass ListTagsForResourceRequest
1204
+ # data as a hash:
1205
+ #
1206
+ # {
1207
+ # resource_arn: "ResourceArn", # required
1208
+ # }
1209
+ #
1210
+ # @!attribute [rw] resource_arn
1211
+ # The Amazon Resource Name (ARN) of the resource to return tags for.
1212
+ # The AWS Firewall Manager resources that support tagging are
1213
+ # policies, applications lists, and protocols lists.
1214
+ # @return [String]
1215
+ #
1216
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListTagsForResourceRequest AWS API Documentation
1217
+ #
1218
+ class ListTagsForResourceRequest < Struct.new(
1219
+ :resource_arn)
1220
+ SENSITIVE = []
1221
+ include Aws::Structure
1222
+ end
1223
+
1224
+ # @!attribute [rw] tag_list
1225
+ # The tags associated with the resource.
1226
+ # @return [Array<Types::Tag>]
1227
+ #
1228
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListTagsForResourceResponse AWS API Documentation
694
1229
  #
695
1230
  class ListTagsForResourceResponse < Struct.new(
696
1231
  :tag_list)
@@ -698,6 +1233,194 @@ module Aws::FMS
698
1233
  include Aws::Structure
699
1234
  end
700
1235
 
1236
+ # Violation details for AWS Network Firewall for a subnet that's not
1237
+ # associated to the expected Firewall Manager managed route table.
1238
+ #
1239
+ # @!attribute [rw] violation_target
1240
+ # The ID of the AWS Network Firewall or VPC resource that's in
1241
+ # violation.
1242
+ # @return [String]
1243
+ #
1244
+ # @!attribute [rw] vpc
1245
+ # The resource ID of the VPC associated with a violating subnet.
1246
+ # @return [String]
1247
+ #
1248
+ # @!attribute [rw] availability_zone
1249
+ # The Availability Zone of a violating subnet.
1250
+ # @return [String]
1251
+ #
1252
+ # @!attribute [rw] current_route_table
1253
+ # The resource ID of the current route table that's associated with
1254
+ # the subnet, if one is available.
1255
+ # @return [String]
1256
+ #
1257
+ # @!attribute [rw] expected_route_table
1258
+ # The resource ID of the route table that should be associated with
1259
+ # the subnet.
1260
+ # @return [String]
1261
+ #
1262
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/NetworkFirewallMissingExpectedRTViolation AWS API Documentation
1263
+ #
1264
+ class NetworkFirewallMissingExpectedRTViolation < Struct.new(
1265
+ :violation_target,
1266
+ :vpc,
1267
+ :availability_zone,
1268
+ :current_route_table,
1269
+ :expected_route_table)
1270
+ SENSITIVE = []
1271
+ include Aws::Structure
1272
+ end
1273
+
1274
+ # Violation details for AWS Network Firewall for a subnet that doesn't
1275
+ # have a Firewall Manager managed firewall in its VPC.
1276
+ #
1277
+ # @!attribute [rw] violation_target
1278
+ # The ID of the AWS Network Firewall or VPC resource that's in
1279
+ # violation.
1280
+ # @return [String]
1281
+ #
1282
+ # @!attribute [rw] vpc
1283
+ # The resource ID of the VPC associated with a violating subnet.
1284
+ # @return [String]
1285
+ #
1286
+ # @!attribute [rw] availability_zone
1287
+ # The Availability Zone of a violating subnet.
1288
+ # @return [String]
1289
+ #
1290
+ # @!attribute [rw] target_violation_reason
1291
+ # The reason the resource has this violation, if one is available.
1292
+ # @return [String]
1293
+ #
1294
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/NetworkFirewallMissingFirewallViolation AWS API Documentation
1295
+ #
1296
+ class NetworkFirewallMissingFirewallViolation < Struct.new(
1297
+ :violation_target,
1298
+ :vpc,
1299
+ :availability_zone,
1300
+ :target_violation_reason)
1301
+ SENSITIVE = []
1302
+ include Aws::Structure
1303
+ end
1304
+
1305
+ # Violation details for AWS Network Firewall for an Availability Zone
1306
+ # that's missing the expected Firewall Manager managed subnet.
1307
+ #
1308
+ # @!attribute [rw] violation_target
1309
+ # The ID of the AWS Network Firewall or VPC resource that's in
1310
+ # violation.
1311
+ # @return [String]
1312
+ #
1313
+ # @!attribute [rw] vpc
1314
+ # The resource ID of the VPC associated with a violating subnet.
1315
+ # @return [String]
1316
+ #
1317
+ # @!attribute [rw] availability_zone
1318
+ # The Availability Zone of a violating subnet.
1319
+ # @return [String]
1320
+ #
1321
+ # @!attribute [rw] target_violation_reason
1322
+ # The reason the resource has this violation, if one is available.
1323
+ # @return [String]
1324
+ #
1325
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/NetworkFirewallMissingSubnetViolation AWS API Documentation
1326
+ #
1327
+ class NetworkFirewallMissingSubnetViolation < Struct.new(
1328
+ :violation_target,
1329
+ :vpc,
1330
+ :availability_zone,
1331
+ :target_violation_reason)
1332
+ SENSITIVE = []
1333
+ include Aws::Structure
1334
+ end
1335
+
1336
+ # The definition of the AWS Network Firewall firewall policy.
1337
+ #
1338
+ # @!attribute [rw] stateless_rule_groups
1339
+ # The stateless rule groups that are used in the Network Firewall
1340
+ # firewall policy.
1341
+ # @return [Array<Types::StatelessRuleGroup>]
1342
+ #
1343
+ # @!attribute [rw] stateless_default_actions
1344
+ # The actions to take on packets that don't match any of the
1345
+ # stateless rule groups.
1346
+ # @return [Array<String>]
1347
+ #
1348
+ # @!attribute [rw] stateless_fragment_default_actions
1349
+ # The actions to take on packet fragments that don't match any of the
1350
+ # stateless rule groups.
1351
+ # @return [Array<String>]
1352
+ #
1353
+ # @!attribute [rw] stateless_custom_actions
1354
+ # Names of custom actions that are available for use in the stateless
1355
+ # default actions settings.
1356
+ # @return [Array<String>]
1357
+ #
1358
+ # @!attribute [rw] stateful_rule_groups
1359
+ # The stateful rule groups that are used in the Network Firewall
1360
+ # firewall policy.
1361
+ # @return [Array<Types::StatefulRuleGroup>]
1362
+ #
1363
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/NetworkFirewallPolicyDescription AWS API Documentation
1364
+ #
1365
+ class NetworkFirewallPolicyDescription < Struct.new(
1366
+ :stateless_rule_groups,
1367
+ :stateless_default_actions,
1368
+ :stateless_fragment_default_actions,
1369
+ :stateless_custom_actions,
1370
+ :stateful_rule_groups)
1371
+ SENSITIVE = []
1372
+ include Aws::Structure
1373
+ end
1374
+
1375
+ # Violation details for AWS Network Firewall for a firewall policy that
1376
+ # has a different NetworkFirewallPolicyDescription than is required by
1377
+ # the Firewall Manager policy.
1378
+ #
1379
+ # @!attribute [rw] violation_target
1380
+ # The ID of the AWS Network Firewall or VPC resource that's in
1381
+ # violation.
1382
+ # @return [String]
1383
+ #
1384
+ # @!attribute [rw] current_policy_description
1385
+ # The policy that's currently in use in the individual account.
1386
+ # @return [Types::NetworkFirewallPolicyDescription]
1387
+ #
1388
+ # @!attribute [rw] expected_policy_description
1389
+ # The policy that should be in use in the individual account in order
1390
+ # to be compliant.
1391
+ # @return [Types::NetworkFirewallPolicyDescription]
1392
+ #
1393
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/NetworkFirewallPolicyModifiedViolation AWS API Documentation
1394
+ #
1395
+ class NetworkFirewallPolicyModifiedViolation < Struct.new(
1396
+ :violation_target,
1397
+ :current_policy_description,
1398
+ :expected_policy_description)
1399
+ SENSITIVE = []
1400
+ include Aws::Structure
1401
+ end
1402
+
1403
+ # The reference rule that partially matches the `ViolationTarget` rule
1404
+ # and violation reason.
1405
+ #
1406
+ # @!attribute [rw] reference
1407
+ # The reference rule from the master security group of the AWS
1408
+ # Firewall Manager policy.
1409
+ # @return [String]
1410
+ #
1411
+ # @!attribute [rw] target_violation_reasons
1412
+ # The violation reason.
1413
+ # @return [Array<String>]
1414
+ #
1415
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PartialMatch AWS API Documentation
1416
+ #
1417
+ class PartialMatch < Struct.new(
1418
+ :reference,
1419
+ :target_violation_reasons)
1420
+ SENSITIVE = []
1421
+ include Aws::Structure
1422
+ end
1423
+
701
1424
  # An AWS Firewall Manager policy.
702
1425
  #
703
1426
  # @note When making an API call, you may pass Policy
@@ -708,7 +1431,7 @@ module Aws::FMS
708
1431
  # policy_name: "ResourceName", # required
709
1432
  # policy_update_token: "PolicyUpdateToken",
710
1433
  # security_service_policy_data: { # required
711
- # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT
1434
+ # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL
712
1435
  # managed_service_data: "ManagedServiceData",
713
1436
  # },
714
1437
  # resource_type: "ResourceType", # required
@@ -734,7 +1457,7 @@ module Aws::FMS
734
1457
  # @return [String]
735
1458
  #
736
1459
  # @!attribute [rw] policy_name
737
- # The friendly name of the AWS Firewall Manager policy.
1460
+ # The name of the AWS Firewall Manager policy.
738
1461
  # @return [String]
739
1462
  #
740
1463
  # @!attribute [rw] policy_update_token
@@ -761,7 +1484,8 @@ module Aws::FMS
761
1484
  # valid values are `AWS::EC2::SecurityGroup`,
762
1485
  # `AWS::EC2::NetworkInterface`, and `AWS::EC2::Instance`. For a
763
1486
  # security group usage audit policy, the value is
764
- # `AWS::EC2::SecurityGroup`.
1487
+ # `AWS::EC2::SecurityGroup`. For an AWS Network Firewall policy, the
1488
+ # value is `AWS::EC2::VPC`.
765
1489
  #
766
1490
  #
767
1491
  #
@@ -935,7 +1659,7 @@ module Aws::FMS
935
1659
  # @return [String]
936
1660
  #
937
1661
  # @!attribute [rw] policy_name
938
- # The friendly name of the AWS Firewall Manager policy.
1662
+ # The name of the AWS Firewall Manager policy.
939
1663
  # @return [String]
940
1664
  #
941
1665
  # @!attribute [rw] member_account
@@ -982,7 +1706,7 @@ module Aws::FMS
982
1706
  # @return [String]
983
1707
  #
984
1708
  # @!attribute [rw] policy_name
985
- # The friendly name of the specified policy.
1709
+ # The name of the specified policy.
986
1710
  # @return [String]
987
1711
  #
988
1712
  # @!attribute [rw] resource_type
@@ -996,7 +1720,8 @@ module Aws::FMS
996
1720
  # valid values are `AWS::EC2::SecurityGroup`,
997
1721
  # `AWS::EC2::NetworkInterface`, and `AWS::EC2::Instance`. For a
998
1722
  # security group usage audit policy, the value is
999
- # `AWS::EC2::SecurityGroup`.
1723
+ # `AWS::EC2::SecurityGroup`. For an AWS Network Firewall policy, the
1724
+ # value is `AWS::EC2::VPC`.
1000
1725
  #
1001
1726
  #
1002
1727
  #
@@ -1027,6 +1752,169 @@ module Aws::FMS
1027
1752
  include Aws::Structure
1028
1753
  end
1029
1754
 
1755
+ # An AWS Firewall Manager protocols list.
1756
+ #
1757
+ # @note When making an API call, you may pass ProtocolsListData
1758
+ # data as a hash:
1759
+ #
1760
+ # {
1761
+ # list_id: "ListId",
1762
+ # list_name: "ResourceName", # required
1763
+ # list_update_token: "UpdateToken",
1764
+ # create_time: Time.now,
1765
+ # last_update_time: Time.now,
1766
+ # protocols_list: ["Protocol"], # required
1767
+ # previous_protocols_list: {
1768
+ # "PreviousListVersion" => ["Protocol"],
1769
+ # },
1770
+ # }
1771
+ #
1772
+ # @!attribute [rw] list_id
1773
+ # The ID of the AWS Firewall Manager protocols list.
1774
+ # @return [String]
1775
+ #
1776
+ # @!attribute [rw] list_name
1777
+ # The name of the AWS Firewall Manager protocols list.
1778
+ # @return [String]
1779
+ #
1780
+ # @!attribute [rw] list_update_token
1781
+ # A unique identifier for each update to the list. When you update the
1782
+ # list, the update token must match the token of the current version
1783
+ # of the application list. You can retrieve the update token by
1784
+ # getting the list.
1785
+ # @return [String]
1786
+ #
1787
+ # @!attribute [rw] create_time
1788
+ # The time that the AWS Firewall Manager protocols list was created.
1789
+ # @return [Time]
1790
+ #
1791
+ # @!attribute [rw] last_update_time
1792
+ # The time that the AWS Firewall Manager protocols list was last
1793
+ # updated.
1794
+ # @return [Time]
1795
+ #
1796
+ # @!attribute [rw] protocols_list
1797
+ # An array of protocols in the AWS Firewall Manager protocols list.
1798
+ # @return [Array<String>]
1799
+ #
1800
+ # @!attribute [rw] previous_protocols_list
1801
+ # A map of previous version numbers to their corresponding protocol
1802
+ # arrays.
1803
+ # @return [Hash<String,Array<String>>]
1804
+ #
1805
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ProtocolsListData AWS API Documentation
1806
+ #
1807
+ class ProtocolsListData < Struct.new(
1808
+ :list_id,
1809
+ :list_name,
1810
+ :list_update_token,
1811
+ :create_time,
1812
+ :last_update_time,
1813
+ :protocols_list,
1814
+ :previous_protocols_list)
1815
+ SENSITIVE = []
1816
+ include Aws::Structure
1817
+ end
1818
+
1819
+ # Details of the AWS Firewall Manager protocols list.
1820
+ #
1821
+ # @!attribute [rw] list_arn
1822
+ # The Amazon Resource Name (ARN) of the specified protocols list.
1823
+ # @return [String]
1824
+ #
1825
+ # @!attribute [rw] list_id
1826
+ # The ID of the specified protocols list.
1827
+ # @return [String]
1828
+ #
1829
+ # @!attribute [rw] list_name
1830
+ # The name of the specified protocols list.
1831
+ # @return [String]
1832
+ #
1833
+ # @!attribute [rw] protocols_list
1834
+ # An array of protocols in the AWS Firewall Manager protocols list.
1835
+ # @return [Array<String>]
1836
+ #
1837
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ProtocolsListDataSummary AWS API Documentation
1838
+ #
1839
+ class ProtocolsListDataSummary < Struct.new(
1840
+ :list_arn,
1841
+ :list_id,
1842
+ :list_name,
1843
+ :protocols_list)
1844
+ SENSITIVE = []
1845
+ include Aws::Structure
1846
+ end
1847
+
1848
+ # @note When making an API call, you may pass PutAppsListRequest
1849
+ # data as a hash:
1850
+ #
1851
+ # {
1852
+ # apps_list: { # required
1853
+ # list_id: "ListId",
1854
+ # list_name: "ResourceName", # required
1855
+ # list_update_token: "UpdateToken",
1856
+ # create_time: Time.now,
1857
+ # last_update_time: Time.now,
1858
+ # apps_list: [ # required
1859
+ # {
1860
+ # app_name: "ResourceName", # required
1861
+ # protocol: "Protocol", # required
1862
+ # port: 1, # required
1863
+ # },
1864
+ # ],
1865
+ # previous_apps_list: {
1866
+ # "PreviousListVersion" => [
1867
+ # {
1868
+ # app_name: "ResourceName", # required
1869
+ # protocol: "Protocol", # required
1870
+ # port: 1, # required
1871
+ # },
1872
+ # ],
1873
+ # },
1874
+ # },
1875
+ # tag_list: [
1876
+ # {
1877
+ # key: "TagKey", # required
1878
+ # value: "TagValue", # required
1879
+ # },
1880
+ # ],
1881
+ # }
1882
+ #
1883
+ # @!attribute [rw] apps_list
1884
+ # The details of the AWS Firewall Manager applications list to be
1885
+ # created.
1886
+ # @return [Types::AppsListData]
1887
+ #
1888
+ # @!attribute [rw] tag_list
1889
+ # The tags associated with the resource.
1890
+ # @return [Array<Types::Tag>]
1891
+ #
1892
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutAppsListRequest AWS API Documentation
1893
+ #
1894
+ class PutAppsListRequest < Struct.new(
1895
+ :apps_list,
1896
+ :tag_list)
1897
+ SENSITIVE = []
1898
+ include Aws::Structure
1899
+ end
1900
+
1901
+ # @!attribute [rw] apps_list
1902
+ # The details of the AWS Firewall Manager applications list.
1903
+ # @return [Types::AppsListData]
1904
+ #
1905
+ # @!attribute [rw] apps_list_arn
1906
+ # The Amazon Resource Name (ARN) of the applications list.
1907
+ # @return [String]
1908
+ #
1909
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutAppsListResponse AWS API Documentation
1910
+ #
1911
+ class PutAppsListResponse < Struct.new(
1912
+ :apps_list,
1913
+ :apps_list_arn)
1914
+ SENSITIVE = []
1915
+ include Aws::Structure
1916
+ end
1917
+
1030
1918
  # @note When making an API call, you may pass PutNotificationChannelRequest
1031
1919
  # data as a hash:
1032
1920
  #
@@ -1063,7 +1951,7 @@ module Aws::FMS
1063
1951
  # policy_name: "ResourceName", # required
1064
1952
  # policy_update_token: "PolicyUpdateToken",
1065
1953
  # security_service_policy_data: { # required
1066
- # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT
1954
+ # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL
1067
1955
  # managed_service_data: "ManagedServiceData",
1068
1956
  # },
1069
1957
  # resource_type: "ResourceType", # required
@@ -1109,11 +1997,11 @@ module Aws::FMS
1109
1997
  end
1110
1998
 
1111
1999
  # @!attribute [rw] policy
1112
- # The details of the AWS Firewall Manager policy that was created.
2000
+ # The details of the AWS Firewall Manager policy.
1113
2001
  # @return [Types::Policy]
1114
2002
  #
1115
2003
  # @!attribute [rw] policy_arn
1116
- # The Amazon Resource Name (ARN) of the policy that was created.
2004
+ # The Amazon Resource Name (ARN) of the policy.
1117
2005
  # @return [String]
1118
2006
  #
1119
2007
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutPolicyResponse AWS API Documentation
@@ -1125,6 +2013,64 @@ module Aws::FMS
1125
2013
  include Aws::Structure
1126
2014
  end
1127
2015
 
2016
+ # @note When making an API call, you may pass PutProtocolsListRequest
2017
+ # data as a hash:
2018
+ #
2019
+ # {
2020
+ # protocols_list: { # required
2021
+ # list_id: "ListId",
2022
+ # list_name: "ResourceName", # required
2023
+ # list_update_token: "UpdateToken",
2024
+ # create_time: Time.now,
2025
+ # last_update_time: Time.now,
2026
+ # protocols_list: ["Protocol"], # required
2027
+ # previous_protocols_list: {
2028
+ # "PreviousListVersion" => ["Protocol"],
2029
+ # },
2030
+ # },
2031
+ # tag_list: [
2032
+ # {
2033
+ # key: "TagKey", # required
2034
+ # value: "TagValue", # required
2035
+ # },
2036
+ # ],
2037
+ # }
2038
+ #
2039
+ # @!attribute [rw] protocols_list
2040
+ # The details of the AWS Firewall Manager protocols list to be
2041
+ # created.
2042
+ # @return [Types::ProtocolsListData]
2043
+ #
2044
+ # @!attribute [rw] tag_list
2045
+ # The tags associated with the resource.
2046
+ # @return [Array<Types::Tag>]
2047
+ #
2048
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutProtocolsListRequest AWS API Documentation
2049
+ #
2050
+ class PutProtocolsListRequest < Struct.new(
2051
+ :protocols_list,
2052
+ :tag_list)
2053
+ SENSITIVE = []
2054
+ include Aws::Structure
2055
+ end
2056
+
2057
+ # @!attribute [rw] protocols_list
2058
+ # The details of the AWS Firewall Manager protocols list.
2059
+ # @return [Types::ProtocolsListData]
2060
+ #
2061
+ # @!attribute [rw] protocols_list_arn
2062
+ # The Amazon Resource Name (ARN) of the protocols list.
2063
+ # @return [String]
2064
+ #
2065
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutProtocolsListResponse AWS API Documentation
2066
+ #
2067
+ class PutProtocolsListResponse < Struct.new(
2068
+ :protocols_list,
2069
+ :protocols_list_arn)
2070
+ SENSITIVE = []
2071
+ include Aws::Structure
2072
+ end
2073
+
1128
2074
  # The specified resource was not found.
1129
2075
  #
1130
2076
  # @!attribute [rw] message
@@ -1177,6 +2123,131 @@ module Aws::FMS
1177
2123
  include Aws::Structure
1178
2124
  end
1179
2125
 
2126
+ # Violation detail based on resource type.
2127
+ #
2128
+ # @!attribute [rw] aws_vpc_security_group_violation
2129
+ # Violation details for security groups.
2130
+ # @return [Types::AwsVPCSecurityGroupViolation]
2131
+ #
2132
+ # @!attribute [rw] aws_ec2_network_interface_violation
2133
+ # Violation details for network interface.
2134
+ # @return [Types::AwsEc2NetworkInterfaceViolation]
2135
+ #
2136
+ # @!attribute [rw] aws_ec2_instance_violation
2137
+ # Violation details for an EC2 instance.
2138
+ # @return [Types::AwsEc2InstanceViolation]
2139
+ #
2140
+ # @!attribute [rw] network_firewall_missing_firewall_violation
2141
+ # Violation detail for an Network Firewall policy that indicates that
2142
+ # a subnet has no Firewall Manager managed firewall in its VPC.
2143
+ # @return [Types::NetworkFirewallMissingFirewallViolation]
2144
+ #
2145
+ # @!attribute [rw] network_firewall_missing_subnet_violation
2146
+ # Violation detail for an Network Firewall policy that indicates that
2147
+ # an Availability Zone is missing the expected Firewall Manager
2148
+ # managed subnet.
2149
+ # @return [Types::NetworkFirewallMissingSubnetViolation]
2150
+ #
2151
+ # @!attribute [rw] network_firewall_missing_expected_rt_violation
2152
+ # Violation detail for an Network Firewall policy that indicates that
2153
+ # a subnet is not associated with the expected Firewall Manager
2154
+ # managed route table.
2155
+ # @return [Types::NetworkFirewallMissingExpectedRTViolation]
2156
+ #
2157
+ # @!attribute [rw] network_firewall_policy_modified_violation
2158
+ # Violation detail for an Network Firewall policy that indicates that
2159
+ # a firewall policy in an individual account has been modified in a
2160
+ # way that makes it noncompliant. For example, the individual account
2161
+ # owner might have deleted a rule group, changed the priority of a
2162
+ # stateless rule group, or changed a policy default action.
2163
+ # @return [Types::NetworkFirewallPolicyModifiedViolation]
2164
+ #
2165
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ResourceViolation AWS API Documentation
2166
+ #
2167
+ class ResourceViolation < Struct.new(
2168
+ :aws_vpc_security_group_violation,
2169
+ :aws_ec2_network_interface_violation,
2170
+ :aws_ec2_instance_violation,
2171
+ :network_firewall_missing_firewall_violation,
2172
+ :network_firewall_missing_subnet_violation,
2173
+ :network_firewall_missing_expected_rt_violation,
2174
+ :network_firewall_policy_modified_violation)
2175
+ SENSITIVE = []
2176
+ include Aws::Structure
2177
+ end
2178
+
2179
+ # Remediation option for the rule specified in the `ViolationTarget`.
2180
+ #
2181
+ # @!attribute [rw] remediation_action_type
2182
+ # The remediation action that will be performed.
2183
+ # @return [String]
2184
+ #
2185
+ # @!attribute [rw] description
2186
+ # Brief description of the action that will be performed.
2187
+ # @return [String]
2188
+ #
2189
+ # @!attribute [rw] remediation_result
2190
+ # The final state of the rule specified in the `ViolationTarget` after
2191
+ # it is remediated.
2192
+ # @return [Types::SecurityGroupRuleDescription]
2193
+ #
2194
+ # @!attribute [rw] is_default_action
2195
+ # Indicates if the current action is the default action.
2196
+ # @return [Boolean]
2197
+ #
2198
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/SecurityGroupRemediationAction AWS API Documentation
2199
+ #
2200
+ class SecurityGroupRemediationAction < Struct.new(
2201
+ :remediation_action_type,
2202
+ :description,
2203
+ :remediation_result,
2204
+ :is_default_action)
2205
+ SENSITIVE = []
2206
+ include Aws::Structure
2207
+ end
2208
+
2209
+ # Describes a set of permissions for a security group rule.
2210
+ #
2211
+ # @!attribute [rw] ipv4_range
2212
+ # The IPv4 ranges for the security group rule.
2213
+ # @return [String]
2214
+ #
2215
+ # @!attribute [rw] ipv6_range
2216
+ # The IPv6 ranges for the security group rule.
2217
+ # @return [String]
2218
+ #
2219
+ # @!attribute [rw] prefix_list_id
2220
+ # The ID of the prefix list for the security group rule.
2221
+ # @return [String]
2222
+ #
2223
+ # @!attribute [rw] protocol
2224
+ # The IP protocol name (`tcp`, `udp`, `icmp`, `icmpv6`) or number.
2225
+ # @return [String]
2226
+ #
2227
+ # @!attribute [rw] from_port
2228
+ # The start of the port range for the TCP and UDP protocols, or an
2229
+ # ICMP/ICMPv6 type number. A value of `-1` indicates all ICMP/ICMPv6
2230
+ # types.
2231
+ # @return [Integer]
2232
+ #
2233
+ # @!attribute [rw] to_port
2234
+ # The end of the port range for the TCP and UDP protocols, or an
2235
+ # ICMP/ICMPv6 code. A value of `-1` indicates all ICMP/ICMPv6 codes.
2236
+ # @return [Integer]
2237
+ #
2238
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/SecurityGroupRuleDescription AWS API Documentation
2239
+ #
2240
+ class SecurityGroupRuleDescription < Struct.new(
2241
+ :ipv4_range,
2242
+ :ipv6_range,
2243
+ :prefix_list_id,
2244
+ :protocol,
2245
+ :from_port,
2246
+ :to_port)
2247
+ SENSITIVE = []
2248
+ include Aws::Structure
2249
+ end
2250
+
1180
2251
  # Details about the security service that is being used to protect the
1181
2252
  # resources.
1182
2253
  #
@@ -1184,7 +2255,7 @@ module Aws::FMS
1184
2255
  # data as a hash:
1185
2256
  #
1186
2257
  # {
1187
- # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT
2258
+ # type: "WAF", # required, accepts WAF, WAFV2, SHIELD_ADVANCED, SECURITY_GROUPS_COMMON, SECURITY_GROUPS_CONTENT_AUDIT, SECURITY_GROUPS_USAGE_AUDIT, NETWORK_FIREWALL
1188
2259
  # managed_service_data: "ManagedServiceData",
1189
2260
  # }
1190
2261
  #
@@ -1203,29 +2274,36 @@ module Aws::FMS
1203
2274
  # JSON format. For service type `SHIELD_ADVANCED`, this is an empty
1204
2275
  # string.
1205
2276
  #
2277
+ # * Example: `NETWORK_FIREWALL`
2278
+ #
2279
+ # `"\{"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"]\}
2280
+ # \}"`
2281
+ #
1206
2282
  # * Example: `WAFV2`
1207
2283
  #
1208
- # `"ManagedServiceData":
1209
- # "\{"type":"WAFV2","defaultAction":\{"type":"ALLOW"\},"preProcessRuleGroups":[\{"managedRuleGroupIdentifier":null,"ruleGroupArn":"rulegrouparn","overrideAction":\{"type":"COUNT"\},"excludedRules":[\{"name":"EntityName"\}],"ruleGroupType":"RuleGroup"\}],"postProcessRuleGroups":[\{"managedRuleGroupIdentifier":\{"managedRuleGroupName":"AWSManagedRulesAdminProtectionRuleSet","vendor":"AWS"\},"ruleGroupArn":"rulegrouparn","overrideAction":\{"type":"NONE"\},"excludedRules":[],"ruleGroupType":"ManagedRuleGroup"\}],"overrideCustomerWebACLAssociation":false\}"`
2284
+ # `"\{"type":"WAFV2","preProcessRuleGroups":[\{"ruleGroupArn":null,"overrideAction":\{"type":"NONE"\},"managedRuleGroupIdentifier":\{"version":null,"vendorName":"AWS","managedRuleGroupName":"AWSManagedRulesAmazonIpReputationList"\},"ruleGroupType":"ManagedRuleGroup","excludeRules":[]\}],"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"\}]\}\}"`
2285
+ #
2286
+ # In the `loggingConfiguration`, you can specify one
2287
+ # `logDestinationConfigs`, you can optionally provide up to 20
2288
+ # `redactedFields`, and the `RedactedFieldType` must be one of
2289
+ # `URI`, `QUERY_STRING`, `HEADER`, or `METHOD`.
1210
2290
  #
1211
2291
  # * Example: `WAF Classic`
1212
2292
  #
1213
- # `"ManagedServiceData": "\{"type": "WAF", "ruleGroups":
1214
- # [\{"id": "12345678-1bcd-9012-efga-0987654321ab",
2293
+ # `"\{"type": "WAF", "ruleGroups":
2294
+ # [\{"id":"12345678-1bcd-9012-efga-0987654321ab",
1215
2295
  # "overrideAction" : \{"type": "COUNT"\}\}],
1216
- # "defaultAction": \{"type": "BLOCK"\}\}`
2296
+ # "defaultAction": \{"type": "BLOCK"\}\}"`
1217
2297
  #
1218
2298
  # * Example: `SECURITY_GROUPS_COMMON`
1219
2299
  #
1220
- # `"SecurityServicePolicyData":\{"Type":"SECURITY_GROUPS_COMMON","ManagedServiceData":"\{"type":"SECURITY_GROUPS_COMMON","revertManualSecurityGroupChanges":false,"exclusiveResourceSecurityGroupManagement":false,
2300
+ # `"\{"type":"SECURITY_GROUPS_COMMON","revertManualSecurityGroupChanges":false,"exclusiveResourceSecurityGroupManagement":false,
1221
2301
  # "applyToAllEC2InstanceENIs":false,"securityGroups":[\{"id":"
1222
- # sg-000e55995d61a06bd"\}]\}"\},"RemediationEnabled":false,"ResourceType":"AWS::EC2::NetworkInterface"\}`
2302
+ # sg-000e55995d61a06bd"\}]\}"`
1223
2303
  #
1224
2304
  # * Example: `SECURITY_GROUPS_CONTENT_AUDIT`
1225
2305
  #
1226
- # `"SecurityServicePolicyData":\{"Type":"SECURITY_GROUPS_CONTENT_AUDIT","ManagedServiceData":"\{"type":"SECURITY_GROUPS_CONTENT_AUDIT","securityGroups":[\{"id":"
1227
- # sg-000e55995d61a06bd
1228
- # "\}],"securityGroupAction":\{"type":"ALLOW"\}\}"\},"RemediationEnabled":false,"ResourceType":"AWS::EC2::NetworkInterface"\}`
2306
+ # `"\{"type":"SECURITY_GROUPS_CONTENT_AUDIT","securityGroups":[\{"id":"sg-000e55995d61a06bd"\}],"securityGroupAction":\{"type":"ALLOW"\}\}"`
1229
2307
  #
1230
2308
  # The security group action for content audit can be `ALLOW` or
1231
2309
  # `DENY`. For `ALLOW`, all in-scope security group rules must be
@@ -1236,8 +2314,7 @@ module Aws::FMS
1236
2314
  #
1237
2315
  # * Example: `SECURITY_GROUPS_USAGE_AUDIT`
1238
2316
  #
1239
- # `"SecurityServicePolicyData":\{"Type":"SECURITY_GROUPS_USAGE_AUDIT","ManagedServiceData":"\{"type":"SECURITY_GROUPS_USAGE_AUDIT","deleteUnusedSecurityGroups":true,"coalesceRedundantSecurityGroups":true\}"\},"RemediationEnabled":false,"Resou
1240
- # rceType":"AWS::EC2::SecurityGroup"\}`
2317
+ # `"\{"type":"SECURITY_GROUPS_USAGE_AUDIT","deleteUnusedSecurityGroups":true,"coalesceRedundantSecurityGroups":true\}"`
1241
2318
  # @return [String]
1242
2319
  #
1243
2320
  # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/SecurityServicePolicyData AWS API Documentation
@@ -1249,6 +2326,53 @@ module Aws::FMS
1249
2326
  include Aws::Structure
1250
2327
  end
1251
2328
 
2329
+ # AWS Network Firewall stateful rule group, used in a
2330
+ # NetworkFirewallPolicyDescription.
2331
+ #
2332
+ # @!attribute [rw] rule_group_name
2333
+ # The name of the rule group.
2334
+ # @return [String]
2335
+ #
2336
+ # @!attribute [rw] resource_id
2337
+ # The resource ID of the rule group.
2338
+ # @return [String]
2339
+ #
2340
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/StatefulRuleGroup AWS API Documentation
2341
+ #
2342
+ class StatefulRuleGroup < Struct.new(
2343
+ :rule_group_name,
2344
+ :resource_id)
2345
+ SENSITIVE = []
2346
+ include Aws::Structure
2347
+ end
2348
+
2349
+ # AWS Network Firewall stateless rule group, used in a
2350
+ # NetworkFirewallPolicyDescription.
2351
+ #
2352
+ # @!attribute [rw] rule_group_name
2353
+ # The name of the rule group.
2354
+ # @return [String]
2355
+ #
2356
+ # @!attribute [rw] resource_id
2357
+ # The resource ID of the rule group.
2358
+ # @return [String]
2359
+ #
2360
+ # @!attribute [rw] priority
2361
+ # The priority of the rule group. AWS Network Firewall evaluates the
2362
+ # stateless rule groups in a firewall policy starting from the lowest
2363
+ # priority setting.
2364
+ # @return [Integer]
2365
+ #
2366
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/StatelessRuleGroup AWS API Documentation
2367
+ #
2368
+ class StatelessRuleGroup < Struct.new(
2369
+ :rule_group_name,
2370
+ :resource_id,
2371
+ :priority)
2372
+ SENSITIVE = []
2373
+ include Aws::Structure
2374
+ end
2375
+
1252
2376
  # A collection of key:value pairs associated with an AWS resource. The
1253
2377
  # key:value pair can be anything you define. Typically, the tag key
1254
2378
  # represents a category (such as "environment") and the tag value
@@ -1299,9 +2423,9 @@ module Aws::FMS
1299
2423
  # }
1300
2424
  #
1301
2425
  # @!attribute [rw] resource_arn
1302
- # The Amazon Resource Name (ARN) of the resource. The Firewall Manager
1303
- # policy is the only AWS resource that supports tagging, so this ARN
1304
- # is a policy ARN.
2426
+ # The Amazon Resource Name (ARN) of the resource to return tags for.
2427
+ # The AWS Firewall Manager resources that support tagging are
2428
+ # policies, applications lists, and protocols lists.
1305
2429
  # @return [String]
1306
2430
  #
1307
2431
  # @!attribute [rw] tag_list
@@ -1330,9 +2454,9 @@ module Aws::FMS
1330
2454
  # }
1331
2455
  #
1332
2456
  # @!attribute [rw] resource_arn
1333
- # The Amazon Resource Name (ARN) of the resource. The Firewall Manager
1334
- # policy is the only AWS resource that supports tagging, so this ARN
1335
- # is a policy ARN.
2457
+ # The Amazon Resource Name (ARN) of the resource to return tags for.
2458
+ # The AWS Firewall Manager resources that support tagging are
2459
+ # policies, applications lists, and protocols lists.
1336
2460
  # @return [String]
1337
2461
  #
1338
2462
  # @!attribute [rw] tag_keys
@@ -1352,5 +2476,51 @@ module Aws::FMS
1352
2476
  #
1353
2477
  class UntagResourceResponse < Aws::EmptyStructure; end
1354
2478
 
2479
+ # Violations for a resource based on the specified AWS Firewall Manager
2480
+ # policy and AWS account.
2481
+ #
2482
+ # @!attribute [rw] policy_id
2483
+ # The ID of the AWS Firewall Manager policy that the violation details
2484
+ # were requested for.
2485
+ # @return [String]
2486
+ #
2487
+ # @!attribute [rw] member_account
2488
+ # The AWS account that the violation details were requested for.
2489
+ # @return [String]
2490
+ #
2491
+ # @!attribute [rw] resource_id
2492
+ # The resource ID that the violation details were requested for.
2493
+ # @return [String]
2494
+ #
2495
+ # @!attribute [rw] resource_type
2496
+ # The resource type that the violation details were requested for.
2497
+ # @return [String]
2498
+ #
2499
+ # @!attribute [rw] resource_violations
2500
+ # List of violations for the requested resource.
2501
+ # @return [Array<Types::ResourceViolation>]
2502
+ #
2503
+ # @!attribute [rw] resource_tags
2504
+ # The `ResourceTag` objects associated with the resource.
2505
+ # @return [Array<Types::Tag>]
2506
+ #
2507
+ # @!attribute [rw] resource_description
2508
+ # Brief description for the requested resource.
2509
+ # @return [String]
2510
+ #
2511
+ # @see http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ViolationDetail AWS API Documentation
2512
+ #
2513
+ class ViolationDetail < Struct.new(
2514
+ :policy_id,
2515
+ :member_account,
2516
+ :resource_id,
2517
+ :resource_type,
2518
+ :resource_violations,
2519
+ :resource_tags,
2520
+ :resource_description)
2521
+ SENSITIVE = []
2522
+ include Aws::Structure
2523
+ end
2524
+
1355
2525
  end
1356
2526
  end