aws-sdk-fms 1.52.0 → 1.54.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,6 +14,7 @@ module Aws::FMS
14
14
  include Seahorse::Model
15
15
 
16
16
  AWSAccountId = Shapes::StringShape.new(name: 'AWSAccountId')
17
+ AWSAccountIdList = Shapes::ListShape.new(name: 'AWSAccountIdList')
17
18
  AccountRoleStatus = Shapes::StringShape.new(name: 'AccountRoleStatus')
18
19
  ActionTarget = Shapes::StructureShape.new(name: 'ActionTarget')
19
20
  App = Shapes::StructureShape.new(name: 'App')
@@ -28,7 +29,12 @@ module Aws::FMS
28
29
  AwsEc2NetworkInterfaceViolation = Shapes::StructureShape.new(name: 'AwsEc2NetworkInterfaceViolation')
29
30
  AwsEc2NetworkInterfaceViolations = Shapes::ListShape.new(name: 'AwsEc2NetworkInterfaceViolations')
30
31
  AwsVPCSecurityGroupViolation = Shapes::StructureShape.new(name: 'AwsVPCSecurityGroupViolation')
32
+ Base62Id = Shapes::StringShape.new(name: 'Base62Id')
31
33
  BasicInteger = Shapes::IntegerShape.new(name: 'BasicInteger')
34
+ BatchAssociateResourceRequest = Shapes::StructureShape.new(name: 'BatchAssociateResourceRequest')
35
+ BatchAssociateResourceResponse = Shapes::StructureShape.new(name: 'BatchAssociateResourceResponse')
36
+ BatchDisassociateResourceRequest = Shapes::StructureShape.new(name: 'BatchDisassociateResourceRequest')
37
+ BatchDisassociateResourceResponse = Shapes::StructureShape.new(name: 'BatchDisassociateResourceResponse')
32
38
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
33
39
  CIDR = Shapes::StringShape.new(name: 'CIDR')
34
40
  ComplianceViolator = Shapes::StructureShape.new(name: 'ComplianceViolator')
@@ -42,12 +48,16 @@ module Aws::FMS
42
48
  DeleteNotificationChannelRequest = Shapes::StructureShape.new(name: 'DeleteNotificationChannelRequest')
43
49
  DeletePolicyRequest = Shapes::StructureShape.new(name: 'DeletePolicyRequest')
44
50
  DeleteProtocolsListRequest = Shapes::StructureShape.new(name: 'DeleteProtocolsListRequest')
51
+ DeleteResourceSetRequest = Shapes::StructureShape.new(name: 'DeleteResourceSetRequest')
45
52
  DependentServiceName = Shapes::StringShape.new(name: 'DependentServiceName')
53
+ Description = Shapes::StringShape.new(name: 'Description')
46
54
  DestinationType = Shapes::StringShape.new(name: 'DestinationType')
47
55
  DetailedInfo = Shapes::StringShape.new(name: 'DetailedInfo')
48
56
  DisassociateAdminAccountRequest = Shapes::StructureShape.new(name: 'DisassociateAdminAccountRequest')
49
57
  DisassociateThirdPartyFirewallRequest = Shapes::StructureShape.new(name: 'DisassociateThirdPartyFirewallRequest')
50
58
  DisassociateThirdPartyFirewallResponse = Shapes::StructureShape.new(name: 'DisassociateThirdPartyFirewallResponse')
59
+ DiscoveredResource = Shapes::StructureShape.new(name: 'DiscoveredResource')
60
+ DiscoveredResourceList = Shapes::ListShape.new(name: 'DiscoveredResourceList')
51
61
  DnsDuplicateRuleGroupViolation = Shapes::StructureShape.new(name: 'DnsDuplicateRuleGroupViolation')
52
62
  DnsRuleGroupLimitExceededViolation = Shapes::StructureShape.new(name: 'DnsRuleGroupLimitExceededViolation')
53
63
  DnsRuleGroupPriorities = Shapes::ListShape.new(name: 'DnsRuleGroupPriorities')
@@ -66,6 +76,9 @@ module Aws::FMS
66
76
  ExpectedRoute = Shapes::StructureShape.new(name: 'ExpectedRoute')
67
77
  ExpectedRoutes = Shapes::ListShape.new(name: 'ExpectedRoutes')
68
78
  FMSPolicyUpdateFirewallCreationConfigAction = Shapes::StructureShape.new(name: 'FMSPolicyUpdateFirewallCreationConfigAction')
79
+ FailedItem = Shapes::StructureShape.new(name: 'FailedItem')
80
+ FailedItemList = Shapes::ListShape.new(name: 'FailedItemList')
81
+ FailedItemReason = Shapes::StringShape.new(name: 'FailedItemReason')
69
82
  FirewallDeploymentModel = Shapes::StringShape.new(name: 'FirewallDeploymentModel')
70
83
  FirewallPolicyId = Shapes::StringShape.new(name: 'FirewallPolicyId')
71
84
  FirewallPolicyName = Shapes::StringShape.new(name: 'FirewallPolicyName')
@@ -85,11 +98,15 @@ module Aws::FMS
85
98
  GetProtectionStatusResponse = Shapes::StructureShape.new(name: 'GetProtectionStatusResponse')
86
99
  GetProtocolsListRequest = Shapes::StructureShape.new(name: 'GetProtocolsListRequest')
87
100
  GetProtocolsListResponse = Shapes::StructureShape.new(name: 'GetProtocolsListResponse')
101
+ GetResourceSetRequest = Shapes::StructureShape.new(name: 'GetResourceSetRequest')
102
+ GetResourceSetResponse = Shapes::StructureShape.new(name: 'GetResourceSetResponse')
88
103
  GetThirdPartyFirewallAssociationStatusRequest = Shapes::StructureShape.new(name: 'GetThirdPartyFirewallAssociationStatusRequest')
