1{ 2 "version": 2, 3 "waiters": { 4 "StackExists": { 5 "delay": 5, 6 "operation": "DescribeStacks", 7 "maxAttempts": 20, 8 "acceptors": [ 9 { 10 "matcher": "status", 11 "expected": 200, 12 "state": "success" 13 }, 14 { 15 "matcher": "error", 16 "expected": "ValidationError", 17 "state": "retry" 18 } 19 ] 20 }, 21 "StackCreateComplete": { 22 "delay": 30, 23 "operation": "DescribeStacks", 24 "maxAttempts": 120, 25 "description": "Wait until stack status is CREATE_COMPLETE.", 26 "acceptors": [ 27 { 28 "argument": "Stacks[].StackStatus", 29 "expected": "CREATE_COMPLETE", 30 "matcher": "pathAll", 31 "state": "success" 32 }, 33 { 34 "argument": "Stacks[].StackStatus", 35 "expected": "UPDATE_COMPLETE", 36 "matcher": "pathAll", 37 "state": "success" 38 }, 39 { 40 "argument": "Stacks[].StackStatus", 41 "expected": "UPDATE_IN_PROGRESS", 42 "matcher": "pathAll", 43 "state": "success" 44 }, 45 { 46 "argument": "Stacks[].StackStatus", 47 "expected": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS", 48 "matcher": "pathAll", 49 "state": "success" 50 }, 51 { 52 "argument": "Stacks[].StackStatus", 53 "expected": "UPDATE_FAILED", 54 "matcher": "pathAll", 55 "state": "success" 56 }, 57 { 58 "argument": "Stacks[].StackStatus", 59 "expected": "UPDATE_ROLLBACK_IN_PROGRESS", 60 "matcher": "pathAll", 61 "state": "success" 62 }, 63 { 64 "argument": "Stacks[].StackStatus", 65 "expected": "UPDATE_ROLLBACK_FAILED", 66 "matcher": "pathAll", 67 "state": "success" 68 }, 69 { 70 "argument": "Stacks[].StackStatus", 71 "expected": "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS", 72 "matcher": "pathAll", 73 "state": "success" 74 }, 75 { 76 "argument": "Stacks[].StackStatus", 77 "expected": "UPDATE_ROLLBACK_COMPLETE", 78 "matcher": "pathAll", 79 "state": "success" 80 }, 81 { 82 "argument": "Stacks[].StackStatus", 83 "expected": "CREATE_FAILED", 84 "matcher": "pathAny", 85 "state": "failure" 86 }, 87 { 88 "argument": "Stacks[].StackStatus", 89 "expected": "DELETE_COMPLETE", 90 "matcher": "pathAny", 91 "state": "failure" 92 }, 93 { 94 "argument": "Stacks[].StackStatus", 95 "expected": "DELETE_FAILED", 96 "matcher": "pathAny", 97 "state": "failure" 98 }, 99 { 100 "argument": "Stacks[].StackStatus", 101 "expected": "ROLLBACK_FAILED", 102 "matcher": "pathAny", 103 "state": "failure" 104 }, 105 { 106 "argument": "Stacks[].StackStatus", 107 "expected": "ROLLBACK_COMPLETE", 108 "matcher": "pathAny", 109 "state": "failure" 110 }, 111 { 112 "expected": "ValidationError", 113 "matcher": "error", 114 "state": "failure" 115 } 116 ] 117 }, 118 "StackDeleteComplete": { 119 "delay": 30, 120 "operation": "DescribeStacks", 121 "maxAttempts": 120, 122 "description": "Wait until stack status is DELETE_COMPLETE.", 123 "acceptors": [ 124 { 125 "argument": "Stacks[].StackStatus", 126 "expected": "DELETE_COMPLETE", 127 "matcher": "pathAll", 128 "state": "success" 129 }, 130 { 131 "expected": "ValidationError", 132 "matcher": "error", 133 "state": "success" 134 }, 135 { 136 "argument": "Stacks[].StackStatus", 137 "expected": "DELETE_FAILED", 138 "matcher": "pathAny", 139 "state": "failure" 140 }, 141 { 142 "argument": "Stacks[].StackStatus", 143 "expected": "CREATE_FAILED", 144 "matcher": "pathAny", 145 "state": "failure" 146 }, 147 { 148 "argument": "Stacks[].StackStatus", 149 "expected": "ROLLBACK_FAILED", 150 "matcher": "pathAny", 151 "state": "failure" 152 }, 153 { 154 "argument": "Stacks[].StackStatus", 155 "expected": "UPDATE_ROLLBACK_IN_PROGRESS", 156 "matcher": "pathAny", 157 "state": "failure" 158 }, 159 { 160 "argument": "Stacks[].StackStatus", 161 "expected": "UPDATE_ROLLBACK_FAILED", 162 "matcher": "pathAny", 163 "state": "failure" 164 }, 165 { 166 "argument": "Stacks[].StackStatus", 167 "expected": "UPDATE_ROLLBACK_COMPLETE", 168 "matcher": "pathAny", 169 "state": "failure" 170 }, 171 { 172 "argument": "Stacks[].StackStatus", 173 "expected": "UPDATE_COMPLETE", 174 "matcher": "pathAny", 175 "state": "failure" 176 } 177 ] 178 }, 179 "StackUpdateComplete": { 180 "delay": 30, 181 "maxAttempts": 120, 182 "operation": "DescribeStacks", 183 "description": "Wait until stack status is UPDATE_COMPLETE.", 184 "acceptors": [ 185 { 186 "argument": "Stacks[].StackStatus", 187 "expected": "UPDATE_COMPLETE", 188 "matcher": "pathAll", 189 "state": "success" 190 }, 191 { 192 "expected": "UPDATE_FAILED", 193 "matcher": "pathAny", 194 "state": "failure", 195 "argument": "Stacks[].StackStatus" 196 }, 197 { 198 "argument": "Stacks[].StackStatus", 199 "expected": "UPDATE_ROLLBACK_FAILED", 200 "matcher": "pathAny", 201 "state": "failure" 202 }, 203 { 204 "expected": "UPDATE_ROLLBACK_COMPLETE", 205 "matcher": "pathAny", 206 "state": "failure", 207 "argument": "Stacks[].StackStatus" 208 }, 209 { 210 "expected": "ValidationError", 211 "matcher": "error", 212 "state": "failure" 213 } 214 ] 215 }, 216 "StackImportComplete": { 217 "delay": 30, 218 "maxAttempts": 120, 219 "operation": "DescribeStacks", 220 "description": "Wait until stack status is IMPORT_COMPLETE.", 221 "acceptors": [ 222 { 223 "argument": "Stacks[].StackStatus", 224 "expected": "IMPORT_COMPLETE", 225 "matcher": "pathAll", 226 "state": "success" 227 }, 228 { 229 "expected": "ROLLBACK_COMPLETE", 230 "matcher": "pathAny", 231 "state": "failure", 232 "argument": "Stacks[].StackStatus" 233 }, 234 { 235 "expected": "ROLLBACK_FAILED", 236 "matcher": "pathAny", 237 "state": "failure", 238 "argument": "Stacks[].StackStatus" 239 }, 240 { 241 "argument": "Stacks[].StackStatus", 242 "expected": "IMPORT_ROLLBACK_IN_PROGRESS", 243 "matcher": "pathAny", 244 "state": "failure" 245 }, 246 { 247 "argument": "Stacks[].StackStatus", 248 "expected": "IMPORT_ROLLBACK_FAILED", 249 "matcher": "pathAny", 250 "state": "failure" 251 }, 252 { 253 "expected": "IMPORT_ROLLBACK_COMPLETE", 254 "matcher": "pathAny", 255 "state": "failure", 256 "argument": "Stacks[].StackStatus" 257 }, 258 { 259 "expected": "ValidationError", 260 "matcher": "error", 261 "state": "failure" 262 } 263 ] 264 }, 265 "StackRollbackComplete": { 266 "delay": 30, 267 "operation": "DescribeStacks", 268 "maxAttempts": 120, 269 "description": "Wait until stack status is UPDATE_ROLLBACK_COMPLETE.", 270 "acceptors": [ 271 { 272 "argument": "Stacks[].StackStatus", 273 "expected": "UPDATE_ROLLBACK_COMPLETE", 274 "matcher": "pathAll", 275 "state": "success" 276 }, 277 { 278 "argument": "Stacks[].StackStatus", 279 "expected": "UPDATE_FAILED", 280 "matcher": "pathAny", 281 "state": "failure" 282 }, 283 { 284 "argument": "Stacks[].StackStatus", 285 "expected": "UPDATE_ROLLBACK_FAILED", 286 "matcher": "pathAny", 287 "state": "failure" 288 }, 289 { 290 "argument": "Stacks[].StackStatus", 291 "expected": "DELETE_FAILED", 292 "matcher": "pathAny", 293 "state": "failure" 294 }, 295 { 296 "expected": "ValidationError", 297 "matcher": "error", 298 "state": "failure" 299 } 300 ] 301 }, 302 "ChangeSetCreateComplete": { 303 "delay": 30, 304 "operation": "DescribeChangeSet", 305 "maxAttempts": 120, 306 "description": "Wait until change set status is CREATE_COMPLETE.", 307 "acceptors": [ 308 { 309 "argument": "Status", 310 "expected": "CREATE_COMPLETE", 311 "matcher": "path", 312 "state": "success" 313 }, 314 { 315 "argument": "Status", 316 "expected": "FAILED", 317 "matcher": "path", 318 "state": "failure" 319 }, 320 { 321 "expected": "ValidationError", 322 "matcher": "error", 323 "state": "failure" 324 } 325 ] 326 }, 327 "TypeRegistrationComplete": { 328 "delay": 30, 329 "operation": "DescribeTypeRegistration", 330 "maxAttempts": 120, 331 "description": "Wait until type registration is COMPLETE.", 332 "acceptors": [ 333 { 334 "argument": "ProgressStatus", 335 "expected": "COMPLETE", 336 "matcher": "path", 337 "state": "success" 338 }, 339 { 340 "argument": "ProgressStatus", 341 "expected": "FAILED", 342 "matcher": "path", 343 "state": "failure" 344 } 345 ] 346 } 347 } 348} 349