aws-sdk-sesv2 1.29.0 → 1.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,6 +21,10 @@ module Aws::SESV2
21
21
  AmazonResourceName = Shapes::StringShape.new(name: 'AmazonResourceName')
22
22
  AttributesData = Shapes::StringShape.new(name: 'AttributesData')
23
23
  BadRequestException = Shapes::StructureShape.new(name: 'BadRequestException')
24
+ BatchGetMetricDataQueries = Shapes::ListShape.new(name: 'BatchGetMetricDataQueries')
25
+ BatchGetMetricDataQuery = Shapes::StructureShape.new(name: 'BatchGetMetricDataQuery')
26
+ BatchGetMetricDataRequest = Shapes::StructureShape.new(name: 'BatchGetMetricDataRequest')
27
+ BatchGetMetricDataResponse = Shapes::StructureShape.new(name: 'BatchGetMetricDataResponse')
24
28
  BehaviorOnMxFailure = Shapes::StringShape.new(name: 'BehaviorOnMxFailure')
25
29
  BlacklistEntries = Shapes::ListShape.new(name: 'BlacklistEntries')
26
30
  BlacklistEntry = Shapes::StructureShape.new(name: 'BlacklistEntry')
@@ -52,6 +56,7 @@ module Aws::SESV2
52
56
  ContactListImportAction = Shapes::StringShape.new(name: 'ContactListImportAction')
53
57
  ContactListName = Shapes::StringShape.new(name: 'ContactListName')
54
58
  Content = Shapes::StructureShape.new(name: 'Content')
59
+ Counter = Shapes::IntegerShape.new(name: 'Counter')
55
60
  CreateConfigurationSetEventDestinationRequest = Shapes::StructureShape.new(name: 'CreateConfigurationSetEventDestinationRequest')
56
61
  CreateConfigurationSetEventDestinationResponse = Shapes::StructureShape.new(name: 'CreateConfigurationSetEventDestinationResponse')
57
62
  CreateConfigurationSetRequest = Shapes::StructureShape.new(name: 'CreateConfigurationSetRequest')
@@ -79,6 +84,8 @@ module Aws::SESV2
79
84
  CustomVerificationEmailTemplatesList = Shapes::ListShape.new(name: 'CustomVerificationEmailTemplatesList')
80
85
  DailyVolume = Shapes::StructureShape.new(name: 'DailyVolume')
81
86
  DailyVolumes = Shapes::ListShape.new(name: 'DailyVolumes')
87
+ DashboardAttributes = Shapes::StructureShape.new(name: 'DashboardAttributes')
88
+ DashboardOptions = Shapes::StructureShape.new(name: 'DashboardOptions')
82
89
  DataFormat = Shapes::StringShape.new(name: 'DataFormat')
83
90
  DedicatedIp = Shapes::StructureShape.new(name: 'DedicatedIp')
84
91
  DedicatedIpList = Shapes::ListShape.new(name: 'DedicatedIpList')
@@ -114,6 +121,7 @@ module Aws::SESV2
114
121
  Destination = Shapes::StructureShape.new(name: 'Destination')
115
122
  DimensionName = Shapes::StringShape.new(name: 'DimensionName')
116
123
  DimensionValueSource = Shapes::StringShape.new(name: 'DimensionValueSource')
124
+ Dimensions = Shapes::MapShape.new(name: 'Dimensions')
117
125
  DisplayName = Shapes::StringShape.new(name: 'DisplayName')
118
126
  DkimAttributes = Shapes::StructureShape.new(name: 'DkimAttributes')
119
127
  DkimSigningAttributes = Shapes::StructureShape.new(name: 'DkimSigningAttributes')
@@ -155,6 +163,7 @@ module Aws::SESV2
155
163
  FailedRecordsS3Url = Shapes::StringShape.new(name: 'FailedRecordsS3Url')
156
164
  FailureInfo = Shapes::StructureShape.new(name: 'FailureInfo')
157
165
  FailureRedirectionURL = Shapes::StringShape.new(name: 'FailureRedirectionURL')
166
+ FeatureStatus = Shapes::StringShape.new(name: 'FeatureStatus')
158
167
  FeedbackId = Shapes::StringShape.new(name: 'FeedbackId')
159
168
  GeneralEnforcementStatus = Shapes::StringShape.new(name: 'GeneralEnforcementStatus')
160
169
  GetAccountRequest = Shapes::StructureShape.new(name: 'GetAccountRequest')
@@ -195,6 +204,8 @@ module Aws::SESV2
195
204
  GetImportJobResponse = Shapes::StructureShape.new(name: 'GetImportJobResponse')
196
205
  GetSuppressedDestinationRequest = Shapes::StructureShape.new(name: 'GetSuppressedDestinationRequest')
197
206
  GetSuppressedDestinationResponse = Shapes::StructureShape.new(name: 'GetSuppressedDestinationResponse')
207
+ GuardianAttributes = Shapes::StructureShape.new(name: 'GuardianAttributes')
208
+ GuardianOptions = Shapes::StructureShape.new(name: 'GuardianOptions')
198
209
  Identity = Shapes::StringShape.new(name: 'Identity')
199
210
  IdentityInfo = Shapes::StructureShape.new(name: 'IdentityInfo')
200
211
  IdentityInfoList = Shapes::ListShape.new(name: 'IdentityInfoList')
@@ -206,6 +217,7 @@ module Aws::SESV2
206
217
  ImportJobSummary = Shapes::StructureShape.new(name: 'ImportJobSummary')