89
104
  GetThirdPartyFirewallAssociationStatusResponse = Shapes::StructureShape.new(name: 'GetThirdPartyFirewallAssociationStatusResponse')
90
105
  GetViolationDetailsRequest = Shapes::StructureShape.new(name: 'GetViolationDetailsRequest')
91
106
  GetViolationDetailsResponse = Shapes::StructureShape.new(name: 'GetViolationDetailsResponse')
92
107
  IPPortNumber = Shapes::IntegerShape.new(name: 'IPPortNumber')
108
+ Identifier = Shapes::StringShape.new(name: 'Identifier')
109
+ IdentifierList = Shapes::ListShape.new(name: 'IdentifierList')
93
110
  InternalErrorException = Shapes::StructureShape.new(name: 'InternalErrorException')
94
111
  InvalidInputException = Shapes::StructureShape.new(name: 'InvalidInputException')
95
112
  InvalidOperationException = Shapes::StructureShape.new(name: 'InvalidOperationException')
@@ -102,6 +119,8 @@ module Aws::FMS
102
119
  ListAppsListsResponse = Shapes::StructureShape.new(name: 'ListAppsListsResponse')
103
120
  ListComplianceStatusRequest = Shapes::StructureShape.new(name: 'ListComplianceStatusRequest')
104
121
  ListComplianceStatusResponse = Shapes::StructureShape.new(name: 'ListComplianceStatusResponse')
122
+ ListDiscoveredResourcesRequest = Shapes::StructureShape.new(name: 'ListDiscoveredResourcesRequest')
123
+ ListDiscoveredResourcesResponse = Shapes::StructureShape.new(name: 'ListDiscoveredResourcesResponse')
105
124
  ListId = Shapes::StringShape.new(name: 'ListId')
106
125
  ListMemberAccountsRequest = Shapes::StructureShape.new(name: 'ListMemberAccountsRequest')
107
126
  ListMemberAccountsResponse = Shapes::StructureShape.new(name: 'ListMemberAccountsResponse')
@@ -109,6 +128,10 @@ module Aws::FMS
109
128
  ListPoliciesResponse = Shapes::StructureShape.new(name: 'ListPoliciesResponse')
110
129
  ListProtocolsListsRequest = Shapes::StructureShape.new(name: 'ListProtocolsListsRequest')
111
130
  ListProtocolsListsResponse = Shapes::StructureShape.new(name: 'ListProtocolsListsResponse')
131
+ ListResourceSetResourcesRequest = Shapes::StructureShape.new(name: 'ListResourceSetResourcesRequest')
132
+ ListResourceSetResourcesResponse = Shapes::StructureShape.new(name: 'ListResourceSetResourcesResponse')
133
+ ListResourceSetsRequest = Shapes::StructureShape.new(name: 'ListResourceSetsRequest')
134
+ ListResourceSetsResponse = Shapes::StructureShape.new(name: 'ListResourceSetsResponse')
112
135
  ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
113
136
  ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
114
137
  ListThirdPartyFirewallFirewallPoliciesRequest = Shapes::StructureShape.new(name: 'ListThirdPartyFirewallFirewallPoliciesRequest')
@@ -116,6 +139,7 @@ module Aws::FMS
116
139
  ManagedServiceData = Shapes::StringShape.new(name: 'ManagedServiceData')
117
140
  MarketplaceSubscriptionOnboardingStatus = Shapes::StringShape.new(name: 'MarketplaceSubscriptionOnboardingStatus')
118
141
  MemberAccounts = Shapes::ListShape.new(name: 'MemberAccounts')
142
+ Name = Shapes::StringShape.new(name: 'Name')
119
143
  NetworkFirewallAction = Shapes::StringShape.new(name: 'NetworkFirewallAction')
120
144
  NetworkFirewallActionList = Shapes::ListShape.new(name: 'NetworkFirewallActionList')
121
145
  NetworkFirewallBlackHoleRouteDetectedViolation = Shapes::StructureShape.new(name: 'NetworkFirewallBlackHoleRouteDetectedViolation')
@@ -168,17 +192,26 @@ module Aws::FMS
168
192
  PutPolicyResponse = Shapes::StructureShape.new(name: 'PutPolicyResponse')
169
193
  PutProtocolsListRequest = Shapes::StructureShape.new(name: 'PutProtocolsListRequest')
170
194
  PutProtocolsListResponse = Shapes::StructureShape.new(name: 'PutProtocolsListResponse')
195
+ PutResourceSetRequest = Shapes::StructureShape.new(name: 'PutResourceSetRequest')
196
+ PutResourceSetResponse = Shapes::StructureShape.new(name: 'PutResourceSetResponse')
171
197
  ReferenceRule = Shapes::StringShape.new(name: 'ReferenceRule')
172
198
  RemediationAction = Shapes::StructureShape.new(name: 'RemediationAction')
173
199
  RemediationActionDescription = Shapes::StringShape.new(name: 'RemediationActionDescription')
174
200
  RemediationActionType = Shapes::StringShape.new(name: 'RemediationActionType')
175
201
  RemediationActionWithOrder = Shapes::StructureShape.new(name: 'RemediationActionWithOrder')
202
+ Resource = Shapes::StructureShape.new(name: 'Resource')
176
203
  ResourceArn = Shapes::StringShape.new(name: 'ResourceArn')
177
204
  ResourceCount = Shapes::IntegerShape.new(name: 'ResourceCount')
205
+ ResourceDescription = Shapes::StringShape.new(name: 'ResourceDescription')
178
206
  ResourceId = Shapes::StringShape.new(name: 'ResourceId')
179
207
  ResourceIdList = Shapes::ListShape.new(name: 'ResourceIdList')
208
+ ResourceList = Shapes::ListShape.new(name: 'ResourceList')
180
209
  ResourceName = Shapes::StringShape.new(name: 'ResourceName')
