{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/CompositeRequest",
  "title": "CompositeRequest",
  "type": "object",
  "description": "A composite request containing multiple subrequests",
  "required": [
    "compositeRequest"
  ],
  "properties": {
    "allOrNone": {
      "type": "boolean",
      "default": false,
      "description": "If true, all subrequests are rolled back on any failure"
    },
    "collateSubrequests": {
      "type": "boolean",
      "default": false,
      "description": "If true, subrequests with no dependencies are executed in parallel"
    },
    "compositeRequest": {
      "type": "array",
      "maxItems": 25,
      "items": {
        "type": "object",
        "required": [
          "method",
          "url",
          "referenceId"
        ],
        "properties": {
          "body": {
            "description": "The request body for the subrequest"
          },
          "httpHeaders": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "method": {
            "type": "string",
            "enum": [
              "GET",
              "POST",
              "PATCH",
              "PUT",
              "DELETE"
            ]
          },
          "referenceId": {
            "type": "string",
            "description": "Unique identifier for this subrequest, used to reference results"
          },
          "url": {
            "type": "string",
            "description": "The resource URL relative to the API version"
          }
        }
      }
    }
  }
}