Skip to content

Commit 87a8894

Browse files
Add support to test a canary update by invoking a dry run of a canary. This behavior can be used via the new StartCanaryDryRun API along with new fields in UpdateCanary to apply dry run changes. Also includes changes in GetCanary and GetCanaryRuns to support retrieving dry run configurations.
1 parent 49feeea commit 87a8894

34 files changed

+2154
-173
lines changed

generator/ServiceModels/synthetics/synthetics-2017-10-11.api.json

Lines changed: 95 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,22 @@
259259
{"shape":"ConflictException"}
260260
]
261261
},
262+
"StartCanaryDryRun":{
263+
"name":"StartCanaryDryRun",
264+
"http":{
265+
"method":"POST",
266+
"requestUri":"/canary/{name}/dry-run/start"
267+
},
268+
"input":{"shape":"StartCanaryDryRunRequest"},
269+
"output":{"shape":"StartCanaryDryRunResponse"},
270+
"errors":[
271+
{"shape":"InternalServerException"},
272+
{"shape":"ValidationException"},
273+
{"shape":"ResourceNotFoundException"},
274+
{"shape":"ConflictException"},
275+
{"shape":"AccessDeniedException"}
276+
]
277+
},
262278
"StopCanary":{
263279
"name":"StopCanary",
264280
"http":{
@@ -319,11 +335,20 @@
319335
{"shape":"ValidationException"},
320336
{"shape":"ResourceNotFoundException"},
321337
{"shape":"ConflictException"},
322-
{"shape":"RequestEntityTooLargeException"}
338+
{"shape":"RequestEntityTooLargeException"},
339+
{"shape":"AccessDeniedException"}
323340
]
324341
}
325342
},
326343
"shapes":{
344+
"AccessDeniedException":{
345+
"type":"structure",
346+
"members":{
347+
"Message":{"shape":"ErrorMessage"}
348+
},
349+
"error":{"httpStatusCode":403},
350+
"exception":true
351+
},
327352
"ArtifactConfigInput":{
328353
"type":"structure",
329354
"members":{
@@ -353,8 +378,7 @@
353378
},
354379
"AssociateResourceResponse":{
355380
"type":"structure",
356-
"members":{
357-
}
381+
"members":{}
358382
},
359383
"BadRequestException":{
360384
"type":"structure",
@@ -419,7 +443,8 @@
419443
"VisualReference":{"shape":"VisualReferenceOutput"},
420444
"ProvisionedResourceCleanup":{"shape":"ProvisionedResourceCleanupSetting"},
421445
"Tags":{"shape":"TagMap"},
422-
"ArtifactConfig":{"shape":"ArtifactConfigOutput"}
446+
"ArtifactConfig":{"shape":"ArtifactConfigOutput"},
447+
"DryRunConfig":{"shape":"DryRunConfigOutput"}
423448
}
424449
},
425450
"CanaryArn":{
@@ -446,6 +471,12 @@
446471
"Handler":{"shape":"String"}
447472
}
448473
},
474+
"CanaryDryRunConfigOutput":{
475+
"type":"structure",
476+
"members":{
477+
"DryRunId":{"shape":"UUID"}
478+
}
479+
},
449480
"CanaryLastRun":{
450481
"type":"structure",
451482
"members":{
@@ -466,7 +497,8 @@
466497
"Name":{"shape":"CanaryName"},
467498
"Status":{"shape":"CanaryRunStatus"},
468499
"Timeline":{"shape":"CanaryRunTimeline"},
469-
"ArtifactS3Location":{"shape":"String"}
500+
"ArtifactS3Location":{"shape":"String"},
501+
"DryRunConfig":{"shape":"CanaryDryRunConfigOutput"}
470502
}
471503
},
472504
"CanaryRunConfigInput":{
@@ -662,8 +694,7 @@
662694
},
663695
"DeleteCanaryResponse":{
664696
"type":"structure",
665-
"members":{
666-
}
697+
"members":{}
667698
},
668699
"DeleteGroupRequest":{
669700
"type":"structure",
@@ -678,8 +709,7 @@
678709
},
679710
"DeleteGroupResponse":{
680711
"type":"structure",
681-
"members":{
682-
}
712+
"members":{}
683713
},
684714
"DescribeCanariesLastRunNameFilter":{
685715
"type":"list",
@@ -753,8 +783,14 @@
753783
}
754784
},
755785
"DisassociateResourceResponse":{
786+
"type":"structure",
787+
"members":{}
788+
},
789+
"DryRunConfigOutput":{
756790
"type":"structure",
757791
"members":{
792+
"DryRunId":{"shape":"UUID"},
793+
"LastDryRunExecutionStatus":{"shape":"String"}
758794
}
759795
},
760796
"EncryptionMode":{
@@ -789,6 +825,11 @@
789825
"shape":"CanaryName",
790826
"location":"uri",
791827
"locationName":"name"
828+
},
829+
"DryRunId":{
830+
"shape":"UUID",
831+
"location":"querystring",
832+
"locationName":"dryRunId"
792833
}
793834
}
794835
},
@@ -808,7 +849,9 @@
808849
"locationName":"name"
809850
},
810851
"NextToken":{"shape":"Token"},
811-
"MaxResults":{"shape":"MaxSize100"}
852+
"MaxResults":{"shape":"MaxSize100"},
853+
"DryRunId":{"shape":"UUID"},
854+
"RunType":{"shape":"RunType"}
812855
}
813856
},
814857
"GetCanaryRunsResponse":{
@@ -1062,6 +1105,13 @@
10621105
"min":1,
10631106
"pattern":"arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+"
10641107
},
1108+
"RunType":{
1109+
"type":"string",
1110+
"enum":[
1111+
"CANARY_RUN",
1112+
"DRY_RUN"
1113+
]
1114+
},
10651115
"RuntimeVersion":{
10661116
"type":"structure",
10671117
"members":{
@@ -1097,6 +1147,34 @@
10971147
"error":{"httpStatusCode":402},
10981148
"exception":true
10991149
},
1150+
"StartCanaryDryRunRequest":{
1151+
"type":"structure",
1152+
"required":["Name"],
1153+
"members":{
1154+
"Name":{
1155+
"shape":"CanaryName",
1156+
"location":"uri",
1157+
"locationName":"name"
1158+
},
1159+
"Code":{"shape":"CanaryCodeInput"},
1160+
"RuntimeVersion":{"shape":"String"},
1161+
"RunConfig":{"shape":"CanaryRunConfigInput"},
1162+
"VpcConfig":{"shape":"VpcConfigInput"},
1163+
"ExecutionRoleArn":{"shape":"RoleArn"},
1164+
"SuccessRetentionPeriodInDays":{"shape":"MaxSize1024"},
1165+
"FailureRetentionPeriodInDays":{"shape":"MaxSize1024"},
1166+
"VisualReference":{"shape":"VisualReferenceInput"},
1167+
"ArtifactS3Location":{"shape":"String"},
1168+
"ArtifactConfig":{"shape":"ArtifactConfigInput"},
1169+
"ProvisionedResourceCleanup":{"shape":"ProvisionedResourceCleanupSetting"}
1170+
}
1171+
},
1172+
"StartCanaryDryRunResponse":{
1173+
"type":"structure",
1174+
"members":{
1175+
"DryRunConfig":{"shape":"DryRunConfigOutput"}
1176+
}
1177+
},
11001178
"StartCanaryRequest":{
11011179
"type":"structure",
11021180
"required":["Name"],
@@ -1110,8 +1188,7 @@
11101188
},
11111189
"StartCanaryResponse":{
11121190
"type":"structure",
1113-
"members":{
1114-
}
1191+
"members":{}
11151192
},
11161193
"StopCanaryRequest":{
11171194
"type":"structure",
@@ -1126,8 +1203,7 @@
11261203
},
11271204
"StopCanaryResponse":{
11281205
"type":"structure",
1129-
"members":{
1130-
}
1206+
"members":{}
11311207
},
11321208
"String":{
11331209
"type":"string",
@@ -1181,8 +1257,7 @@
11811257
},
11821258
"TagResourceResponse":{
11831259
"type":"structure",
1184-
"members":{
1185-
}
1260+
"members":{}
11861261
},
11871262
"TagValue":{
11881263
"type":"string",
@@ -1227,8 +1302,7 @@
12271302
},
12281303
"UntagResourceResponse":{
12291304
"type":"structure",
1230-
"members":{
1231-
}
1305+
"members":{}
12321306
},
12331307
"UpdateCanaryRequest":{
12341308
"type":"structure",
@@ -1250,13 +1324,13 @@
12501324
"VisualReference":{"shape":"VisualReferenceInput"},
12511325
"ArtifactS3Location":{"shape":"String"},
12521326
"ArtifactConfig":{"shape":"ArtifactConfigInput"},
1253-
"ProvisionedResourceCleanup":{"shape":"ProvisionedResourceCleanupSetting"}
1327+
"ProvisionedResourceCleanup":{"shape":"ProvisionedResourceCleanupSetting"},
1328+
"DryRunId":{"shape":"UUID"}
12541329
}
12551330
},
12561331
"UpdateCanaryResponse":{
12571332
"type":"structure",
1258-
"members":{
1259-
}
1333+
"members":{}
12601334
},
12611335
"ValidationException":{
12621336
"type":"structure",

0 commit comments

Comments
 (0)