2, 'waiters' => [ 'TasksRunning' => [ 'delay' => 6, 'operation' => 'DescribeTasks', 'maxAttempts' => 100, 'acceptors' => [ [ 'expected' => 'STOPPED', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'tasks[].lastStatus', ], [ 'expected' => 'MISSING', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'failures[].reason', ], [ 'expected' => 'RUNNING', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'tasks[].lastStatus', ], ], ], 'TasksStopped' => [ 'delay' => 6, 'operation' => 'DescribeTasks', 'maxAttempts' => 100, 'acceptors' => [ [ 'expected' => 'STOPPED', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'tasks[].lastStatus', ], ], ], 'ServicesStable' => [ 'delay' => 15, 'operation' => 'DescribeServices', 'maxAttempts' => 40, 'acceptors' => [ [ 'expected' => 'MISSING', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'failures[].reason', ], [ 'expected' => 'DRAINING', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'services[].status', ], [ 'expected' => 'INACTIVE', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'services[].status', ], [ 'expected' => true, 'matcher' => 'path', 'state' => 'success', 'argument' => 'length(services[?!(length(deployments) == `1` && runningCount == desiredCount)]) == `0`', ], ], ], 'ServicesInactive' => [ 'delay' => 15, 'operation' => 'DescribeServices', 'maxAttempts' => 40, 'acceptors' => [ [ 'expected' => 'MISSING', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'failures[].reason', ], [ 'expected' => 'INACTIVE', 'matcher' => 'pathAny', 'state' => 'success', 'argument' => 'services[].status', ], ], ], ],];