181
210
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
211
+ ResourceSet = Shapes::StructureShape.new(name: 'ResourceSet')
212
+ ResourceSetIds = Shapes::ListShape.new(name: 'ResourceSetIds')
213
+ ResourceSetSummary = Shapes::StructureShape.new(name: 'ResourceSetSummary')
214
+ ResourceSetSummaryList = Shapes::ListShape.new(name: 'ResourceSetSummaryList')
182
215
  ResourceTag = Shapes::StructureShape.new(name: 'ResourceTag')
183
216
  ResourceTagKey = Shapes::StringShape.new(name: 'ResourceTagKey')
184
217
  ResourceTagValue = Shapes::StringShape.new(name: 'ResourceTagValue')
@@ -228,6 +261,8 @@ module Aws::FMS
228
261
  ViolationReason = Shapes::StringShape.new(name: 'ViolationReason')
229
262
  ViolationTarget = Shapes::StringShape.new(name: 'ViolationTarget')
230
263
 
264
+ AWSAccountIdList.member = Shapes::ShapeRef.new(shape: AWSAccountId)
265
+
231
266
  ActionTarget.add_member(:resource_id, Shapes::ShapeRef.new(shape: ResourceId, location_name: "ResourceId"))
232
267
  ActionTarget.add_member(:description, Shapes::ShapeRef.new(shape: LengthBoundedString, location_name: "Description"))
233
268
  ActionTarget.struct_class = Types::ActionTarget
@@ -281,6 +316,22 @@ module Aws::FMS
281
316
  AwsVPCSecurityGroupViolation.add_member(:possible_security_group_remediation_actions, Shapes::ShapeRef.new(shape: SecurityGroupRemediationActions, location_name: "PossibleSecurityGroupRemediationActions"))
282
317
  AwsVPCSecurityGroupViolation.struct_class = Types::AwsVPCSecurityGroupViolation
283
318
 
319
+ BatchAssociateResourceRequest.add_member(:resource_set_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location_name: "ResourceSetIdentifier"))
320
+ BatchAssociateResourceRequest.add_member(:items, Shapes::ShapeRef.new(shape: IdentifierList, required: true, location_name: "Items"))
321
+ BatchAssociateResourceRequest.struct_class = Types::BatchAssociateResourceRequest
322
+
323
+ BatchAssociateResourceResponse.add_member(:resource_set_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location_name: "ResourceSetIdentifier"))
324
+ BatchAssociateResourceResponse.add_member(:failed_items, Shapes::ShapeRef.new(shape: FailedItemList, required: true, location_name: "FailedItems"))
325
+ BatchAssociateResourceResponse.struct_class = Types::BatchAssociateResourceResponse
326
+
327
+ BatchDisassociateResourceRequest.add_member(:resource_set_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location_name: "ResourceSetIdentifier"))
328
+ BatchDisassociateResourceRequest.add_member(:items, Shapes::ShapeRef.new(shape: IdentifierList, required: true, location_name: "Items"))
329
+ BatchDisassociateResourceRequest.struct_class = Types::BatchDisassociateResourceRequest
330
+
331
+ BatchDisassociateResourceResponse.add_member(:resource_set_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location_name: "ResourceSetIdentifier"))
332
+ BatchDisassociateResourceResponse.add_member(:failed_items, Shapes::ShapeRef.new(shape: FailedItemList, required: true, location_name: "FailedItems"))
333
+ BatchDisassociateResourceResponse.struct_class = Types::BatchDisassociateResourceResponse
334
+
284
335
  ComplianceViolator.add_member(:resource_id, Shapes::ShapeRef.new(shape: ResourceId, location_name: "ResourceId"))
285
336
  ComplianceViolator.add_member(:violation_reason, Shapes::ShapeRef.new(shape: ViolationReason, location_name: "ViolationReason"))
286
337
  ComplianceViolator.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "ResourceType"))
@@ -309,6 +360,9 @@ module Aws::FMS
309
360
  DeleteProtocolsListRequest.add_member(:list_id, Shapes::ShapeRef.new(shape: ListId, required: true, location_name: "ListId"))
310
361
  DeleteProtocolsListRequest.struct_class = Types::DeleteProtocolsListRequest
311
362
 
363
+ DeleteResourceSetRequest.add_member(:identifier, Shapes::ShapeRef.new(shape: Base62Id, required: true, location_name: "Identifier"))
364
+ DeleteResourceSetRequest.struct_class = Types::DeleteResourceSetRequest
365
+
312
366
  DisassociateAdminAccountRequest.struct_class = Types::DisassociateAdminAccountRequest
313
367
 
314
368
  DisassociateThirdPartyFirewallRequest.add_member(:third_party_firewall, Shapes::ShapeRef.new(shape: ThirdPartyFirewall, required: true, location_name: "ThirdPartyFirewall"))
@@ -317,6 +371,14 @@ module Aws::FMS
317
371
  DisassociateThirdPartyFirewallResponse.add_member(:third_party_firewall_status, Shapes::ShapeRef.new(shape: ThirdPartyFirewallAssociationStatus, location_name: "ThirdPartyFirewallStatus"))
318
372
  DisassociateThirdPartyFirewallResponse.struct_class = Types::DisassociateThirdPartyFirewallResponse
319
373
 
374
+ DiscoveredResource.add_member(:uri, Shapes::ShapeRef.new(shape: Identifier, location_name: "URI"))
375
+ DiscoveredResource.add_member(:account_id, Shapes::ShapeRef.new(shape: AWSAccountId, location_name: "AccountId"))
376
+ DiscoveredResource.add_member(:type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "Type"))
377
+ DiscoveredResource.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, location_name: "Name"))
378
+ DiscoveredResource.struct_class = Types::DiscoveredResource
379
+
380
+ DiscoveredResourceList.member = Shapes::ShapeRef.new(shape: DiscoveredResource)
381
+
320
382
  DnsDuplicateRuleGroupViolation.add_member(:violation_target, Shapes::ShapeRef.new(shape: ViolationTarget, location_name: "ViolationTarget"))
