{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/StatementRequest",
  "title": "StatementRequest",
  "type": "object",
  "description": "Request body for submitting a SQL statement for execution.",
  "properties": {
    "statement": {
      "type": "string",
      "description": "SQL statement or batch of SQL statements to execute. You can specify query, DML and DDL statements. The following statements are not supported: PUT, GET, USE, ALTER SESSION, BEGIN, COMMIT, ROLLBACK, statements that set session variables, and statements that create temporary tables and stages.",
      "examples": [
        "select * from T where c1=?",
        "CREATE TABLE test_table (id INTEGER, name VARCHAR)"
      ]
    },
    "timeout": {
      "type": "integer",
      "format": "int64",
      "minimum": 0,
      "description": "Timeout in seconds for statement execution. If the execution of a statement takes longer than the specified timeout, the execution is automatically canceled. To set the timeout to the maximum value (604800 seconds), set timeout to 0.",
      "examples": [
        10,
        60
      ]
    },
    "database": {
      "type": "string",
      "description": "Database in which the statement should be executed. The value in this field is case-sensitive.",
      "examples": [
        "TESTDB"
      ]
    },
    "schema": {
      "type": "string",
      "description": "Schema in which the statement should be executed. The value in this field is case-sensitive.",
      "examples": [
        "TESTSCHEMA"
      ]
    },
    "warehouse": {
      "type": "string",
      "description": "Warehouse to use when executing the statement. The value in this field is case-sensitive.",
      "examples": [
        "TESTWH"
      ]
    },
    "role": {
      "type": "string",
      "description": "Role to use when executing the statement. The value in this field is case-sensitive.",
      "examples": [
        "TESTROLE"
      ]
    },
    "bindings": {
      "type": "object",
      "description": "Values of bind variables in the SQL statement. When executing the statement, Snowflake replaces placeholders (? and :name) in the statement with these specified values.",
      "additionalProperties": {
        "$ref": "#/components/schemas/BindVariable"
      },
      "example": "example_value"
    },
    "parameters": {
      "$ref": "#/components/schemas/SessionParameters"
    }
  }
}