aws-sdk-sesv2 1.28.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"
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::SESV2
11
+ # Endpoint parameters used to influence endpoints per request.
12
+ #
13
+ # @!attribute region
14
+ # The AWS region used to dispatch the request.
15
+ #
16
+ # @return [String]
17
+ #
18
+ # @!attribute use_dual_stack
19
+ # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
20
+ #
21
+ # @return [Boolean]
22
+ #
23
+ # @!attribute use_fips
24
+ # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
25
+ #
26
+ # @return [Boolean]
27
+ #
28
+ # @!attribute endpoint
29
+ # Override the endpoint used to send this request
30
+ #
31
+ # @return [String]
32
+ #
33
+ EndpointParameters = Struct.new(
34
+ :region,
35
+ :use_dual_stack,
36
+ :use_fips,
37
+ :endpoint,
38
+ ) do
39
+ include Aws::Structure
40
+
41
+ # @api private
42
+ class << self
43
+ PARAM_MAP = {
44
+ 'Region' => :region,
45
+ 'UseDualStack' => :use_dual_stack,
46
+ 'UseFIPS' => :use_fips,
47
+ 'Endpoint' => :endpoint,
48
+ }.freeze
49
+ end
50
+
51
+ def initialize(options = {})
52
+ self[:region] = options[:region]
53
+ self[:use_dual_stack] = options[:use_dual_stack]
54
+ self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
+ if self[:use_dual_stack].nil?
56
+ raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
57
+ end
58
+ self[:use_fips] = options[:use_fips]
59
+ self[:use_fips] = false if self[:use_fips].nil?
60
+ if self[:use_fips].nil?
61
+ raise ArgumentError, "Missing required EndpointParameter: :use_fips"
62
+ end
63
+ self[:endpoint] = options[:endpoint]
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,111 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::SESV2
11
+ class EndpointProvider
12
+ def initialize(rule_set = nil)
13
+ @@rule_set ||= begin
14
+ endpoint_rules = Aws::Json.load(Base64.decode64(RULES))
15
+ Aws::Endpoints::RuleSet.new(
16
+ version: endpoint_rules['version'],
17
+ service_id: endpoint_rules['serviceId'],
18
+ parameters: endpoint_rules['parameters'],
19
+ rules: endpoint_rules['rules']
20
+ )
21
+ end
22
+ @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
+ end
24
+
25
+ def resolve_endpoint(parameters)
26
+ @provider.resolve_endpoint(parameters)
27
+ end
28
+
29
+ # @api private
30
+ RULES = <<-JSON
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
+ 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
+
109
+ JSON
110
+ end
111
+ end