321
383
  DnsDuplicateRuleGroupViolation.add_member(:violation_target_description, Shapes::ShapeRef.new(shape: LengthBoundedString, location_name: "ViolationTargetDescription"))
322
384
  DnsDuplicateRuleGroupViolation.struct_class = Types::DnsDuplicateRuleGroupViolation
@@ -400,6 +462,12 @@ module Aws::FMS
400
462
  FMSPolicyUpdateFirewallCreationConfigAction.add_member(:firewall_creation_config, Shapes::ShapeRef.new(shape: ManagedServiceData, location_name: "FirewallCreationConfig"))
401
463
  FMSPolicyUpdateFirewallCreationConfigAction.struct_class = Types::FMSPolicyUpdateFirewallCreationConfigAction
402
464
 
465
+ FailedItem.add_member(:uri, Shapes::ShapeRef.new(shape: Identifier, location_name: "URI"))
466
+ FailedItem.add_member(:reason, Shapes::ShapeRef.new(shape: FailedItemReason, location_name: "Reason"))
467
+ FailedItem.struct_class = Types::FailedItem
468
+
469
+ FailedItemList.member = Shapes::ShapeRef.new(shape: FailedItem)
470
+
403
471
  FirewallSubnetIsOutOfScopeViolation.add_member(:firewall_subnet_id, Shapes::ShapeRef.new(shape: ResourceId, location_name: "FirewallSubnetId"))
404
472
  FirewallSubnetIsOutOfScopeViolation.add_member(:vpc_id, Shapes::ShapeRef.new(shape: ResourceId, location_name: "VpcId"))
405
473
  FirewallSubnetIsOutOfScopeViolation.add_member(:subnet_availability_zone, Shapes::ShapeRef.new(shape: LengthBoundedString, location_name: "SubnetAvailabilityZone"))
@@ -469,6 +537,13 @@ module Aws::FMS
469
537
  GetProtocolsListResponse.add_member(:protocols_list_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ProtocolsListArn"))
470
538
  GetProtocolsListResponse.struct_class = Types::GetProtocolsListResponse
471
539
 
540
+ GetResourceSetRequest.add_member(:identifier, Shapes::ShapeRef.new(shape: Base62Id, required: true, location_name: "Identifier"))
541
+ GetResourceSetRequest.struct_class = Types::GetResourceSetRequest
542
+
543
+ GetResourceSetResponse.add_member(:resource_set, Shapes::ShapeRef.new(shape: ResourceSet, required: true, location_name: "ResourceSet"))
544
+ GetResourceSetResponse.add_member(:resource_set_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceSetArn"))
545
+ GetResourceSetResponse.struct_class = Types::GetResourceSetResponse
546
+
472
547
  GetThirdPartyFirewallAssociationStatusRequest.add_member(:third_party_firewall, Shapes::ShapeRef.new(shape: ThirdPartyFirewall, required: true, location_name: "ThirdPartyFirewall"))
473
548
  GetThirdPartyFirewallAssociationStatusRequest.struct_class = Types::GetThirdPartyFirewallAssociationStatusRequest
474
549
 
@@ -485,6 +560,8 @@ module Aws::FMS
485
560
  GetViolationDetailsResponse.add_member(:violation_detail, Shapes::ShapeRef.new(shape: ViolationDetail, location_name: "ViolationDetail"))
486
561
  GetViolationDetailsResponse.struct_class = Types::GetViolationDetailsResponse
487
562
 
563
+ IdentifierList.member = Shapes::ShapeRef.new(shape: Identifier)
564
+
488
565
  InternalErrorException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
489
566
  InternalErrorException.struct_class = Types::InternalErrorException
490
567
 
@@ -523,6 +600,16 @@ module Aws::FMS
523
600
  ListComplianceStatusResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
524
601
  ListComplianceStatusResponse.struct_class = Types::ListComplianceStatusResponse
525
602
 
603
+ ListDiscoveredResourcesRequest.add_member(:member_account_ids, Shapes::ShapeRef.new(shape: AWSAccountIdList, required: true, location_name: "MemberAccountIds"))
604
+ ListDiscoveredResourcesRequest.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, required: true, location_name: "ResourceType"))
605
+ ListDiscoveredResourcesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: PaginationMaxResults, location_name: "MaxResults"))
606
+ ListDiscoveredResourcesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
607
+ ListDiscoveredResourcesRequest.struct_class = Types::ListDiscoveredResourcesRequest
608
+
609
+ ListDiscoveredResourcesResponse.add_member(:items, Shapes::ShapeRef.new(shape: DiscoveredResourceList, location_name: "Items"))
610
+ ListDiscoveredResourcesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
611
+ ListDiscoveredResourcesResponse.struct_class = Types::ListDiscoveredResourcesResponse
612
+
526
613
  ListMemberAccountsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
527
614
  ListMemberAccountsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: PaginationMaxResults, location_name: "MaxResults"))
528
615
  ListMemberAccountsRequest.struct_class = Types::ListMemberAccountsRequest
@@ -548,6 +635,23 @@ module Aws::FMS
548
635
  ListProtocolsListsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
549
636
  ListProtocolsListsResponse.struct_class = Types::ListProtocolsListsResponse
550
637
 
638
+ ListResourceSetResourcesRequest.add_member(:identifier, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "Identifier"))
639
+ ListResourceSetResourcesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: PaginationMaxResults, location_name: "MaxResults"))
640
+ ListResourceSetResourcesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
641
+ ListResourceSetResourcesRequest.struct_class = Types::ListResourceSetResourcesRequest
642
+
643
+ ListResourceSetResourcesResponse.add_member(:items, Shapes::ShapeRef.new(shape: ResourceList, required: true, location_name: "Items"))
644
+ ListResourceSetResourcesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
645
+ ListResourceSetResourcesResponse.struct_class = Types::ListResourceSetResourcesResponse
646
+
647
+ ListResourceSetsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
648
+ ListResourceSetsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: PaginationMaxResults, location_name: "MaxResults"))
649
+ ListResourceSetsRequest.struct_class = Types::ListResourceSetsRequest
650
+
651
+ ListResourceSetsResponse.add_member(:resource_sets, Shapes::ShapeRef.new(shape: ResourceSetSummaryList, location_name: "ResourceSets"))
652
+ ListResourceSetsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
653
+ ListResourceSetsResponse.struct_class = Types::ListResourceSetsResponse
654
+
551
655
  ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
