openapi: 3.0.3 info: title: Data Plane version: '2.0' contact: name: Seldon Technologies Ltd. url: 'https://www.seldon.io/' email: hello@seldon.io description: REST protocol to interact with inference servers. license: name: Business Source License 1.1 servers: [] paths: /v2/health/live: get: summary: Server Live responses: '200': description: OK operationId: server-live description: The “server live” API indicates if the inference server is able to receive and respond to metadata and inference requests. The “server live” API can be used directly to implement the Kubernetes `livenessProbe`. tags: - health - server /v2/health/ready: get: summary: Server Ready tags: - health - server responses: '200': description: OK operationId: server-ready description: The “server ready” health API indicates if all the models are ready for inferencing. The “server ready” health API can be used directly to implement the Kubernetes readinessProbe. '/v2/models/{model_name}/versions/{model_version}/ready': parameters: - schema: type: string name: model_name in: path required: true - schema: type: string name: model_version in: path required: true get: summary: Model Ready tags: - health - model responses: '200': description: OK operationId: model-version-ready description: The “model ready” health API indicates if a specific model is ready for inferencing. The model name and (optionally) version must be available in the URL. If a version is not provided the server may choose a version based on its own policies. '/v2/models/{model_name}/ready': parameters: - schema: type: string name: model_name in: path required: true get: summary: Model Ready tags: - health - model responses: '200': description: OK operationId: model-ready description: The “model ready” health API indicates if a specific model is ready for inferencing. The model name and (optionally) version must be available in the URL. If a version is not provided the server may choose a version based on its own policies. /v2: get: summary: Server Metadata tags: - metadata - server responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/MetadataServerResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/MetadataServerErrorResponse' operationId: server-metadata description: The server metadata endpoint provides information about the server. A server metadata request is made with an HTTP GET to a server metadata endpoint. '/v2/models/{model_name}/versions/{model_version}': parameters: - schema: type: string name: model_name in: path required: true - schema: type: string name: model_version in: path required: true get: summary: Model Metadata tags: - metadata - model responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/MetadataModelResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/MetadataModelErrorResponse' operationId: model-version-metadata description: The per-model metadata endpoint provides information about a model. A model metadata request is made with an HTTP GET to a model metadata endpoint. The model name and (optionally) version must be available in the URL. If a version is not provided the server may choose a version based on its own policies or return an error. '/v2/models/{model_name}': parameters: - schema: type: string name: model_name in: path required: true get: summary: Model Metadata tags: - metadata - model responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/MetadataModelResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/MetadataModelErrorResponse' operationId: model-metadata description: The per-model metadata endpoint provides information about a model. A model metadata request is made with an HTTP GET to a model metadata endpoint. The model name and (optionally) version must be available in the URL. If a version is not provided the server may choose a version based on its own policies or return an error. '/v2/models/{model_name}/versions/{model_version}/infer': parameters: - schema: type: string name: model_name in: path required: true - schema: type: string name: model_version in: path required: true post: summary: Model Inference operationId: model-version-inference responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/InferenceResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/InferenceErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/InferenceErrorResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/InferenceErrorResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/InferenceRequest' description: An inference request is made with an HTTP POST to an inference endpoint. The model name and (optionally) version must be available in the URL. If a version is not provided the server may choose a version based on its own policies or return an error. tags: - inference - model '/v2/models/{model_name}/infer': parameters: - schema: type: string name: model_name in: path required: true post: summary: Model Inference operationId: model-inference responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/InferenceResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/InferenceErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/InferenceErrorResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/InferenceErrorResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/InferenceRequest' description: An inference request is made with an HTTP POST to an inference endpoint. The model name and (optionally) version must be available in the URL. If a version is not provided the server may choose a version based on its own policies or return an error. tags: - inference - model components: schemas: MetadataServerResponse: title: MetadataServerResponse type: object description: '' x-examples: {} properties: name: type: string version: type: string extensions: type: array items: type: string required: - name - version - extensions MetadataModelResponse: title: MetadataModelResponse type: object properties: name: type: string versions: type: array items: type: string platform: type: string inputs: type: array items: $ref: '#/components/schemas/MetadataTensor' outputs: type: array items: $ref: '#/components/schemas/MetadataTensor' parameters: $ref: '#/components/schemas/Parameters' required: - name - platform MetadataServerErrorResponse: title: MetadataServerErrorResponse type: object properties: error: type: string required: - error MetadataTensor: title: MetadataTensor type: object properties: name: type: string datatype: type: string shape: type: array items: type: integer parameters: $ref: '#/components/schemas/Parameters' required: - name - datatype - shape MetadataModelErrorResponse: title: MetadataModelErrorResponse type: object properties: error: type: string required: - error InferenceRequest: title: InferenceRequest type: object x-examples: Example 1: id: '42' inputs: - name: input0 shape: - 2 - 2 datatype: UINT32 data: - 1 - 2 - 3 - 4 - name: input1 shape: - 3 datatype: BOOL data: - true outputs: - name: output0 Example 2: id: '42' outputs: - name: output0 shape: - 3 - 2 datatype: FP32 data: - 1 - 1.1 - 2 - 2.1 - 3 - 3.1 properties: id: type: string parameters: $ref: '#/components/schemas/Parameters' inputs: type: array items: $ref: '#/components/schemas/RequestInput' outputs: type: array items: $ref: '#/components/schemas/RequestOutput' required: - inputs Parameters: type: object title: Parameters x-examples: {} additionalProperties: true properties: content_type: type: string headers: type: object RequestInput: title: RequestInput type: object properties: name: type: string shape: type: array items: type: integer datatype: type: string parameters: $ref: '#/components/schemas/Parameters' data: $ref: '#/components/schemas/TensorData' required: - name - shape - datatype - data TensorData: title: TensorData RequestOutput: title: RequestOutput type: object properties: name: type: string parameters: $ref: '#/components/schemas/Parameters' required: - name ResponseOutput: title: ResponseOutput type: object properties: name: type: string shape: type: array items: type: integer datatype: type: string parameters: $ref: '#/components/schemas/Parameters' data: $ref: '#/components/schemas/TensorData' required: - name - shape - datatype - data InferenceResponse: title: InferenceResponse type: object properties: model_name: type: string model_version: type: string id: type: string parameters: $ref: '#/components/schemas/Parameters' outputs: type: array items: $ref: '#/components/schemas/ResponseOutput' required: - model_name - outputs InferenceErrorResponse: title: InferenceErrorResponse type: object properties: error: type: string tags: - name: health - name: inference - name: metadata - name: model - name: server