207
218
  ImportJobSummaryList = Shapes::ListShape.new(name: 'ImportJobSummaryList')
208
219
  InboxPlacementTrackingOption = Shapes::StructureShape.new(name: 'InboxPlacementTrackingOption')
220
+ InternalServiceErrorException = Shapes::StructureShape.new(name: 'InternalServiceErrorException')
209
221
  InvalidNextTokenException = Shapes::StructureShape.new(name: 'InvalidNextTokenException')
210
222
  Ip = Shapes::StringShape.new(name: 'Ip')
211
223
  IpList = Shapes::ListShape.new(name: 'IpList')
@@ -243,6 +255,11 @@ module Aws::SESV2
243
255
  ListOfContactLists = Shapes::ListShape.new(name: 'ListOfContactLists')
244
256
  ListOfContacts = Shapes::ListShape.new(name: 'ListOfContacts')
245
257
  ListOfDedicatedIpPools = Shapes::ListShape.new(name: 'ListOfDedicatedIpPools')
258
+ ListRecommendationFilterValue = Shapes::StringShape.new(name: 'ListRecommendationFilterValue')
259
+ ListRecommendationsFilter = Shapes::MapShape.new(name: 'ListRecommendationsFilter')
260
+ ListRecommendationsFilterKey = Shapes::StringShape.new(name: 'ListRecommendationsFilterKey')
261
+ ListRecommendationsRequest = Shapes::StructureShape.new(name: 'ListRecommendationsRequest')
262
+ ListRecommendationsResponse = Shapes::StructureShape.new(name: 'ListRecommendationsResponse')
246
263
  ListSuppressedDestinationsRequest = Shapes::StructureShape.new(name: 'ListSuppressedDestinationsRequest')
247
264
  ListSuppressedDestinationsResponse = Shapes::StructureShape.new(name: 'ListSuppressedDestinationsResponse')
248
265
  ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
@@ -263,6 +280,15 @@ module Aws::SESV2
263
280
  MessageTagList = Shapes::ListShape.new(name: 'MessageTagList')
264
281
  MessageTagName = Shapes::StringShape.new(name: 'MessageTagName')
265
282
  MessageTagValue = Shapes::StringShape.new(name: 'MessageTagValue')
283
+ Metric = Shapes::StringShape.new(name: 'Metric')
284
+ MetricDataError = Shapes::StructureShape.new(name: 'MetricDataError')
285
+ MetricDataErrorList = Shapes::ListShape.new(name: 'MetricDataErrorList')
286
+ MetricDataResult = Shapes::StructureShape.new(name: 'MetricDataResult')
287
+ MetricDataResultList = Shapes::ListShape.new(name: 'MetricDataResultList')
288
+ MetricDimensionName = Shapes::StringShape.new(name: 'MetricDimensionName')
289
+ MetricDimensionValue = Shapes::StringShape.new(name: 'MetricDimensionValue')
290
+ MetricNamespace = Shapes::StringShape.new(name: 'MetricNamespace')
291
+ MetricValueList = Shapes::ListShape.new(name: 'MetricValueList')
266
292
  NextToken = Shapes::StringShape.new(name: 'NextToken')
267
293
  NotFoundException = Shapes::StructureShape.new(name: 'NotFoundException')
268
294
  OutboundMessageId = Shapes::StringShape.new(name: 'OutboundMessageId')
@@ -285,6 +311,8 @@ module Aws::SESV2
285
311
  PutAccountSendingAttributesResponse = Shapes::StructureShape.new(name: 'PutAccountSendingAttributesResponse')
286
312
  PutAccountSuppressionAttributesRequest = Shapes::StructureShape.new(name: 'PutAccountSuppressionAttributesRequest')
287
313
  PutAccountSuppressionAttributesResponse = Shapes::StructureShape.new(name: 'PutAccountSuppressionAttributesResponse')
314
+ PutAccountVdmAttributesRequest = Shapes::StructureShape.new(name: 'PutAccountVdmAttributesRequest')
315
+ PutAccountVdmAttributesResponse = Shapes::StructureShape.new(name: 'PutAccountVdmAttributesResponse')
288
316
  PutConfigurationSetDeliveryOptionsRequest = Shapes::StructureShape.new(name: 'PutConfigurationSetDeliveryOptionsRequest')
289
317
  PutConfigurationSetDeliveryOptionsResponse = Shapes::StructureShape.new(name: 'PutConfigurationSetDeliveryOptionsResponse')
290
318
  PutConfigurationSetReputationOptionsRequest = Shapes::StructureShape.new(name: 'PutConfigurationSetReputationOptionsRequest')
@@ -295,6 +323,8 @@ module Aws::SESV2
295
323
  PutConfigurationSetSuppressionOptionsResponse = Shapes::StructureShape.new(name: 'PutConfigurationSetSuppressionOptionsResponse')
296
324
  PutConfigurationSetTrackingOptionsRequest = Shapes::StructureShape.new(name: 'PutConfigurationSetTrackingOptionsRequest')
297
325
  PutConfigurationSetTrackingOptionsResponse = Shapes::StructureShape.new(name: 'PutConfigurationSetTrackingOptionsResponse')
326
+ PutConfigurationSetVdmOptionsRequest = Shapes::StructureShape.new(name: 'PutConfigurationSetVdmOptionsRequest')
327
+ PutConfigurationSetVdmOptionsResponse = Shapes::StructureShape.new(name: 'PutConfigurationSetVdmOptionsResponse')
298
328
  PutDedicatedIpInPoolRequest = Shapes::StructureShape.new(name: 'PutDedicatedIpInPoolRequest')
