{
  "openapi": "3.0.1",
  "info": {
    "title": "GraphQL Client Operation Regression Gate",
    "description": "Detect GraphQL client operations that break after schema changes. Distinguish new regressions from existing errors and report exact files, source locations, variables, fragments, plus SARIF, JUnit, JSON, and Markdown outputs for CI.",
    "version": "0.0",
    "x-build-id": "xKKU9Wry5xZMUgAix"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/bread-kim~graphql-client-operation-regression-gate/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-bread-kim-graphql-client-operation-regression-gate",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/bread-kim~graphql-client-operation-regression-gate/runs": {
      "post": {
        "operationId": "runs-sync-bread-kim-graphql-client-operation-regression-gate",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/bread-kim~graphql-client-operation-regression-gate/run-sync": {
      "post": {
        "operationId": "run-sync-bread-kim-graphql-client-operation-regression-gate",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "beforeSdl",
          "afterSdl",
          "documents"
        ],
        "properties": {
          "beforeSdl": {
            "title": "Before schema SDL",
            "minLength": 1,
            "maxLength": 500000,
            "type": "string",
            "description": "Trusted baseline GraphQL SDL used to identify defects that already existed. Maximum 500000 UTF-8 bytes."
          },
          "afterSdl": {
            "title": "After schema SDL",
            "minLength": 1,
            "maxLength": 500000,
            "type": "string",
            "description": "Candidate GraphQL SDL checked against actual operations. Maximum 500000 UTF-8 bytes."
          },
          "documents": {
            "title": "Client document files",
            "minItems": 1,
            "maxItems": 1500,
            "type": "array",
            "description": "Named operation and shared-fragment files. Paths are virtual evidence labels, not files read from disk.",
            "items": {
              "type": "object",
              "required": [
                "path",
                "source"
              ],
              "properties": {
                "path": {
                  "title": "Virtual source path",
                  "description": "Unique safe relative path reported in JSON, SARIF, JUnit and Markdown locations.",
                  "type": "string",
                  "editor": "textfield",
                  "minLength": 1,
                  "maxLength": 240
                },
                "source": {
                  "title": "GraphQL document source",
                  "description": "Operations or fragments in this virtual file. Maximum 1000000 UTF-8 bytes per file.",
                  "type": "string",
                  "editor": "textarea",
                  "minLength": 1,
                  "maxLength": 1000000
                }
              }
            }
          },
          "variableCases": {
            "title": "Variable cases",
            "maxItems": 500,
            "type": "array",
            "description": "Optional non-secret JSON variable shapes coerced independently against each schema. Raw values are never returned.",
            "items": {
              "type": "object",
              "required": [
                "name",
                "operationName",
                "variables"
              ],
              "properties": {
                "name": {
                  "title": "Case name",
                  "description": "Non-sensitive label used in reports.",
                  "type": "string",
                  "editor": "textfield",
                  "minLength": 1,
                  "maxLength": 100
                },
                "operationName": {
                  "title": "Operation name",
                  "description": "Exact named operation whose variable definitions apply.",
                  "type": "string",
                  "editor": "textfield",
                  "minLength": 1,
                  "maxLength": 100
                },
                "variables": {
                  "title": "Variable object",
                  "description": "JSON object to coerce. Credential-like keys are refused and values are omitted from output.",
                  "type": "object",
                  "editor": "json",
                  "properties": {}
                }
              }
            }
          },
          "maxFindings": {
            "title": "Maximum detailed findings",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Caps returned details while status and totals remain based on the complete analysis.",
            "default": 500
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}