552
656
  ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest
553
657
 
@@ -685,6 +789,8 @@ module Aws::FMS
685
789
  Policy.add_member(:delete_unused_fm_managed_resources, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeleteUnusedFMManagedResources"))
686
790
  Policy.add_member(:include_map, Shapes::ShapeRef.new(shape: CustomerPolicyScopeMap, location_name: "IncludeMap"))
687
791
  Policy.add_member(:exclude_map, Shapes::ShapeRef.new(shape: CustomerPolicyScopeMap, location_name: "ExcludeMap"))
792
+ Policy.add_member(:resource_set_ids, Shapes::ShapeRef.new(shape: ResourceSetIds, location_name: "ResourceSetIds"))
793
+ Policy.add_member(:policy_description, Shapes::ShapeRef.new(shape: ResourceDescription, location_name: "PolicyDescription"))
688
794
  Policy.struct_class = Types::Policy
689
795
 
690
796
  PolicyComplianceDetail.add_member(:policy_owner, Shapes::ShapeRef.new(shape: AWSAccountId, location_name: "PolicyOwner"))
@@ -786,6 +892,14 @@ module Aws::FMS
786
892
  PutProtocolsListResponse.add_member(:protocols_list_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ProtocolsListArn"))
787
893
  PutProtocolsListResponse.struct_class = Types::PutProtocolsListResponse
788
894
 
895
+ PutResourceSetRequest.add_member(:resource_set, Shapes::ShapeRef.new(shape: ResourceSet, required: true, location_name: "ResourceSet"))
896
+ PutResourceSetRequest.add_member(:tag_list, Shapes::ShapeRef.new(shape: TagList, location_name: "TagList"))
897
+ PutResourceSetRequest.struct_class = Types::PutResourceSetRequest
898
+
899
+ PutResourceSetResponse.add_member(:resource_set, Shapes::ShapeRef.new(shape: ResourceSet, required: true, location_name: "ResourceSet"))
900
+ PutResourceSetResponse.add_member(:resource_set_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceSetArn"))
901
+ PutResourceSetResponse.struct_class = Types::PutResourceSetResponse
902
+
789
903
  RemediationAction.add_member(:description, Shapes::ShapeRef.new(shape: LengthBoundedString, location_name: "Description"))
790
904
  RemediationAction.add_member(:ec2_create_route_action, Shapes::ShapeRef.new(shape: EC2CreateRouteAction, location_name: "EC2CreateRouteAction"))
791
905
  RemediationAction.add_member(:ec2_replace_route_action, Shapes::ShapeRef.new(shape: EC2ReplaceRouteAction, location_name: "EC2ReplaceRouteAction"))
@@ -801,11 +915,35 @@ module Aws::FMS
801
915
  RemediationActionWithOrder.add_member(:order, Shapes::ShapeRef.new(shape: BasicInteger, location_name: "Order"))
802
916
  RemediationActionWithOrder.struct_class = Types::RemediationActionWithOrder
803
917
 
918
+ Resource.add_member(:uri, Shapes::ShapeRef.new(shape: Identifier, required: true, location_name: "URI"))
919
+ Resource.add_member(:account_id, Shapes::ShapeRef.new(shape: AWSAccountId, location_name: "AccountId"))
920
+ Resource.struct_class = Types::Resource
921
+
804
922
  ResourceIdList.member = Shapes::ShapeRef.new(shape: ResourceId)
805
923
 
924
+ ResourceList.member = Shapes::ShapeRef.new(shape: Resource)
925
+
806
926
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
807
927
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
808
928
 
929
+ ResourceSet.add_member(:id, Shapes::ShapeRef.new(shape: Base62Id, location_name: "Id"))
930
+ ResourceSet.add_member(:name, Shapes::ShapeRef.new(shape: Name, required: true, location_name: "Name"))
931
+ ResourceSet.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
932
+ ResourceSet.add_member(:update_token, Shapes::ShapeRef.new(shape: UpdateToken, location_name: "UpdateToken"))
933
+ ResourceSet.add_member(:resource_type_list, Shapes::ShapeRef.new(shape: ResourceTypeList, required: true, location_name: "ResourceTypeList"))
934
+ ResourceSet.add_member(:last_update_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "LastUpdateTime"))
935
+ ResourceSet.struct_class = Types::ResourceSet
936
+
937
+ ResourceSetIds.member = Shapes::ShapeRef.new(shape: Base62Id)
938
+
939
+ ResourceSetSummary.add_member(:id, Shapes::ShapeRef.new(shape: Base62Id, location_name: "Id"))
940
+ ResourceSetSummary.add_member(:name, Shapes::ShapeRef.new(shape: Name, location_name: "Name"))
941
+ ResourceSetSummary.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
942
+ ResourceSetSummary.add_member(:last_update_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "LastUpdateTime"))
943
+ ResourceSetSummary.struct_class = Types::ResourceSetSummary
944
+
945
+ ResourceSetSummaryList.member = Shapes::ShapeRef.new(shape: ResourceSetSummary)
946
+
809
947
  ResourceTag.add_member(:key, Shapes::ShapeRef.new(shape: ResourceTagKey, required: true, location_name: "Key"))
810
948
  ResourceTag.add_member(:value, Shapes::ShapeRef.new(shape: ResourceTagValue, location_name: "Value"))
811
949
  ResourceTag.struct_class = Types::ResourceTag
@@ -1005,6 +1143,31 @@ module Aws::FMS
1005
1143
  o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1006
1144
  end)
