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": "CREATE_FAILED", 36 "matcher": "pathAny", 37 "state": "failure" 38 }, 39 { 40 "argument": "Stacks[].StackStatus", 41 "expected": "DELETE_COMPLETE", 42 "matcher": "pathAny", 43 "state": "failure" 44 }, 45 { 46 "argument": "Stacks[].StackStatus", 47 "expected": "DELETE_FAILED", 48 "matcher": "pathAny", 49 "state": "failure" 50 }, 51 { 52 "argument": "Stacks[].StackStatus", 53 "expected": "ROLLBACK_FAILED", 54 "matcher": "pathAny", 55 "state": "failure" 56 }, 57 { 58 "argument": "Stacks[].StackStatus", 59 "expected": "ROLLBACK_COMPLETE", 60 "matcher": "pathAny", 61 "state": "failure" 62 }, 63 { 64 "expected": "ValidationError", 65 "matcher": "error", 66 "state": "failure" 67 } 68 ] 69 }, 70 "StackDeleteComplete": { 71 "delay": 30, 72 "operation": "DescribeStacks", 73 "maxAttempts": 120, 74 "description": "Wait until stack status is DELETE_COMPLETE.", 75 "acceptors": [ 76 { 77 "argument": "Stacks[].StackStatus", 78 "expected": "DELETE_COMPLETE", 79 "matcher": "pathAll", 80 "state": "success" 81 }, 82 { 83 "expected": "ValidationError", 84 "matcher": "error", 85 "state": "success" 86 }, 87 { 88 "argument": "Stacks[].StackStatus", 89 "expected": "DELETE_FAILED", 90 "matcher": "pathAny", 91 "state": "failure" 92 }, 93 { 94 "argument": "Stacks[].StackStatus", 95 "expected": "CREATE_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": "UPDATE_ROLLBACK_IN_PROGRESS", 108 "matcher": "pathAny", 109 "state": "failure" 110 }, 111 { 112 "argument": "Stacks[].StackStatus", 113 "expected": "UPDATE_ROLLBACK_FAILED", 114 "matcher": "pathAny", 115 "state": "failure" 116 }, 117 { 118 "argument": "Stacks[].StackStatus", 119 "expected": "UPDATE_ROLLBACK_COMPLETE", 120 "matcher": "pathAny", 121 "state": "failure" 122 } 123 ] 124 }, 125 "StackUpdateComplete": { 126 "delay": 30, 127 "maxAttempts": 120, 128 "operation": "DescribeStacks", 129 "description": "Wait until stack status is UPDATE_COMPLETE.", 130 "acceptors": [ 131 { 132 "argument": "Stacks[].StackStatus", 133 "expected": "UPDATE_COMPLETE", 134 "matcher": "pathAll", 135 "state": "success" 136 }, 137 { 138 "expected": "UPDATE_FAILED", 139 "matcher": "pathAny", 140 "state": "failure", 141 "argument": "Stacks[].StackStatus" 142 }, 143 { 144 "argument": "Stacks[].StackStatus", 145 "expected": "UPDATE_ROLLBACK_FAILED", 146 "matcher": "pathAny", 147 "state": "failure" 148 }, 149 { 150 "expected": "UPDATE_ROLLBACK_COMPLETE", 151 "matcher": "pathAny", 152 "state": "failure", 153 "argument": "Stacks[].StackStatus" 154 }, 155 { 156 "expected": "ValidationError", 157 "matcher": "error", 158 "state": "failure" 159 } 160 ] 161 }, 162 "StackImportComplete": { 163 "delay": 30, 164 "maxAttempts": 120, 165 "operation": "DescribeStacks", 166 "description": "Wait until stack status is IMPORT_COMPLETE.", 167 "acceptors": [ 168 { 169 "argument": "Stacks[].StackStatus", 170 "expected": "IMPORT_COMPLETE", 171 "matcher": "pathAll", 172 "state": "success" 173 }, 174 { 175 "expected": "ROLLBACK_COMPLETE", 176 "matcher": "pathAny", 177 "state": "failure", 178 "argument": "Stacks[].StackStatus" 179 }, 180 { 181 "expected": "ROLLBACK_FAILED", 182 "matcher": "pathAny", 183 "state": "failure", 184 "argument": "Stacks[].StackStatus" 185 }, 186 { 187 "argument": "Stacks[].StackStatus", 188 "expected": "IMPORT_ROLLBACK_IN_PROGRESS", 189 "matcher": "pathAny", 190 "state": "failure" 191 }, 192 { 193 "argument": "Stacks[].StackStatus", 194 "expected": "IMPORT_ROLLBACK_FAILED", 195 "matcher": "pathAny", 196 "state": "failure" 197 }, 198 { 199 "expected": "IMPORT_ROLLBACK_COMPLETE", 200 "matcher": "pathAny", 201 "state": "failure", 202 "argument": "Stacks[].StackStatus" 203 }, 204 { 205 "expected": "ValidationError", 206 "matcher": "error", 207 "state": "failure" 208 } 209 ] 210 }, 211 "StackRollbackComplete": { 212 "delay": 30, 213 "operation": "DescribeStacks", 214 "maxAttempts": 120, 215 "description": "Wait until stack status is UPDATE_ROLLBACK_COMPLETE.", 216 "acceptors": [ 217 { 218 "argument": "Stacks[].StackStatus", 219 "expected": "UPDATE_ROLLBACK_COMPLETE", 220 "matcher": "pathAll", 221 "state": "success" 222 }, 223 { 224 "argument": "Stacks[].StackStatus", 225 "expected": "UPDATE_FAILED", 226 "matcher": "pathAny", 227 "state": "failure" 228 }, 229 { 230 "argument": "Stacks[].StackStatus", 231 "expected": "UPDATE_ROLLBACK_FAILED", 232 "matcher": "pathAny", 233 "state": "failure" 234 }, 235 { 236 "argument": "Stacks[].StackStatus", 237 "expected": "DELETE_FAILED", 238 "matcher": "pathAny", 239 "state": "failure" 240 }, 241 { 242 "expected": "ValidationError", 243 "matcher": "error", 244 "state": "failure" 245 } 246 ] 247 }, 248 "ChangeSetCreateComplete": { 249 "delay": 30, 250 "operation": "DescribeChangeSet", 251 "maxAttempts": 120, 252 "description": "Wait until change set status is CREATE_COMPLETE.", 253 "acceptors": [ 254 { 255 "argument": "Status", 256 "expected": "CREATE_COMPLETE", 257 "matcher": "path", 258 "state": "success" 259 }, 260 { 261 "argument": "Status", 262 "expected": "FAILED", 263 "matcher": "path", 264 "state": "failure" 265 }, 266 { 267 "expected": "ValidationError", 268 "matcher": "error", 269 "state": "failure" 270 } 271 ] 272 }, 273 "TypeRegistrationComplete": { 274 "delay": 30, 275 "operation": "DescribeTypeRegistration", 276 "maxAttempts": 120, 277 "description": "Wait until type registration is COMPLETE.", 278 "acceptors": [ 279 { 280 "argument": "ProgressStatus", 281 "expected": "COMPLETE", 282 "matcher": "path", 283 "state": "success" 284 }, 285 { 286 "argument": "ProgressStatus", 287 "expected": "FAILED", 288 "matcher": "path", 289 "state": "failure" 290 } 291 ] 292 } 293 } 294} 295