299
329
  PutDedicatedIpInPoolResponse = Shapes::StructureShape.new(name: 'PutDedicatedIpInPoolResponse')
300
330
  PutDedicatedIpWarmupAttributesRequest = Shapes::StructureShape.new(name: 'PutDedicatedIpWarmupAttributesRequest')
@@ -313,9 +343,18 @@ module Aws::SESV2
313
343
  PutEmailIdentityMailFromAttributesResponse = Shapes::StructureShape.new(name: 'PutEmailIdentityMailFromAttributesResponse')
314
344
  PutSuppressedDestinationRequest = Shapes::StructureShape.new(name: 'PutSuppressedDestinationRequest')
315
345
  PutSuppressedDestinationResponse = Shapes::StructureShape.new(name: 'PutSuppressedDestinationResponse')
346
+ QueryErrorCode = Shapes::StringShape.new(name: 'QueryErrorCode')
347
+ QueryErrorMessage = Shapes::StringShape.new(name: 'QueryErrorMessage')
348
+ QueryIdentifier = Shapes::StringShape.new(name: 'QueryIdentifier')
316
349
  RawMessage = Shapes::StructureShape.new(name: 'RawMessage')
317
350
  RawMessageData = Shapes::BlobShape.new(name: 'RawMessageData')
318
351
  RblName = Shapes::StringShape.new(name: 'RblName')
352
+ Recommendation = Shapes::StructureShape.new(name: 'Recommendation')
353
+ RecommendationDescription = Shapes::StringShape.new(name: 'RecommendationDescription')
354
+ RecommendationImpact = Shapes::StringShape.new(name: 'RecommendationImpact')
355
+ RecommendationStatus = Shapes::StringShape.new(name: 'RecommendationStatus')
356
+ RecommendationType = Shapes::StringShape.new(name: 'RecommendationType')
357
+ RecommendationsList = Shapes::ListShape.new(name: 'RecommendationsList')
319
358
  RenderedEmailTemplate = Shapes::StringShape.new(name: 'RenderedEmailTemplate')
320
359
  ReplacementEmailContent = Shapes::StructureShape.new(name: 'ReplacementEmailContent')
321
360
  ReplacementTemplate = Shapes::StructureShape.new(name: 'ReplacementTemplate')
@@ -364,6 +403,7 @@ module Aws::SESV2
364
403
  TestRenderEmailTemplateRequest = Shapes::StructureShape.new(name: 'TestRenderEmailTemplateRequest')
365
404
  TestRenderEmailTemplateResponse = Shapes::StructureShape.new(name: 'TestRenderEmailTemplateResponse')
366
405
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
406
+ TimestampList = Shapes::ListShape.new(name: 'TimestampList')
367
407
  TlsPolicy = Shapes::StringShape.new(name: 'TlsPolicy')
368
408
  TooManyRequestsException = Shapes::StructureShape.new(name: 'TooManyRequestsException')
369
409
  Topic = Shapes::StructureShape.new(name: 'Topic')
@@ -390,6 +430,8 @@ module Aws::SESV2
390
430
  UpdateEmailTemplateResponse = Shapes::StructureShape.new(name: 'UpdateEmailTemplateResponse')
391
431
  UseCaseDescription = Shapes::StringShape.new(name: 'UseCaseDescription')
392
432
  UseDefaultIfPreferenceUnavailable = Shapes::BooleanShape.new(name: 'UseDefaultIfPreferenceUnavailable')
433
+ VdmAttributes = Shapes::StructureShape.new(name: 'VdmAttributes')
434
+ VdmOptions = Shapes::StructureShape.new(name: 'VdmOptions')
393
435
  VerificationStatus = Shapes::StringShape.new(name: 'VerificationStatus')
394
436
  Volume = Shapes::IntegerShape.new(name: 'Volume')
395
437
  VolumeStatistics = Shapes::StructureShape.new(name: 'VolumeStatistics')
@@ -412,6 +454,23 @@ module Aws::SESV2
412
454
 
413
455
  BadRequestException.struct_class = Types::BadRequestException
414
456
 
457
+ BatchGetMetricDataQueries.member = Shapes::ShapeRef.new(shape: BatchGetMetricDataQuery)
458
+
459
+ BatchGetMetricDataQuery.add_member(:id, Shapes::ShapeRef.new(shape: QueryIdentifier, required: true, location_name: "Id"))
460
+ BatchGetMetricDataQuery.add_member(:namespace, Shapes::ShapeRef.new(shape: MetricNamespace, required: true, location_name: "Namespace"))
461
+ BatchGetMetricDataQuery.add_member(:metric, Shapes::ShapeRef.new(shape: Metric, required: true, location_name: "Metric"))
462
+ BatchGetMetricDataQuery.add_member(:dimensions, Shapes::ShapeRef.new(shape: Dimensions, location_name: "Dimensions"))
463
+ BatchGetMetricDataQuery.add_member(:start_date, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "StartDate"))
464
+ BatchGetMetricDataQuery.add_member(:end_date, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "EndDate"))
465
+ BatchGetMetricDataQuery.struct_class = Types::BatchGetMetricDataQuery
466
+
467
+ BatchGetMetricDataRequest.add_member(:queries, Shapes::ShapeRef.new(shape: BatchGetMetricDataQueries, required: true, location_name: "Queries"))
468
+ BatchGetMetricDataRequest.struct_class = Types::BatchGetMetricDataRequest
469
+
470
+ BatchGetMetricDataResponse.add_member(:results, Shapes::ShapeRef.new(shape: MetricDataResultList, location_name: "Results"))
471
+ BatchGetMetricDataResponse.add_member(:errors, Shapes::ShapeRef.new(shape: MetricDataErrorList, location_name: "Errors"))
472
+ BatchGetMetricDataResponse.struct_class = Types::BatchGetMetricDataResponse
473
+
415
474
  BlacklistEntries.member = Shapes::ShapeRef.new(shape: BlacklistEntry)