1007
1145
 
1146
+ api.add_operation(:batch_associate_resource, Seahorse::Model::Operation.new.tap do |o|
1147
+ o.name = "BatchAssociateResource"
1148
+ o.http_method = "POST"
1149
+ o.http_request_uri = "/"
1150
+ o.input = Shapes::ShapeRef.new(shape: BatchAssociateResourceRequest)
1151
+ o.output = Shapes::ShapeRef.new(shape: BatchAssociateResourceResponse)
1152
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
1153
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1154
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1155
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1156
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1157
+ end)
1158
+
1159
+ api.add_operation(:batch_disassociate_resource, Seahorse::Model::Operation.new.tap do |o|
1160
+ o.name = "BatchDisassociateResource"
1161
+ o.http_method = "POST"
1162
+ o.http_request_uri = "/"
1163
+ o.input = Shapes::ShapeRef.new(shape: BatchDisassociateResourceRequest)
1164
+ o.output = Shapes::ShapeRef.new(shape: BatchDisassociateResourceResponse)
1165
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
1166
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1167
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1168
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1169
+ end)
1170
+
1008
1171
  api.add_operation(:delete_apps_list, Seahorse::Model::Operation.new.tap do |o|
1009
1172
  o.name = "DeleteAppsList"
1010
1173
  o.http_method = "POST"
@@ -1051,6 +1214,18 @@ module Aws::FMS
1051
1214
  o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1052
1215
  end)
1053
1216
 
1217
+ api.add_operation(:delete_resource_set, Seahorse::Model::Operation.new.tap do |o|
1218
+ o.name = "DeleteResourceSet"
1219
+ o.http_method = "POST"
1220
+ o.http_request_uri = "/"
1221
+ o.input = Shapes::ShapeRef.new(shape: DeleteResourceSetRequest)
1222
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
1223
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1224
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
1225
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1226
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1227
+ end)
1228
+
1054
1229
  api.add_operation(:disassociate_admin_account, Seahorse::Model::Operation.new.tap do |o|
1055
1230
  o.name = "DisassociateAdminAccount"
1056
1231
  o.http_method = "POST"
@@ -1153,6 +1328,18 @@ module Aws::FMS
1153
1328
  o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1154
1329
  end)
1155
1330
 
1331
+ api.add_operation(:get_resource_set, Seahorse::Model::Operation.new.tap do |o|
1332
+ o.name = "GetResourceSet"
1333
+ o.http_method = "POST"
1334
+ o.http_request_uri = "/"
1335
+ o.input = Shapes::ShapeRef.new(shape: GetResourceSetRequest)
1336
+ o.output = Shapes::ShapeRef.new(shape: GetResourceSetResponse)
1337
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
1338
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1339
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1340
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1341
+ end)
1342
+
1156
1343
  api.add_operation(:get_third_party_firewall_association_status, Seahorse::Model::Operation.new.tap do |o|
1157
1344
  o.name = "GetThirdPartyFirewallAssociationStatus"
1158
1345
  o.http_method = "POST"
@@ -1210,6 +1397,17 @@ module Aws::FMS
1210
1397
  )
1211
1398
  end)
1212
1399
 
1400
+ api.add_operation(:list_discovered_resources, Seahorse::Model::Operation.new.tap do |o|
1401
+ o.name = "ListDiscoveredResources"
1402
+ o.http_method = "POST"
1403
+ o.http_request_uri = "/"
1404
+ o.input = Shapes::ShapeRef.new(shape: ListDiscoveredResourcesRequest)
1405
+ o.output = Shapes::ShapeRef.new(shape: ListDiscoveredResourcesResponse)
1406
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
1407
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1408
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1409
+ end)
1410
+
1213
1411
  api.add_operation(:list_member_accounts, Seahorse::Model::Operation.new.tap do |o|
1214
1412
  o.name = "ListMemberAccounts"
1215
1413
  o.http_method = "POST"
@@ -1261,6 +1459,29 @@ module Aws::FMS
1261
1459
  )
1262
1460
  end)
1263
1461
 
1462
+ api.add_operation(:list_resource_set_resources, Seahorse::Model::Operation.new.tap do |o|
1463
+ o.name = "ListResourceSetResources"
1464
+ o.http_method = "POST"
1465
+ o.http_request_uri = "/"
1466
+ o.input = Shapes::ShapeRef.new(shape: ListResourceSetResourcesRequest)
1467
+ o.output = Shapes::ShapeRef.new(shape: ListResourceSetResourcesResponse)
1468
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
1469
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1470
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1471
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1472
+ end)
1473
+
1474
+ api.add_operation(:list_resource_sets, Seahorse::Model::Operation.new.tap do |o|
1475
+ o.name = "ListResourceSets"
1476
+ o.http_method = "POST"
1477
+ o.http_request_uri = "/"
1478
+ o.input = Shapes::ShapeRef.new(shape: ListResourceSetsRequest)
1479
+ o.output = Shapes::ShapeRef.new(shape: ListResourceSetsResponse)
1480
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
1481
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1482
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1483
+ end)
1484
+
1264
1485
  api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
1265
1486
  o.name = "ListTagsForResource"
1266
1487
  o.http_method = "POST"
@@ -1342,6 +1563,18 @@ module Aws::FMS
1342
1563
  o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1343
1564
  end)
1344
1565
 
1566
+ api.add_operation(:put_resource_set, Seahorse::Model::Operation.new.tap do |o|
1567
+ o.name = "PutResourceSet"
1568
+ o.http_method = "POST"
1569
+ o.http_request_uri = "/"
1570
+ o.input = Shapes::ShapeRef.new(shape: PutResourceSetRequest)
1571
+ o.output = Shapes::ShapeRef.new(shape: PutResourceSetResponse)
1572
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
1573
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1574
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1575
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
1576
+ end)
1577
+
1345
1578
  api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
