##### /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"
        }
      }
    }