416
475
 
417
476
  BlacklistEntry.add_member(:rbl_name, Shapes::ShapeRef.new(shape: RblName, location_name: "RblName"))
@@ -494,6 +553,7 @@ module Aws::SESV2
494
553
  CreateConfigurationSetRequest.add_member(:sending_options, Shapes::ShapeRef.new(shape: SendingOptions, location_name: "SendingOptions"))
495
554
  CreateConfigurationSetRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
496
555
  CreateConfigurationSetRequest.add_member(:suppression_options, Shapes::ShapeRef.new(shape: SuppressionOptions, location_name: "SuppressionOptions"))
556
+ CreateConfigurationSetRequest.add_member(:vdm_options, Shapes::ShapeRef.new(shape: VdmOptions, location_name: "VdmOptions"))
497
557
  CreateConfigurationSetRequest.struct_class = Types::CreateConfigurationSetRequest
498
558
 
499
559
  CreateConfigurationSetResponse.struct_class = Types::CreateConfigurationSetResponse
@@ -589,6 +649,12 @@ module Aws::SESV2
589
649
 
590
650
  DailyVolumes.member = Shapes::ShapeRef.new(shape: DailyVolume)
591
651
 
652
+ DashboardAttributes.add_member(:engagement_metrics, Shapes::ShapeRef.new(shape: FeatureStatus, location_name: "EngagementMetrics"))
653
+ DashboardAttributes.struct_class = Types::DashboardAttributes
654
+
655
+ DashboardOptions.add_member(:engagement_metrics, Shapes::ShapeRef.new(shape: FeatureStatus, location_name: "EngagementMetrics"))
656
+ DashboardOptions.struct_class = Types::DashboardOptions
657
+
592
658
  DedicatedIp.add_member(:ip, Shapes::ShapeRef.new(shape: Ip, required: true, location_name: "Ip"))
593
659
  DedicatedIp.add_member(:warmup_status, Shapes::ShapeRef.new(shape: WarmupStatus, required: true, location_name: "WarmupStatus"))
594
660
  DedicatedIp.add_member(:warmup_percentage, Shapes::ShapeRef.new(shape: Percentage100Wrapper, required: true, location_name: "WarmupPercentage"))
@@ -673,6 +739,9 @@ module Aws::SESV2
673
739
  Destination.add_member(:bcc_addresses, Shapes::ShapeRef.new(shape: EmailAddressList, location_name: "BccAddresses"))
674
740
  Destination.struct_class = Types::Destination
675
741
 
742
+ Dimensions.key = Shapes::ShapeRef.new(shape: MetricDimensionName)
743
+ Dimensions.value = Shapes::ShapeRef.new(shape: MetricDimensionValue)
744
+
676
745
  DkimAttributes.add_member(:signing_enabled, Shapes::ShapeRef.new(shape: Enabled, location_name: "SigningEnabled"))
677
746
  DkimAttributes.add_member(:status, Shapes::ShapeRef.new(shape: DkimStatus, location_name: "Status"))
678
747
  DkimAttributes.add_member(:tokens, Shapes::ShapeRef.new(shape: DnsTokenList, location_name: "Tokens"))
@@ -777,6 +846,7 @@ module Aws::SESV2
777
846
  GetAccountResponse.add_member(:sending_enabled, Shapes::ShapeRef.new(shape: Enabled, location_name: "SendingEnabled"))
778
847
  GetAccountResponse.add_member(:suppression_attributes, Shapes::ShapeRef.new(shape: SuppressionAttributes, location_name: "SuppressionAttributes"))
779
848
  GetAccountResponse.add_member(:details, Shapes::ShapeRef.new(shape: AccountDetails, location_name: "Details"))
849
+ GetAccountResponse.add_member(:vdm_attributes, Shapes::ShapeRef.new(shape: VdmAttributes, location_name: "VdmAttributes"))
780
850
  GetAccountResponse.struct_class = Types::GetAccountResponse
781
851
 
782
852
  GetBlacklistReportsRequest.add_member(:blacklist_item_names, Shapes::ShapeRef.new(shape: BlacklistItemNames, required: true, location: "querystring", location_name: "BlacklistItemNames"))
@@ -801,6 +871,7 @@ module Aws::SESV2
801
871
  GetConfigurationSetResponse.add_member(:sending_options, Shapes::ShapeRef.new(shape: SendingOptions, location_name: "SendingOptions"))
802
872
  GetConfigurationSetResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
803
873
  GetConfigurationSetResponse.add_member(:suppression_options, Shapes::ShapeRef.new(shape: SuppressionOptions, location_name: "SuppressionOptions"))
874
+ GetConfigurationSetResponse.add_member(:vdm_options, Shapes::ShapeRef.new(shape: VdmOptions, location_name: "VdmOptions"))
804
875
  GetConfigurationSetResponse.struct_class = Types::GetConfigurationSetResponse