1346
1579
  o.name = "TagResource"
1347
1580
  o.http_method = "POST"
@@ -50,6 +50,9 @@ module Aws::FMS
50
50
 
51
51
  def initialize(options = {})
52
52
  self[:region] = options[:region]
53
+ if self[:region].nil?
54
+ raise ArgumentError, "Missing required EndpointParameter: :region"
55
+ end
53
56
  self[:use_dual_stack] = options[:use_dual_stack]
54
57
  self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
58
  if self[:use_dual_stack].nil?
@@ -29,82 +29,81 @@ module Aws::FMS
29
29
  # @api private
30
30
  RULES = <<-JSON
31
31
  eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
32
- bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1bWVu
33
- dGF0aW9uIjoiVGhlIEFXUyByZWdpb24gdXNlZCB0byBkaXNwYXRjaCB0aGUg
34
- cmVxdWVzdC4iLCJ0eXBlIjoiU3RyaW5nIn0sIlVzZUR1YWxTdGFjayI6eyJi
35
- dWlsdEluIjoiQVdTOjpVc2VEdWFsU3RhY2siLCJyZXF1aXJlZCI6dHJ1ZSwi
36
- ZGVmYXVsdCI6ZmFsc2UsImRvY3VtZW50YXRpb24iOiJXaGVuIHRydWUsIHVz
37
- ZSB0aGUgZHVhbC1zdGFjayBlbmRwb2ludC4gSWYgdGhlIGNvbmZpZ3VyZWQg
38
- ZW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBkdWFsLXN0YWNrLCBkaXNwYXRj
39
- aGluZyB0aGUgcmVxdWVzdCBNQVkgcmV0dXJuIGFuIGVycm9yLiIsInR5cGUi
40
- OiJCb29sZWFuIn0sIlVzZUZJUFMiOnsiYnVpbHRJbiI6IkFXUzo6VXNlRklQ
41
- UyIsInJlcXVpcmVkIjp0cnVlLCJkZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRh
42
- dGlvbiI6IldoZW4gdHJ1ZSwgc2VuZCB0aGlzIHJlcXVlc3QgdG8gdGhlIEZJ
43
- UFMtY29tcGxpYW50IHJlZ2lvbmFsIGVuZHBvaW50LiBJZiB0aGUgY29uZmln
44
- dXJlZCBlbmRwb2ludCBkb2VzIG5vdCBoYXZlIGEgRklQUyBjb21wbGlhbnQg
45
- ZW5kcG9pbnQsIGRpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHdpbGwgcmV0dXJu
46
- IGFuIGVycm9yLiIsInR5cGUiOiJCb29sZWFuIn0sIkVuZHBvaW50Ijp7ImJ1
47
- aWx0SW4iOiJTREs6OkVuZHBvaW50IiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1
48
- bWVudGF0aW9uIjoiT3ZlcnJpZGUgdGhlIGVuZHBvaW50IHVzZWQgdG8gc2Vu
49
- ZCB0aGlzIHJlcXVlc3QiLCJ0eXBlIjoiU3RyaW5nIn19LCJydWxlcyI6W3si
50
- Y29uZGl0aW9ucyI6W3siZm4iOiJhd3MucGFydGl0aW9uIiwiYXJndiI6W3si
51
- cmVmIjoiUmVnaW9uIn1dLCJhc3NpZ24iOiJQYXJ0aXRpb25SZXN1bHQifV0s
52
- InR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoi
53
- aXNTZXQiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XX0seyJmbiI6InBh
54
- cnNlVVJMIiwiYXJndiI6W3sicmVmIjoiRW5kcG9pbnQifV0sImFzc2lnbiI6
55
- InVybCJ9XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
56
- W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQ
57
- UyJ9LHRydWVdfV0sImVycm9yIjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBG
58
- SVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0
59
- eXBlIjoiZXJyb3IifSx7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIs
60
- InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
61
- LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJlcnJv
62
- ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0
63
- b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0eXBlIjoiZXJyb3Ii
64
- fSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOnsicmVmIjoi
65
- RW5kcG9pbnQifSwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
66
- ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29s
67
- ZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9LHRydWVdfSx7
68
- ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
69
- dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
70
- dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
71
- Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
72
- In0sInN1cHBvcnRzRklQUyJdfV19LHsiZm4iOiJib29sZWFuRXF1YWxzIiwi
73
- YXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQ
74
- YXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5
75
- cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2lu
76
- dCI6eyJ1cmwiOiJodHRwczovL2Ztcy1maXBzLntSZWdpb259LntQYXJ0aXRp
77
- b25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9
78
- LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRp
79
- b25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJs
80
- ZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBv
81
- ciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7ImZu
82
- IjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMifSx0
83
- cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
84
- eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0
85
- QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBw
86
- b3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
87
- dGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25z
88
- IjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9mbXMtZmlwcy57UmVn
89
- aW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVz
90
- Ijp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0seyJj
91
- b25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGlzIGVuYWJsZWQgYnV0IHRo
92
- aXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQUyIsInR5cGUiOiJl
32
+ bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOnRydWUsImRvY3VtZW50
33
+ YXRpb24iOiJUaGUgQVdTIHJlZ2lvbiB1c2VkIHRvIGRpc3BhdGNoIHRoZSBy
34
+ ZXF1ZXN0LiIsInR5cGUiOiJTdHJpbmcifSwiVXNlRHVhbFN0YWNrIjp7ImJ1
35
+ aWx0SW4iOiJBV1M6OlVzZUR1YWxTdGFjayIsInJlcXVpcmVkIjp0cnVlLCJk
36
+ ZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRhdGlvbiI6IldoZW4gdHJ1ZSwgdXNl
37
+ IHRoZSBkdWFsLXN0YWNrIGVuZHBvaW50LiBJZiB0aGUgY29uZmlndXJlZCBl
38
+ bmRwb2ludCBkb2VzIG5vdCBzdXBwb3J0IGR1YWwtc3RhY2ssIGRpc3BhdGNo
39
+ aW5nIHRoZSByZXF1ZXN0IE1BWSByZXR1cm4gYW4gZXJyb3IuIiwidHlwZSI6
40
+ IkJvb2xlYW4ifSwiVXNlRklQUyI6eyJidWlsdEluIjoiQVdTOjpVc2VGSVBT
41
+ IiwicmVxdWlyZWQiOnRydWUsImRlZmF1bHQiOmZhbHNlLCJkb2N1bWVudGF0
42
+ aW9uIjoiV2hlbiB0cnVlLCBzZW5kIHRoaXMgcmVxdWVzdCB0byB0aGUgRklQ
43
+ Uy1jb21wbGlhbnQgcmVnaW9uYWwgZW5kcG9pbnQuIElmIHRoZSBjb25maWd1
44
+ cmVkIGVuZHBvaW50IGRvZXMgbm90IGhhdmUgYSBGSVBTIGNvbXBsaWFudCBl
45
+ bmRwb2ludCwgZGlzcGF0Y2hpbmcgdGhlIHJlcXVlc3Qgd2lsbCByZXR1cm4g
46
+ YW4gZXJyb3IuIiwidHlwZSI6IkJvb2xlYW4ifSwiRW5kcG9pbnQiOnsiYnVp
47
+ bHRJbiI6IlNESzo6RW5kcG9pbnQiLCJyZXF1aXJlZCI6ZmFsc2UsImRvY3Vt
48
+ ZW50YXRpb24iOiJPdmVycmlkZSB0aGUgZW5kcG9pbnQgdXNlZCB0byBzZW5k
49
+ IHRoaXMgcmVxdWVzdCIsInR5cGUiOiJTdHJpbmcifX0sInJ1bGVzIjpbeyJj
50
+ b25kaXRpb25zIjpbeyJmbiI6ImF3cy5wYXJ0aXRpb24iLCJhcmd2IjpbeyJy
51
+ ZWYiOiJSZWdpb24ifV0sImFzc2lnbiI6IlBhcnRpdGlvblJlc3VsdCJ9XSwi
52
+ dHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJp
53
+ c1NldCIsImFyZ3YiOlt7InJlZiI6IkVuZHBvaW50In1dfV0sInR5cGUiOiJ0
54
+ cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVx
55
+ dWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMifSx0cnVlXX1dLCJlcnJv
56
+ ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVu
57
+ ZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkIiwidHlwZSI6ImVycm9yIn0seyJj
58
+ b25kaXRpb25zIjpbXSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0
59
+ aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoi
60
+ VXNlRHVhbFN0YWNrIn0sdHJ1ZV19XSwiZXJyb3IiOiJJbnZhbGlkIENvbmZp
61
+ Z3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBu
62
+ b3Qgc3VwcG9ydGVkIiwidHlwZSI6ImVycm9yIn0seyJjb25kaXRpb25zIjpb
63
+ XSwiZW5kcG9pbnQiOnsidXJsIjp7InJlZiI6IkVuZHBvaW50In0sInByb3Bl
64
+ cnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX1d
65
+ fSx7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3Yi
66
+ Olt7InJlZiI6IlVzZUZJUFMifSx0cnVlXX0seyJmbiI6ImJvb2xlYW5FcXVh
67
+ bHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0
68
+ eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJv
69
+ b2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFy
70
+ Z3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0ZJUFMi
71
+ XX1dfSx7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsiZm4i
72
+ OiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0In0s
73
+ InN1cHBvcnRzRHVhbFN0YWNrIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVz
74
+ IjpbeyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6
75
+ Ly9mbXMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFj
76
+ a0Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0
77
+ eXBlIjoiZW5kcG9pbnQifV19LHsiY29uZGl0aW9ucyI6W10sImVycm9yIjoi
78
+ RklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0
79
+ aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aCIsInR5cGUiOiJl
93
80
  cnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
