{
  "version": "2.0",
  "metadata": {
    "apiVersion": "2016-08-10",
    "endpointPrefix": "batch",
    "jsonVersion": "1.1",
    "protocol": "rest-json",
    "serviceAbbreviation": "AWS Batch",
    "serviceFullName": "AWS Batch",
    "signatureVersion": "v4",
    "uid": "batch-2016-08-10"
  },
  "operations": {
    "CancelJob": {
      "http": {
        "requestUri": "/v1/canceljob"
      },
      "input": {
        "type": "structure",
        "required": [
          "jobId",
          "reason"
        ],
        "members": {
          "jobId": {},
          "reason": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "CreateComputeEnvironment": {
      "http": {
        "requestUri": "/v1/createcomputeenvironment"
      },
      "input": {
        "type": "structure",
        "required": [
          "computeEnvironmentName",
          "type",
          "serviceRole"
        ],
        "members": {
          "computeEnvironmentName": {},
          "type": {},
          "state": {},
          "computeResources": {
            "shape": "S7"
          },
          "serviceRole": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "computeEnvironmentName": {},
          "computeEnvironmentArn": {}
        }
      }
    },
    "CreateJobQueue": {
      "http": {
        "requestUri": "/v1/createjobqueue"
      },
      "input": {
        "type": "structure",
        "required": [
          "jobQueueName",
          "priority",
          "computeEnvironmentOrder"
        ],
        "members": {
          "jobQueueName": {},
          "state": {},
          "priority": {
            "type": "integer"
          },
          "computeEnvironmentOrder": {
            "shape": "Sf"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "jobQueueName",
          "jobQueueArn"
        ],
        "members": {
          "jobQueueName": {},
          "jobQueueArn": {}
        }
      }
    },
    "DeleteComputeEnvironment": {
      "http": {
        "requestUri": "/v1/deletecomputeenvironment"
      },
      "input": {
        "type": "structure",
        "required": [
          "computeEnvironment"
        ],
        "members": {
          "computeEnvironment": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeleteJobQueue": {
      "http": {
        "requestUri": "/v1/deletejobqueue"
      },
      "input": {
        "type": "structure",
        "required": [
          "jobQueue"
        ],
        "members": {
          "jobQueue": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeregisterJobDefinition": {
      "http": {
        "requestUri": "/v1/deregisterjobdefinition"
      },
      "input": {
        "type": "structure",
        "required": [
          "jobDefinition"
        ],
        "members": {
          "jobDefinition": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DescribeComputeEnvironments": {
      "http": {
        "requestUri": "/v1/describecomputeenvironments"
      },
      "input": {
        "type": "structure",
        "members": {
          "computeEnvironments": {
            "shape": "Sa"
          },
          "maxResults": {
            "type": "integer"
          },
          "nextToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "computeEnvironments": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "computeEnvironmentName",
                "computeEnvironmentArn",
                "ecsClusterArn"
              ],
              "members": {
                "computeEnvironmentName": {},
                "computeEnvironmentArn": {},
                "ecsClusterArn": {},
                "type": {},
                "state": {},
                "status": {},
                "statusReason": {},
                "computeResources": {
                  "shape": "S7"
                },
                "serviceRole": {}
              }
            }
          },
          "nextToken": {}
        }
      }
    },
    "DescribeJobDefinitions": {
      "http": {
        "requestUri": "/v1/describejobdefinitions"
      },
      "input": {
        "type": "structure",
        "members": {
          "jobDefinitions": {
            "shape": "Sa"
          },
          "maxResults": {
            "type": "integer"
          },
          "jobDefinitionName": {},
          "status": {},
          "nextToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "jobDefinitions": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "jobDefinitionName",
                "jobDefinitionArn",
                "revision",
                "type"
              ],
              "members": {
                "jobDefinitionName": {},
                "jobDefinitionArn": {},
                "revision": {
                  "type": "integer"
                },
                "status": {},
                "type": {},
                "parameters": {
                  "shape": "Sx"
                },
                "retryStrategy": {
                  "shape": "Sy"
                },
                "containerProperties": {
                  "shape": "Sz"
                }
              }
            }
          },
          "nextToken": {}
        }
      }
    },
    "DescribeJobQueues": {
      "http": {
        "requestUri": "/v1/describejobqueues"
      },
      "input": {
        "type": "structure",
        "members": {
          "jobQueues": {
            "shape": "Sa"
          },
          "maxResults": {
            "type": "integer"
          },
          "nextToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "jobQueues": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "jobQueueName",
                "jobQueueArn",
                "state",
                "priority",
                "computeEnvironmentOrder"
              ],
              "members": {
                "jobQueueName": {},
                "jobQueueArn": {},
                "state": {},
                "status": {},
                "statusReason": {},
                "priority": {
                  "type": "integer"
                },
                "computeEnvironmentOrder": {
                  "shape": "Sf"
                }
              }
            }
          },
          "nextToken": {}
        }
      }
    },
    "DescribeJobs": {
      "http": {
        "requestUri": "/v1/describejobs"
      },
      "input": {
        "type": "structure",
        "required": [
          "jobs"
        ],
        "members": {
          "jobs": {
            "shape": "Sa"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "jobs": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "jobName",
                "jobId",
                "jobQueue",
                "status",
                "startedAt",
                "jobDefinition"
              ],
              "members": {
                "jobName": {},
                "jobId": {},
                "jobQueue": {},
                "status": {},
                "attempts": {
                  "type": "list",
                  "member": {
                    "type": "structure",
                    "members": {
                      "container": {
                        "type": "structure",
                        "members": {
                          "containerInstanceArn": {},
                          "taskArn": {},
                          "exitCode": {
                            "type": "integer"
                          },
                          "reason": {}
                        }
                      },
                      "startedAt": {
                        "type": "long"
                      },
                      "stoppedAt": {
                        "type": "long"
                      },
                      "statusReason": {}
                    }
                  }
                },
                "statusReason": {},
                "createdAt": {
                  "type": "long"
                },
                "retryStrategy": {
                  "shape": "Sy"
                },
                "startedAt": {
                  "type": "long"
                },
                "stoppedAt": {
                  "type": "long"
                },
                "dependsOn": {
                  "shape": "S1o"
                },
                "jobDefinition": {},
                "parameters": {
                  "shape": "Sx"
                },
                "container": {
                  "type": "structure",
                  "members": {
                    "image": {},
                    "vcpus": {
                      "type": "integer"
                    },
                    "memory": {
                      "type": "integer"
                    },
                    "command": {
                      "shape": "Sa"
                    },
                    "jobRoleArn": {},
                    "volumes": {
                      "shape": "S10"
                    },
                    "environment": {
                      "shape": "S13"
                    },
                    "mountPoints": {
                      "shape": "S15"
                    },
                    "readonlyRootFilesystem": {
                      "type": "boolean"
                    },
                    "ulimits": {
                      "shape": "S18"
                    },
                    "privileged": {
                      "type": "boolean"
                    },
                    "user": {},
                    "exitCode": {
                      "type": "integer"
                    },
                    "reason": {},
                    "containerInstanceArn": {},
                    "taskArn": {}
                  }
                }
              }
            }
          }
        }
      }
    },
    "ListJobs": {
      "http": {
        "requestUri": "/v1/listjobs"
      },
      "input": {
        "type": "structure",
        "required": [
          "jobQueue"
        ],
        "members": {
          "jobQueue": {},
          "jobStatus": {},
          "maxResults": {
            "type": "integer"
          },
          "nextToken": {}
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "jobSummaryList"
        ],
        "members": {
          "jobSummaryList": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "jobId",
                "jobName"
              ],
              "members": {
                "jobId": {},
                "jobName": {}
              }
            }
          },
          "nextToken": {}
        }
      }
    },
    "RegisterJobDefinition": {
      "http": {
        "requestUri": "/v1/registerjobdefinition"
      },
      "input": {
        "type": "structure",
        "required": [
          "jobDefinitionName",
          "type"
        ],
        "members": {
          "jobDefinitionName": {},
          "type": {},
          "parameters": {
            "shape": "Sx"
          },
          "containerProperties": {
            "shape": "Sz"
          },
          "retryStrategy": {
            "shape": "Sy"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "jobDefinitionName",
          "jobDefinitionArn",
          "revision"
        ],
        "members": {
          "jobDefinitionName": {},
          "jobDefinitionArn": {},
          "revision": {
            "type": "integer"
          }
        }
      }
    },
    "SubmitJob": {
      "http": {
        "requestUri": "/v1/submitjob"
      },
      "input": {
        "type": "structure",
        "required": [
          "jobName",
          "jobQueue",
          "jobDefinition"
        ],
        "members": {
          "jobName": {},
          "jobQueue": {},
          "dependsOn": {
            "shape": "S1o"
          },
          "jobDefinition": {},
          "parameters": {
            "shape": "Sx"
          },
          "containerOverrides": {
            "type": "structure",
            "members": {
              "vcpus": {
                "type": "integer"
              },
              "memory": {
                "type": "integer"
              },
              "command": {
                "shape": "Sa"
              },
              "environment": {
                "shape": "S13"
              }
            }
          },
          "retryStrategy": {
            "shape": "Sy"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "jobName",
          "jobId"
        ],
        "members": {
          "jobName": {},
          "jobId": {}
        }
      }
    },
    "TerminateJob": {
      "http": {
        "requestUri": "/v1/terminatejob"
      },
      "input": {
        "type": "structure",
        "required": [
          "jobId",
          "reason"
        ],
        "members": {
          "jobId": {},
          "reason": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "UpdateComputeEnvironment": {
      "http": {
        "requestUri": "/v1/updatecomputeenvironment"
      },
      "input": {
        "type": "structure",
        "required": [
          "computeEnvironment"
        ],
        "members": {
          "computeEnvironment": {},
          "state": {},
          "computeResources": {
            "type": "structure",
            "members": {
              "minvCpus": {
                "type": "integer"
              },
              "maxvCpus": {
                "type": "integer"
              },
              "desiredvCpus": {
                "type": "integer"
              }
            }
          },
          "serviceRole": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "computeEnvironmentName": {},
          "computeEnvironmentArn": {}
        }
      }
    },
    "UpdateJobQueue": {
      "http": {
        "requestUri": "/v1/updatejobqueue"
      },
      "input": {
        "type": "structure",
        "required": [
          "jobQueue"
        ],
        "members": {
          "jobQueue": {},
          "state": {},
          "priority": {
            "type": "integer"
          },
          "computeEnvironmentOrder": {
            "shape": "Sf"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "jobQueueName": {},
          "jobQueueArn": {}
        }
      }
    }
  },
  "shapes": {
    "S7": {
      "type": "structure",
      "required": [
        "type",
        "minvCpus",
        "maxvCpus",
        "instanceTypes",
        "subnets",
        "securityGroupIds",
        "instanceRole"
      ],
      "members": {
        "type": {},
        "minvCpus": {
          "type": "integer"
        },
        "maxvCpus": {
          "type": "integer"
        },
        "desiredvCpus": {
          "type": "integer"
        },
        "instanceTypes": {
          "shape": "Sa"
        },
        "imageId": {},
        "subnets": {
          "shape": "Sa"
        },
        "securityGroupIds": {
          "shape": "Sa"
        },
        "ec2KeyPair": {},
        "instanceRole": {},
        "tags": {
          "type": "map",
          "key": {},
          "value": {}
        },
        "bidPercentage": {
          "type": "integer"
        },
        "spotIamFleetRole": {}
      }
    },
    "Sa": {
      "type": "list",
      "member": {}
    },
    "Sf": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "order",
          "computeEnvironment"
        ],
        "members": {
          "order": {
            "type": "integer"
          },
          "computeEnvironment": {}
        }
      }
    },
    "Sx": {
      "type": "map",
      "key": {},
      "value": {}
    },
    "Sy": {
      "type": "structure",
      "members": {
        "attempts": {
          "type": "integer"
        }
      }
    },
    "Sz": {
      "type": "structure",
      "required": [
        "image",
        "vcpus",
        "memory"
      ],
      "members": {
        "image": {},
        "vcpus": {
          "type": "integer"
        },
        "memory": {
          "type": "integer"
        },
        "command": {
          "shape": "Sa"
        },
        "jobRoleArn": {},
        "volumes": {
          "shape": "S10"
        },
        "environment": {
          "shape": "S13"
        },
        "mountPoints": {
          "shape": "S15"
        },
        "readonlyRootFilesystem": {
          "type": "boolean"
        },
        "privileged": {
          "type": "boolean"
        },
        "ulimits": {
          "shape": "S18"
        },
        "user": {}
      }
    },
    "S10": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "host": {
            "type": "structure",
            "members": {
              "sourcePath": {}
            }
          },
          "name": {}
        }
      }
    },
    "S13": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "name": {},
          "value": {}
        }
      }
    },
    "S15": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "containerPath": {},
          "readOnly": {
            "type": "boolean"
          },
          "sourceVolume": {}
        }
      }
    },
    "S18": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "hardLimit",
          "name",
          "softLimit"
        ],
        "members": {
          "hardLimit": {
            "type": "integer"
          },
          "name": {},
          "softLimit": {
            "type": "integer"
          }
        }
      }
    },
    "S1o": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "jobId": {}
        }
      }
    }
  }
}