805
876
 
806
877
  GetContactListRequest.add_member(:contact_list_name, Shapes::ShapeRef.new(shape: ContactListName, required: true, location: "uri", location_name: "ContactListName"))
@@ -941,6 +1012,12 @@ module Aws::SESV2
941
1012
  GetSuppressedDestinationResponse.add_member(:suppressed_destination, Shapes::ShapeRef.new(shape: SuppressedDestination, required: true, location_name: "SuppressedDestination"))
942
1013
  GetSuppressedDestinationResponse.struct_class = Types::GetSuppressedDestinationResponse
943
1014
 
1015
+ GuardianAttributes.add_member(:optimized_shared_delivery, Shapes::ShapeRef.new(shape: FeatureStatus, location_name: "OptimizedSharedDelivery"))
1016
+ GuardianAttributes.struct_class = Types::GuardianAttributes
1017
+
1018
+ GuardianOptions.add_member(:optimized_shared_delivery, Shapes::ShapeRef.new(shape: FeatureStatus, location_name: "OptimizedSharedDelivery"))
1019
+ GuardianOptions.struct_class = Types::GuardianOptions
1020
+
944
1021
  IdentityInfo.add_member(:identity_type, Shapes::ShapeRef.new(shape: IdentityType, location_name: "IdentityType"))
945
1022
  IdentityInfo.add_member(:identity_name, Shapes::ShapeRef.new(shape: Identity, location_name: "IdentityName"))
946
1023
  IdentityInfo.add_member(:sending_enabled, Shapes::ShapeRef.new(shape: Enabled, location_name: "SendingEnabled"))
@@ -971,6 +1048,8 @@ module Aws::SESV2
971
1048
  InboxPlacementTrackingOption.add_member(:tracked_isps, Shapes::ShapeRef.new(shape: IspNameList, location_name: "TrackedIsps"))
972
1049
  InboxPlacementTrackingOption.struct_class = Types::InboxPlacementTrackingOption
973
1050
 
1051
+ InternalServiceErrorException.struct_class = Types::InternalServiceErrorException
1052
+
974
1053
  InvalidNextTokenException.struct_class = Types::InvalidNextTokenException
975
1054
 
976
1055
  IpList.member = Shapes::ShapeRef.new(shape: Ip)
@@ -1089,6 +1168,18 @@ module Aws::SESV2
1089
1168
 
1090
1169
  ListOfDedicatedIpPools.member = Shapes::ShapeRef.new(shape: PoolName)
1091
1170
 
1171
+ ListRecommendationsFilter.key = Shapes::ShapeRef.new(shape: ListRecommendationsFilterKey)
1172
+ ListRecommendationsFilter.value = Shapes::ShapeRef.new(shape: ListRecommendationFilterValue)
1173
+
1174
+ ListRecommendationsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: ListRecommendationsFilter, location_name: "Filter"))
1175
+ ListRecommendationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
1176
+ ListRecommendationsRequest.add_member(:page_size, Shapes::ShapeRef.new(shape: MaxItems, location_name: "PageSize"))
1177
+ ListRecommendationsRequest.struct_class = Types::ListRecommendationsRequest
1178
+
1179
+ ListRecommendationsResponse.add_member(:recommendations, Shapes::ShapeRef.new(shape: RecommendationsList, location_name: "Recommendations"))
1180
+ ListRecommendationsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
1181
+ ListRecommendationsResponse.struct_class = Types::ListRecommendationsResponse
1182
+
1092
1183
  ListSuppressedDestinationsRequest.add_member(:reasons, Shapes::ShapeRef.new(shape: SuppressionListReasons, location: "querystring", location_name: "Reason"))
1093
1184
  ListSuppressedDestinationsRequest.add_member(:start_date, Shapes::ShapeRef.new(shape: Timestamp, location: "querystring", location_name: "StartDate"))
1094
1185
  ListSuppressedDestinationsRequest.add_member(:end_date, Shapes::ShapeRef.new(shape: Timestamp, location: "querystring", location_name: "EndDate"))
@@ -1125,6 +1216,22 @@ module Aws::SESV2
1125
1216
 
1126
1217
  MessageTagList.member = Shapes::ShapeRef.new(shape: MessageTag)
1127
1218
 
1219
+ MetricDataError.add_member(:id, Shapes::ShapeRef.new(shape: QueryIdentifier, location_name: "Id"))
1220
+ MetricDataError.add_member(:code, Shapes::ShapeRef.new(shape: QueryErrorCode, location_name: "Code"))
1221
+ MetricDataError.add_member(:message, Shapes::ShapeRef.new(shape: QueryErrorMessage, location_name: "Message"))
1222
+ MetricDataError.struct_class = Types::MetricDataError
1223
+
1224
+ MetricDataErrorList.member = Shapes::ShapeRef.new(shape: MetricDataError)
1225
+
1226
+ MetricDataResult.add_member(:id, Shapes::ShapeRef.new(shape: QueryIdentifier, location_name: "Id"))
1227
+ MetricDataResult.add_member(:timestamps, Shapes::ShapeRef.new(shape: TimestampList, location_name: "Timestamps"))
1228
+ MetricDataResult.add_member(:values, Shapes::ShapeRef.new(shape: MetricValueList, location_name: "Values"))
1229
+ MetricDataResult.struct_class = Types::MetricDataResult
1230
+
1231
+ MetricDataResultList.member = Shapes::ShapeRef.new(shape: MetricDataResult)
1232
+
1233
+ MetricValueList.member = Shapes::ShapeRef.new(shape: Counter)
1234
+
1128
1235
  NotFoundException.struct_class = Types::NotFoundException