94
- LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0eXBl
95
- IjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xl
96
- YW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3Yi
97
- Olt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFj
98
- ayJdfV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
99
- W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vZm1zLntSZWdpb259LntQ
100
- YXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRp
101
- ZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJj
102
- b25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBi
103
- dXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2si
104
- LCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50
105
- Ijp7InVybCI6Imh0dHBzOi8vZm1zLntSZWdpb259LntQYXJ0aXRpb25SZXN1
106
- bHQjZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0s
107
- InR5cGUiOiJlbmRwb2ludCJ9XX1dfQ==
81
+ LCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBTIn0sdHJ1ZV19XSwidHlwZSI6InRy
82
+ ZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1
83
+ YWxzIiwiYXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJy
84
+ ZWYiOiJQYXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNGSVBTIl19XX1dLCJ0
85
+ eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbXSwidHlwZSI6
86
+ InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7
87
+ InVybCI6Imh0dHBzOi8vZm1zLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJl
88
+ c3VsdCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9
89
+ fSwidHlwZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W10sImVy
90
+ cm9yIjoiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2Vz
91
+ IG5vdCBzdXBwb3J0IEZJUFMiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0
92
+ aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoi
93
+ VXNlRHVhbFN0YWNrIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6
94
+ W3siY29uZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6
95
+ W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRp
96
+ b25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5cGUiOiJ0
97
+ cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1
98
+ cmwiOiJodHRwczovL2Ztcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1
99
+ YWxTdGFja0Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6
100
+ e319LCJ0eXBlIjoiZW5kcG9pbnQifV19LHsiY29uZGl0aW9ucyI6W10sImVy
101
+ cm9yIjoiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9u
102
+ IGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrIiwidHlwZSI6ImVycm9yIn1d
103
+ fSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczov
104
+ L2Ztcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJw
105
+ cm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQi
106
+ fV19XX0=
108
107
 
109
108
  JSON
110
109
  end