##### /api_versions
Verb: `GET` | Response code: `200 OK`
Get the current available versions for the Rest Endpoint. The client can choose one of the return version as the protocol for later communicate.
Request
    {}
Response
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:util:GetApiVersionResponseBody",
      "properties" : {
        "versions" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        }
      }
    }

##### /info
Verb: `GET` | Response code: `200 OK`
Get meta data for this cluster.
Request
    {}
Response
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:util:GetInfoResponseBody",
      "properties" : {
        "productName" : {
          "type" : "string"
        },
        "version" : {
          "type" : "string"
        }
      }
    }

##### /sessions
Verb: `POST` | Response code: `200 OK`
Opens a new session with specific properties. Specific properties can be given for current session which will override the default properties of gateway.
Request
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:session:OpenSessionRequestBody",
      "properties" : {
        "properties" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "string"
          }
        },
        "sessionName" : {
          "type" : "string"
        }
      }
    }
Response
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:session:OpenSessionResponseBody",
      "properties" : {
        "sessionHandle" : {
          "type" : "string"
        }
      }
    }

##### /sessions/:session_handle
Verb: `DELETE` | Response code: `200 OK`
Closes the specific session.
Path parameters
`session_handle` - The SessionHandle that identifies a session.
Request
    {}
Response
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:session:CloseSessionResponseBody",
      "properties" : {
        "status" : {
          "type" : "string"
        }
      }
    }

##### /sessions/:session_handle
Verb: `GET` | Response code: `200 OK`
Get the session configuration.
Path parameters
`session_handle` - The SessionHandle that identifies a session.
Request
    {}
Response
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:session:GetSessionConfigResponseBody",
      "properties" : {
        "properties" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "string"
          }
        }
      }
    }

##### /sessions/:session_handle/complete-statement
Verb: `GET` | Response code: `200 OK`
Get the completion hints for the given statement at the given position.
Path parameters
`session_handle` - The SessionHandle that identifies a session.
Request
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:statement:CompleteStatementRequestBody",
      "properties" : {
        "position" : {
          "type" : "integer"
        },
        "statement" : {
          "type" : "string"
        }
      }
    }
Response
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:statement:CompleteStatementResponseBody",
      "properties" : {
        "candidates" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        }
      }
    }

##### /sessions/:session_handle/configure-session
Verb: `POST` | Response code: `200 OK`
Configures the session with the statement which could be: CREATE TABLE, DROP TABLE, ALTER TABLE, CREATE DATABASE, DROP DATABASE, ALTER DATABASE, CREATE FUNCTION, DROP FUNCTION, ALTER FUNCTION, CREATE CATALOG, DROP CATALOG, USE CATALOG, USE [CATALOG.]DATABASE, CREATE VIEW, DROP VIEW, LOAD MODULE, UNLOAD MODULE, USE MODULE, ADD JAR.
Path parameters
`session_handle` - The SessionHandle that identifies a session.
Request
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:session:ConfigureSessionRequestBody",
      "properties" : {
        "executionTimeout" : {
          "type" : "integer"
        },
        "statement" : {
          "type" : "string"
        }
      }
    }
Response
    {}

##### /sessions/:session_handle/heartbeat
Verb: `POST` | Response code: `200 OK`
Trigger heartbeat to tell the server that the client is active, and to keep the session alive as long as configured timeout value.
Path parameters
`session_handle` - The SessionHandle that identifies a session.
Request
    {}
Response
    {}

##### /sessions/:session_handle/operations/:operation_handle/cancel
Verb: `POST` | Response code: `200 OK`
Cancel the operation.
Path parameters
`session_handle` - The SessionHandle that identifies a session. `operation_handle` - The OperationHandle that identifies a operation.
Request
    {}
Response
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:operation:OperationStatusResponseBody",
      "properties" : {
        "status" : {
          "type" : "string"
        }
      }
    }

##### /sessions/:session_handle/operations/:operation_handle/close
Verb: `DELETE` | Response code: `200 OK`
Close the operation.
Path parameters
`session_handle` - The SessionHandle that identifies a session. `operation_handle` - The OperationHandle that identifies a operation.
Request
    {}
Response
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:operation:OperationStatusResponseBody",
      "properties" : {
        "status" : {
          "type" : "string"
        }
      }
    }

##### /sessions/:session_handle/operations/:operation_handle/result/:token
Verb: `GET` | Response code: `200 OK`
Fetch results of Operation.
Path parameters
`session_handle` - The SessionHandle that identifies a session. `operation_handle` - The OperationHandle that identifies a operation. `token` - The token that identifies which batch of data to fetch.
Query parameters
`rowFormat` (mandatory): The row format to serialize the RowData.
Request
    {}
Response
    {
      "type" : "any"
    }

##### /sessions/:session_handle/operations/:operation_handle/status
Verb: `GET` | Response code: `200 OK`
Get the status of operation.
Path parameters
`session_handle` - The SessionHandle that identifies a session. `operation_handle` - The OperationHandle that identifies a operation.
Request
    {}
Response
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:operation:OperationStatusResponseBody",
      "properties" : {
        "status" : {
          "type" : "string"
        }
      }
    }

##### /sessions/:session_handle/scripts
Verb: `POST` | Response code: `200 OK`
Deploy the script in application mode
Path parameters
`session_handle` - The SessionHandle that identifies a session.
Request
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:application:DeployScriptRequestBody",
      "properties" : {
        "executionConfig" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "string"
          }
        },
        "script" : {
          "type" : "string"
        },
        "scriptUri" : {
          "type" : "string"
        }
      }
    }
Response
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:application:DeployScriptResponseBody",
      "properties" : {
        "clusterID" : {
          "type" : "string"
        }
      }
    }

##### /sessions/:session_handle/statements
Verb: `POST` | Response code: `200 OK`
Execute a statement.
Path parameters
`session_handle` - The SessionHandle that identifies a session.
Request
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:statement:ExecuteStatementRequestBody",
      "properties" : {
        "executionConfig" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "string"
          }
        },
        "executionTimeout" : {
          "type" : "integer"
        },
        "statement" : {
          "type" : "string"
        }
      }
    }
Response
    {
      "type" : "object",
      "id" : "urn:jsonschema:org:apache:flink:table:gateway:rest:message:statement:ExecuteStatementResponseBody",
      "properties" : {
        "operationHandle" : {
          "type" : "string"
        }
      }
    }