1129
1236
 
1130
1237
  OverallVolume.add_member(:volume_statistics, Shapes::ShapeRef.new(shape: VolumeStatistics, location_name: "VolumeStatistics"))
@@ -1170,6 +1277,11 @@ module Aws::SESV2
1170
1277
 
1171
1278
  PutAccountSuppressionAttributesResponse.struct_class = Types::PutAccountSuppressionAttributesResponse
1172
1279
 
1280
+ PutAccountVdmAttributesRequest.add_member(:vdm_attributes, Shapes::ShapeRef.new(shape: VdmAttributes, required: true, location_name: "VdmAttributes"))
1281
+ PutAccountVdmAttributesRequest.struct_class = Types::PutAccountVdmAttributesRequest
1282
+
1283
+ PutAccountVdmAttributesResponse.struct_class = Types::PutAccountVdmAttributesResponse
1284
+
1173
1285
  PutConfigurationSetDeliveryOptionsRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, required: true, location: "uri", location_name: "ConfigurationSetName"))
1174
1286
  PutConfigurationSetDeliveryOptionsRequest.add_member(:tls_policy, Shapes::ShapeRef.new(shape: TlsPolicy, location_name: "TlsPolicy"))
1175
1287
  PutConfigurationSetDeliveryOptionsRequest.add_member(:sending_pool_name, Shapes::ShapeRef.new(shape: SendingPoolName, location_name: "SendingPoolName"))
@@ -1201,6 +1313,12 @@ module Aws::SESV2
1201
1313
 
1202
1314
  PutConfigurationSetTrackingOptionsResponse.struct_class = Types::PutConfigurationSetTrackingOptionsResponse
1203
1315
 
1316
+ PutConfigurationSetVdmOptionsRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, required: true, location: "uri", location_name: "ConfigurationSetName"))
1317
+ PutConfigurationSetVdmOptionsRequest.add_member(:vdm_options, Shapes::ShapeRef.new(shape: VdmOptions, location_name: "VdmOptions"))
1318
+ PutConfigurationSetVdmOptionsRequest.struct_class = Types::PutConfigurationSetVdmOptionsRequest
1319
+
1320
+ PutConfigurationSetVdmOptionsResponse.struct_class = Types::PutConfigurationSetVdmOptionsResponse
1321
+
1204
1322
  PutDedicatedIpInPoolRequest.add_member(:ip, Shapes::ShapeRef.new(shape: Ip, required: true, location: "uri", location_name: "IP"))
1205
1323
  PutDedicatedIpInPoolRequest.add_member(:destination_pool_name, Shapes::ShapeRef.new(shape: PoolName, required: true, location_name: "DestinationPoolName"))
1206
1324
  PutDedicatedIpInPoolRequest.struct_class = Types::PutDedicatedIpInPoolRequest
@@ -1262,6 +1380,17 @@ module Aws::SESV2
1262
1380
  RawMessage.add_member(:data, Shapes::ShapeRef.new(shape: RawMessageData, required: true, location_name: "Data"))
1263
1381
  RawMessage.struct_class = Types::RawMessage
1264
1382
 
1383
+ Recommendation.add_member(:resource_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location_name: "ResourceArn"))
1384
+ Recommendation.add_member(:type, Shapes::ShapeRef.new(shape: RecommendationType, location_name: "Type"))
1385
+ Recommendation.add_member(:description, Shapes::ShapeRef.new(shape: RecommendationDescription, location_name: "Description"))
1386
+ Recommendation.add_member(:status, Shapes::ShapeRef.new(shape: RecommendationStatus, location_name: "Status"))
1387
+ Recommendation.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTimestamp"))
1388
+ Recommendation.add_member(:last_updated_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastUpdatedTimestamp"))
1389
+ Recommendation.add_member(:impact, Shapes::ShapeRef.new(shape: RecommendationImpact, location_name: "Impact"))
1390
+ Recommendation.struct_class = Types::Recommendation
1391
+
1392
+ RecommendationsList.member = Shapes::ShapeRef.new(shape: Recommendation)
1393
+
1265
1394
  ReplacementEmailContent.add_member(:replacement_template, Shapes::ShapeRef.new(shape: ReplacementTemplate, location_name: "ReplacementTemplate"))
1266
1395
  ReplacementEmailContent.struct_class = Types::ReplacementEmailContent
1267
1396
 
@@ -1380,6 +1509,8 @@ module Aws::SESV2
1380
1509
  TestRenderEmailTemplateResponse.add_member(:rendered_template, Shapes::ShapeRef.new(shape: RenderedEmailTemplate, required: true, location_name: "RenderedTemplate"))
1381
1510
  TestRenderEmailTemplateResponse.struct_class = Types::TestRenderEmailTemplateResponse
1382
1511
 
1512
+ TimestampList.member = Shapes::ShapeRef.new(shape: Timestamp)
1513
+
1383
1514
  TooManyRequestsException.struct_class = Types::TooManyRequestsException
1384
1515
 
1385
1516
  Topic.add_member(:topic_name, Shapes::ShapeRef.new(shape: TopicName, required: true, location_name: "TopicName"))
@@ -1455,6 +1586,15 @@ module Aws::SESV2
1455
1586
 
1456
1587
  UpdateEmailTemplateResponse.struct_class = Types::UpdateEmailTemplateResponse
1457
1588
 
1589
+ VdmAttributes.add_member(:vdm_enabled, Shapes::ShapeRef.new(shape: FeatureStatus, required: true, location_name: "VdmEnabled"))
1590
+ VdmAttributes.add_member(:dashboard_attributes, Shapes::ShapeRef.new(shape: DashboardAttributes, location_name: "DashboardAttributes"))
1591
+ VdmAttributes.add_member(:guardian_attributes, Shapes::ShapeRef.new(shape: GuardianAttributes, location_name: "GuardianAttributes"))
1592
+ VdmAttributes.struct_class = Types::VdmAttributes
1593
+
1594
+ VdmOptions.add_member(:dashboard_options, Shapes::ShapeRef.new(shape: DashboardOptions, location_name: "DashboardOptions"))
1595
+ VdmOptions.add_member(:guardian_options, Shapes::ShapeRef.new(shape: GuardianOptions, location_name: "GuardianOptions"))
1596
+ VdmOptions.struct_class = Types::VdmOptions
1597
+
1458
1598
  VolumeStatistics.add_member(:inbox_raw_count, Shapes::ShapeRef.new(shape: Volume, location_name: "InboxRawCount"))
1459
1599
  VolumeStatistics.add_member(:spam_raw_count, Shapes::ShapeRef.new(shape: Volume, location_name: "SpamRawCount"))
1460
1600
  VolumeStatistics.add_member(:projected_inbox, Shapes::ShapeRef.new(shape: Volume, location_name: "ProjectedInbox"))
@@ -1480,6 +1620,18 @@ module Aws::SESV2
1480
1620
  "uid" => "sesv2-2019-09-27",
1481
1621
  }
