{
  "version" : 2,
  "waiters" : {
    "FleetActive" : {
      "description" : "Wait until a Fleet is activated. Use this after invoking CreateFleet or UpdateFleet.",
      "delay" : 5,
      "maxAttempts" : 180,
      "operation" : "GetFleet",
      "acceptors" : [ {
        "matcher" : "path",
        "argument" : "status",
        "state" : "success",
        "expected" : "ACTIVE"
      }, {
        "matcher" : "path",
        "argument" : "status",
        "state" : "failure",
        "expected" : "CREATE_FAILED"
      }, {
        "matcher" : "path",
        "argument" : "status",
        "state" : "failure",
        "expected" : "UPDATE_FAILED"
      } ]
    },
    "JobComplete" : {
      "description" : "Wait until a job reaches any terminal status. Waits up to 1 hour by default.",
      "delay" : 15,
      "maxAttempts" : 240,
      "operation" : "GetJob",
      "acceptors" : [ {
        "matcher" : "path",
        "argument" : "taskRunStatus",
        "state" : "success",
        "expected" : "SUCCEEDED"
      }, {
        "matcher" : "path",
        "argument" : "taskRunStatus",
        "state" : "success",
        "expected" : "FAILED"
      }, {
        "matcher" : "path",
        "argument" : "taskRunStatus",
        "state" : "success",
        "expected" : "CANCELED"
      }, {
        "matcher" : "path",
        "argument" : "taskRunStatus",
        "state" : "success",
        "expected" : "SUSPENDED"
      }, {
        "matcher" : "path",
        "argument" : "taskRunStatus",
        "state" : "success",
        "expected" : "NOT_COMPATIBLE"
      }, {
        "matcher" : "path",
        "argument" : "lifecycleStatus",
        "state" : "success",
        "expected" : "ARCHIVED"
      } ]
    },
    "JobCreateComplete" : {
      "description" : "Wait until a job is created. Use this after invoking CreateJob.",
      "delay" : 1,
      "maxAttempts" : 120,
      "operation" : "GetJob",
      "acceptors" : [ {
        "matcher" : "path",
        "argument" : "lifecycleStatus",
        "state" : "success",
        "expected" : "CREATE_COMPLETE"
      }, {
        "matcher" : "path",
        "argument" : "lifecycleStatus",
        "state" : "success",
        "expected" : "UPDATE_IN_PROGRESS"
      }, {
        "matcher" : "path",
        "argument" : "lifecycleStatus",
        "state" : "success",
        "expected" : "UPDATE_FAILED"
      }, {
        "matcher" : "path",
        "argument" : "lifecycleStatus",
        "state" : "success",
        "expected" : "UPDATE_SUCCEEDED"
      }, {
        "matcher" : "path",
        "argument" : "lifecycleStatus",
        "state" : "failure",
        "expected" : "UPLOAD_FAILED"
      }, {
        "matcher" : "path",
        "argument" : "lifecycleStatus",
        "state" : "failure",
        "expected" : "CREATE_FAILED"
      } ]
    },
    "JobSucceeded" : {
      "description" : "Wait until a job has succeeded. Fails if the job reaches a non-successful terminal status. Waits up to 1 hour by default.",
      "delay" : 15,
      "maxAttempts" : 240,
      "operation" : "GetJob",
      "acceptors" : [ {
        "matcher" : "path",
        "argument" : "taskRunStatus",
        "state" : "success",
        "expected" : "SUCCEEDED"
      }, {
        "matcher" : "path",
        "argument" : "taskRunStatus",
        "state" : "failure",
        "expected" : "FAILED"
      }, {
        "matcher" : "path",
        "argument" : "taskRunStatus",
        "state" : "failure",
        "expected" : "CANCELED"
      }, {
        "matcher" : "path",
        "argument" : "taskRunStatus",
        "state" : "failure",
        "expected" : "SUSPENDED"
      }, {
        "matcher" : "path",
        "argument" : "taskRunStatus",
        "state" : "failure",
        "expected" : "NOT_COMPATIBLE"
      }, {
        "matcher" : "path",
        "argument" : "lifecycleStatus",
        "state" : "failure",
        "expected" : "ARCHIVED"
      } ]
    },
    "LicenseEndpointDeleted" : {
      "description" : "Wait until a LicenseEndpoint is Deleted. Use this after invoking DeleteLicenseEndpoint.",
      "delay" : 10,
      "maxAttempts" : 234,
      "operation" : "GetLicenseEndpoint",
      "acceptors" : [ {
        "matcher" : "error",
        "state" : "success",
        "expected" : "ResourceNotFoundException"
      }, {
        "matcher" : "path",
        "argument" : "status",
        "state" : "failure",
        "expected" : "NOT_READY"
      } ]
    },
    "LicenseEndpointValid" : {
      "description" : "Wait until a LicenseEndpoint is Ready. Use this after invoking CreateLicenseEndpoint.",
      "delay" : 10,
      "maxAttempts" : 114,
      "operation" : "GetLicenseEndpoint",
      "acceptors" : [ {
        "matcher" : "path",
        "argument" : "status",
        "state" : "success",
        "expected" : "READY"
      }, {
        "matcher" : "path",
        "argument" : "status",
        "state" : "failure",
        "expected" : "NOT_READY"
      } ]
    },
    "QueueFleetAssociationStopped" : {
      "description" : "Wait until a QueueFleetAssociation is stopped. Use this after setting the status to STOP_SCHEDULING_AND_COMPLETE_TASKS or STOP_SCHEDULING_AND_CANCEL_TASKS to wait for a QueueFleetAssociation to reach STOPPED",
      "delay" : 10,
      "maxAttempts" : 60,
      "operation" : "GetQueueFleetAssociation",
      "acceptors" : [ {
        "matcher" : "path",
        "argument" : "status",
        "state" : "success",
        "expected" : "STOPPED"
      } ]
    },
    "QueueLimitAssociationStopped" : {
      "description" : "Wait until a QueueLimitAssociation is stopped. Use this after setting the status to STOP_LIMIT_USAGE_AND_COMPLETE_TASKS or STOP_LIMIT_USAGE_AND_CANCEL_TASKS to wait for a QueueLimitAssociation to reach STOPPED",
      "delay" : 10,
      "maxAttempts" : 60,
      "operation" : "GetQueueLimitAssociation",
      "acceptors" : [ {
        "matcher" : "path",
        "argument" : "status",
        "state" : "success",
        "expected" : "STOPPED"
      } ]
    },
    "QueueScheduling" : {
      "delay" : 10,
      "maxAttempts" : 70,
      "operation" : "GetQueue",
      "acceptors" : [ {
        "matcher" : "path",
        "argument" : "status",
        "state" : "success",
        "expected" : "SCHEDULING"
      } ]
    },
    "QueueSchedulingBlocked" : {
      "delay" : 10,
      "maxAttempts" : 30,
      "operation" : "GetQueue",
      "acceptors" : [ {
        "matcher" : "path",
        "argument" : "status",
        "state" : "success",
        "expected" : "SCHEDULING_BLOCKED"
      } ]
    }
  }
}