1482
1622
 
1623
+ api.add_operation(:batch_get_metric_data, Seahorse::Model::Operation.new.tap do |o|
1624
+ o.name = "BatchGetMetricData"
1625
+ o.http_method = "POST"
1626
+ o.http_request_uri = "/v2/email/metrics/batch"
1627
+ o.input = Shapes::ShapeRef.new(shape: BatchGetMetricDataRequest)
1628
+ o.output = Shapes::ShapeRef.new(shape: BatchGetMetricDataResponse)
1629
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
1630
+ o.errors << Shapes::ShapeRef.new(shape: InternalServiceErrorException)
1631
+ o.errors << Shapes::ShapeRef.new(shape: TooManyRequestsException)
1632
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
1633
+ end)
1634
+
1483
1635
  api.add_operation(:create_configuration_set, Seahorse::Model::Operation.new.tap do |o|
1484
1636
  o.name = "CreateConfigurationSet"
1485
1637
  o.http_method = "POST"
@@ -2115,6 +2267,23 @@ module Aws::SESV2
2115
2267
  )
2116
2268
  end)
2117
2269
 
2270
+ api.add_operation(:list_recommendations, Seahorse::Model::Operation.new.tap do |o|
2271
+ o.name = "ListRecommendations"
2272
+ o.http_method = "POST"
2273
+ o.http_request_uri = "/v2/email/vdm/recommendations"
2274
+ o.input = Shapes::ShapeRef.new(shape: ListRecommendationsRequest)
2275
+ o.output = Shapes::ShapeRef.new(shape: ListRecommendationsResponse)
2276
+ o.errors << Shapes::ShapeRef.new(shape: TooManyRequestsException)
2277
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
2278
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
2279
+ o[:pager] = Aws::Pager.new(
2280
+ limit_key: "page_size",
2281
+ tokens: {
2282
+ "next_token" => "next_token"
2283
+ }
2284
+ )
2285
+ end)
2286
+
2118
2287
  api.add_operation(:list_suppressed_destinations, Seahorse::Model::Operation.new.tap do |o|
2119
2288
  o.name = "ListSuppressedDestinations"
2120
2289
  o.http_method = "GET"
@@ -2184,6 +2353,16 @@ module Aws::SESV2
2184
2353
  o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
2185
2354
  end)
2186
2355
 
2356
+ api.add_operation(:put_account_vdm_attributes, Seahorse::Model::Operation.new.tap do |o|
2357
+ o.name = "PutAccountVdmAttributes"
2358
+ o.http_method = "PUT"
2359
+ o.http_request_uri = "/v2/email/account/vdm"
2360
+ o.input = Shapes::ShapeRef.new(shape: PutAccountVdmAttributesRequest)
2361
+ o.output = Shapes::ShapeRef.new(shape: PutAccountVdmAttributesResponse)
2362
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
2363
+ o.errors << Shapes::ShapeRef.new(shape: TooManyRequestsException)
2364
+ end)
2365
+
2187
2366
  api.add_operation(:put_configuration_set_delivery_options, Seahorse::Model::Operation.new.tap do |o|
2188
2367
  o.name = "PutConfigurationSetDeliveryOptions"
2189
2368
  o.http_method = "PUT"
@@ -2239,6 +2418,17 @@ module Aws::SESV2
2239
2418
  o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
2240
2419
  end)
2241
2420
 
2421
+ api.add_operation(:put_configuration_set_vdm_options, Seahorse::Model::Operation.new.tap do |o|
2422
+ o.name = "PutConfigurationSetVdmOptions"
2423
+ o.http_method = "PUT"
2424
+ o.http_request_uri = "/v2/email/configuration-sets/{ConfigurationSetName}/vdm-options"
2425
+ o.input = Shapes::ShapeRef.new(shape: PutConfigurationSetVdmOptionsRequest)
2426
+ o.output = Shapes::ShapeRef.new(shape: PutConfigurationSetVdmOptionsResponse)
2427
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
2428
+ o.errors << Shapes::ShapeRef.new(shape: TooManyRequestsException)
2429
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
2430
+ end)
2431
+
2242
2432
  api.add_operation(:put_dedicated_ip_in_pool, Seahorse::Model::Operation.new.tap do |o|
2243
2433
  o.name = "PutDedicatedIpInPool"
2244
2434
  o.http_method = "PUT"
@@ -50,9 +50,6 @@ module Aws::SESV2
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
56
53
  self[:use_dual_stack] = options[:use_dual_stack]
57
54
  self[:use_dual_stack] = false if self[:use_dual_stack].nil?
58
55
  if self[:use_dual_stack].nil?
@@ -29,82 +29,82 @@ module Aws::SESV2
29
29
  # @api private
30
30
  RULES = <<-JSON
31
31
  eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
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
- c1NldCIsImFyZ3YiOlt7InJlZiI6IkVuZHBvaW50In1dfSx7ImZuIjoicGFy
54
- c2VVUkwiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XSwiYXNzaWduIjoi
55
- dXJsIn1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
56
- eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBT
57
- In0sdHJ1ZV19XSwiZXJyb3IiOiJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJ
58
- UFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZCIsInR5
59
- cGUiOiJlcnJvciJ9LHsiY29uZGl0aW9ucyI6W10sInR5cGUiOiJ0cmVlIiwi
60
- cnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIs
61
- ImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxTdGFjayJ9LHRydWVdfV0sImVycm9y
62
- IjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3Rv
63
- bSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZCIsInR5cGUiOiJlcnJvciJ9
64
- LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6eyJyZWYiOiJF
65
- bmRwb2ludCJ9LCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBl
66
- IjoiZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xl
67
- YW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBTIn0sdHJ1ZV19LHsi
68
- Zm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRHVhbFN0
69
- YWNrIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0
70
- aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUseyJm
71
- biI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1bHQi
72
- fSwic3VwcG9ydHNGSVBTIl19XX0seyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJh
73
- cmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBh
74
- cnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlw
75
- ZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50
76
- Ijp7InVybCI6Imh0dHBzOi8vZW1haWwtZmlwcy57UmVnaW9ufS57UGFydGl0
77
- aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7
78
- fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19LHsiY29uZGl0
79
- aW9ucyI6W10sImVycm9yIjoiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFi
80
- bGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUg
81
- b3IgYm90aCIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJm
82
- biI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBTIn0s
83
- dHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
84
- W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUseyJmbiI6Imdl
85
- dEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1bHQifSwic3Vw
86
- cG9ydHNGSVBTIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25k
87
- aXRpb25zIjpbXSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9u
88
- cyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vZW1haWwtZmlwcy57
89
- UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0
90
- aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0s
91
- eyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGlzIGVuYWJsZWQgYnV0
92
- IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQUyIsInR5cGUi
93
- OiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVh
94
- bHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0
95
- eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJv
96
- b2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFy
97
- Z3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxT
98
- dGFjayJdfV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9u
99
- cyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vZW1haWwue1JlZ2lv
100
- bn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9IiwicHJv
101
- cGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1d
102
- fSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkR1YWxTdGFjayBpcyBlbmFi
103
- bGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxT
104
- dGFjayIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpbXSwiZW5k
105
- cG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9lbWFpbC57UmVnaW9ufS57UGFydGl0
106
- aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVy
107
- cyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0=
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
+ dCI6eyJ1cmwiOiJodHRwczovL2VtYWlsLWZpcHMue1JlZ2lvbn0ue1BhcnRp
77
+ dGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9IiwicHJvcGVydGllcyI6
78
+ e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfSx7ImNvbmRp
79
+ dGlvbnMiOltdLCJlcnJvciI6IkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5h
80
+ YmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25l
81
+ IG9yIGJvdGgiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W3si
82
+ Zm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9
83
+ LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMi
84
+ Olt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsiZm4iOiJn
85
+ ZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0In0sInN1
86
+ cHBvcnRzRklQUyJdfV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29u
87
+ ZGl0aW9ucyI6W10sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlv
88
+ bnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczovL2VtYWlsLWZpcHMu
89
+ e1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9IiwicHJvcGVy
90
+ dGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfV19
91
+ LHsiY29uZGl0aW9ucyI6W10sImVycm9yIjoiRklQUyBpcyBlbmFibGVkIGJ1
92
+ dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFMiLCJ0eXBl
93
+ IjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1
94
+ YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRHVhbFN0YWNrIn0sdHJ1ZV19XSwi
95
+ dHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJi
96
+ b29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJh
97
+ cmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFs
98
+ U3RhY2siXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlv
99
+ bnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczovL2VtYWlsLntSZWdp
100
+ b259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInBy
101
+ b3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9
102
+ XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5h
103
+ YmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFs
104
+ U3RhY2siLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVu
105
+ ZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vZW1haWwue1JlZ2lvbn0ue1BhcnRp
106
+ dGlvblJlc3VsdCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRl
107
+ cnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfV19
108
108
 
109
109
  JSON
110
110
  end