Seldon ModelMetadataService API

The ModelMetadataService API from Seldon — 2 operation(s) for modelmetadataservice.

OpenAPI Specification

seldon-modelmetadataservice-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: 'API to interact and manage the lifecycle of your machine learning models

    deployed through Seldon Deploy.'
  title: Seldon Deploy AlertingService ModelMetadataService API
  version: v1alpha1
servers:
- url: http://X.X.X.X/seldon-deploy/api/v1alpha1
- url: https://X.X.X.X/seldon-deploy/api/v1alpha1
security:
- OAuth2:
  - '[]'
tags:
- name: ModelMetadataService
paths:
  /model/metadata:
    get:
      summary: List Model Metadata entries.
      description: 'List takes several parameters that are present in the Model Metadata and tries to list all metadata entries that match all supplied fields. To filter by `tags` or `metrics` you can use a map as a query parameter. For example: `?tags[key]=value`.'
      operationId: ModelMetadataService_ListModelMetadata
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ModelMetadataListResponse'
        '204':
          description: No Content
          content:
            application/json:
              schema: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: URI
        in: query
        required: false
        schema:
          type: string
      - name: name
        in: query
        required: false
        schema:
          type: string
      - name: version
        in: query
        required: false
        schema:
          type: string
      - name: artifactType
        in: query
        required: false
        schema:
          type: string
          enum:
          - UNKNOWN
          - CUSTOM
          - TENSORFLOW
          - SKLEARN
          - XGBOOST
          - MLFLOW
          - PYTORCH
          - ONNX
          - TENSORRT
          - ALIBI_EXPLAIN
          - ALIBI_DETECT
          - HUGGINGFACE
          - MLSERVER_PYTHON
          - TRITON_PYTHON
          default: UNKNOWN
      - name: taskType
        in: query
        required: false
        schema:
          type: string
      - name: modelType
        in: query
        required: false
        schema:
          type: string
      - name: query
        description: For more complex queries where other logical operators like OR, NOT, etc.
        in: query
        required: false
        schema:
          type: string
      - name: pageSize
        description: Optional. The maximum number of Folders to return in the response.
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageToken
        description: 'Optional. A pagination token returned from a previous call to `List`

          that indicates where this listing should continue from.'
        in: query
        required: false
        schema:
          type: string
      - name: listMask
        description: 'Optional. Can be used to specify which fields of Model you wish to return in the response.

          If left empty all fields will be returned.'
        in: query
        required: false
        schema:
          type: string
      - name: project
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'Based on https://cloud.google.com/apis/design/design_patterns#sorting_order


          The order in which to return the model metadata. The string value should follow SQL syntax: comma separated list of fields. The default sorting order is ascending. To specify descending order for a field, a suffix " desc" should be appended to the field name. Valid field names include: uri, name, version, project, artifact_type, task_type.'
        in: query
        required: false
        schema:
          type: string
      - name: defaultProtocol
        in: query
        required: false
        schema:
          type: string
          enum:
          - PROTOCOL_UNKNOWN
          - PROTOCOL_SELDON
          - PROTOCOL_TENSORFLOW
          - PROTOCOL_V2
          default: PROTOCOL_UNKNOWN
      tags:
      - ModelMetadataService
    delete:
      summary: Delete a Model Metadata entry.
      operationId: ModelMetadataService_DeleteModelMetadata
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ModelMetadataDeleteResponse'
        '204':
          description: No Content
          content:
            application/json:
              schema: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: URI
        description: The URI for the storage bucket containing the model, or the URI to the docker image for custom models. It must be a valid URI as defined in RFC 3986, and must not exceed 200 characters.
        in: query
        required: true
        schema:
          type: string
      - name: project
        description: The project that this model belongs to.
        in: query
        required: false
        schema:
          type: string
      tags:
      - ModelMetadataService
    post:
      summary: Create a Model Metadata entry.
      operationId: ModelMetadataService_CreateModelMetadata
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ModelMetadataCreateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        $ref: '#/components/requestBodies/v1Model'
      tags:
      - ModelMetadataService
    put:
      summary: Update a Model Metadata entry.
      operationId: ModelMetadataService_UpdateModelMetadata
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ModelMetadataUpdateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        $ref: '#/components/requestBodies/v1Model'
      tags:
      - ModelMetadataService
  /model/metadata/runtime:
    get:
      summary: List Runtime Metadata for all deployments associated with a model.
      operationId: ModelMetadataService_ListRuntimeMetadataForModel
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1RuntimeMetadataListResponse'
        '204':
          description: No Content
          content:
            application/json:
              schema: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: ModelURI
        in: query
        required: false
        schema:
          type: string
      - name: DeploymentUID
        in: query
        required: false
        schema:
          type: string
      - name: DeploymentName
        in: query
        required: false
        schema:
          type: string
      - name: DeploymentNamespace
        in: query
        required: false
        schema:
          type: string
      - name: DeploymentStatus
        in: query
        required: false
        schema:
          type: string
          enum:
          - Running
          - Stopped
          - Unknown
          default: Running
      - name: PredictorName
        in: query
        required: false
        schema:
          type: string
      - name: NodeName
        in: query
        required: false
        schema:
          type: string
      - name: pageSize
        description: Optional. The maximum number of Folders to return in the response.
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageToken
        description: 'Optional. A pagination token returned from a previous call to `List`

          that indicates where this listing should continue from.'
        in: query
        required: false
        schema:
          type: string
      - name: listMask
        description: 'Optional. Can be used to specify which fields of RuntimeMetadata you wish to return in the response.

          If left empty all fields will be returned.'
        in: query
        required: false
        schema:
          type: string
      - name: deploymentType
        in: query
        required: false
        schema:
          type: string
          enum:
          - UndefinedDeploymentType
          - SeldonDeployment
          - SeldonModel
          - KnativeDetector
          default: UndefinedDeploymentType
      tags:
      - ModelMetadataService
components:
  schemas:
    v1DataType:
      type: string
      enum:
      - FLOAT
      - INT
      - BOOL
      - STRING
      - BYTES
      default: FLOAT
    v1FeatureType:
      type: string
      enum:
      - REAL
      - CATEGORICAL
      - PROBA
      - ONE_HOT
      - TEXT
      - TENSOR
      default: REAL
      title: "- REAL: A numerical variable\n - CATEGORICAL: A categorical variable\n - PROBA: A list of probabilities\n - ONE_HOT: A list of one-hot encodings\n - TEXT: A text string\n - TENSOR: N-dimensional Tensor"
    v1PredictionSchema:
      type: object
      properties:
        requests:
          type: array
          items:
            $ref: '#/components/schemas/v1FeatureSchema'
        responses:
          type: array
          items:
            $ref: '#/components/schemas/v1FeatureSchema'
      required:
      - requests
      - responses
    v1DeploymentType:
      type: string
      enum:
      - UndefinedDeploymentType
      - SeldonDeployment
      - SeldonModel
      - KnativeDetector
      default: UndefinedDeploymentType
    v1ArtifactType:
      type: string
      enum:
      - UNKNOWN
      - CUSTOM
      - TENSORFLOW
      - SKLEARN
      - XGBOOST
      - MLFLOW
      - PYTORCH
      - ONNX
      - TENSORRT
      - ALIBI_EXPLAIN
      - ALIBI_DETECT
      - HUGGINGFACE
      - MLSERVER_PYTHON
      - TRITON_PYTHON
      default: UNKNOWN
    protobufAny:
      type: object
      properties:
        '@type':
          type: string
      additionalProperties: {}
    v1RuntimeDefaults:
      type: object
      properties:
        defaultProtocol:
          $ref: '#/components/schemas/v1DefaultProtocol'
    v1FeatureCategorySchema:
      type: object
      properties:
        name:
          type: string
        dataType:
          $ref: '#/components/schemas/v1DataType'
      required:
      - name
    v1DeploymentStatus:
      type: string
      enum:
      - Running
      - Stopped
      - Unknown
      default: Running
    v1FeatureSchema:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/v1FeatureType'
        dataType:
          $ref: '#/components/schemas/v1DataType'
        nCategories:
          type: string
          format: int64
        categoryMap:
          type: object
          additionalProperties:
            type: string
        schema:
          type: array
          items:
            $ref: '#/components/schemas/v1FeatureCategorySchema'
        shape:
          type: array
          items:
            type: string
            format: int64
      required:
      - name
      - type
    v1Model:
      type: object
      properties:
        URI:
          type: string
          example: gs://seldon-models/sklearn/iris
          description: The URI for the storage bucket containing the model, or the URI to the docker image for custom models. It must be a valid URI as defined in RFC 3986, and must not exceed 200 characters.
        name:
          type: string
          example: Iris Classifier
          description: The name of the model. It must not exceed 200 characters.
        version:
          type: string
          example: v1.2.3
          default: '"v0.0.1"'
          description: The version of the model. It must not exceed 50 characters.
        artifactType:
          $ref: '#/components/schemas/v1ArtifactType'
        taskType:
          type: string
          example: classification
          description: The task type of the model. It must not exceed 50 characters.
        tags:
          type: object
          example:
            author: Jon
          additionalProperties:
            type: string
          description: Key-value pairs of arbitrary metadata associated with the model. Each key and value must not exceed 100 and 500 characters respectively.
        metrics:
          type: object
          example:
            trainingPrecision: 0.78
            trainingRecall: 0.87
          additionalProperties:
            type: number
            format: double
          description: Key-value pairs of static metrics associated with the model. For dynamic metrics look into metrics https://deploy.seldon.io/en/latest/contents/getting-started/production-installation/metrics.html. Keys must not exceed 100 characters.
        creationTime:
          type: string
          format: date-time
          example: '2017-01-15T01:30:15.01Z'
          description: The creation timestamp for the model metadata entry. It is automatically created by the Metadata service and cannot be modified. The timestamp is using the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format/
        predictionSchema:
          $ref: '#/components/schemas/v1PredictionSchema'
        project:
          type: string
          example: project_1
          description: The project that this model belongs to.
        runtimeDefaults:
          $ref: '#/components/schemas/v1RuntimeDefaults'
      required:
      - URI
    v1ModelMetadataCreateResponse:
      type: object
    v1RuntimeMetadataListResponse:
      type: object
      properties:
        runtimeMetadata:
          type: array
          items:
            $ref: '#/components/schemas/v1RuntimeMetadata'
        nextPageToken:
          type: string
          description: 'A pagination token returned from a previous call to `List`

            that indicates from where listing should continue.'
    v1ModelMetadataListResponse:
      type: object
      properties:
        models:
          type: array
          items:
            $ref: '#/components/schemas/v1Model'
        nextPageToken:
          type: string
          description: 'A pagination token returned from a previous call to `List`

            that indicates from where listing should continue.'
    v1RuntimeMetadata:
      type: object
      properties:
        modelUri:
          type: string
          example: gs://seldon-models/sklearn/iris
          description: The URI for the storage bucket containing the model, or the URI to the docker image for custom models.
        deploymentName:
          type: string
          example: iris
          description: The name of the Kubernetes deployment that is associated with a model.
        deploymentNamespace:
          type: string
          example: seldon
          description: The Kubernetes namespace in which this deployment is running in.
        deploymentKubernetesUid:
          type: string
          example: 2c60bdb0-8a8e-46bf-a3c5-627ad507f76b
          description: The Kubernetes UID of the deployment associated with a model. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids for details
        predictorName:
          type: string
          example: default
          description: The name of the predictor inside the deployment that contains the referenced model.
        nodeName:
          type: string
          example: default-node
          description: The name of the node inside the predictor that contains the referenced model. This is relevant and populated only for SeldonDeployment deployment types.
        deploymentStatus:
          $ref: '#/components/schemas/v1DeploymentStatus'
        deploymentType:
          $ref: '#/components/schemas/v1DeploymentType'
        traffic:
          type: string
          format: int64
          description: The amount of traffic server by this model in the deployment.
        shadow:
          type: boolean
          description: True if this model is a shadow in the deployment.
        creationTime:
          type: string
          format: date-time
          example: '2017-01-15T01:30:15.01Z'
          description: The creation timestamp for the runtime model metadata entry. It is automatically created by the Metadata service and cannot be modified. The timestamp is using the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format/
        model:
          $ref: '#/components/schemas/v1Model'
        explainer:
          type: boolean
          description: True if this model is a explainer in the deployment.
        replicas:
          type: string
          format: int64
          description: The number of replicas for this model.
    v1DefaultProtocol:
      type: string
      enum:
      - PROTOCOL_UNKNOWN
      - PROTOCOL_SELDON
      - PROTOCOL_TENSORFLOW
      - PROTOCOL_V2
      default: PROTOCOL_UNKNOWN
      description: 'For model inference, Seldon recommends using the industry-standard Open Inference Protocol (OIP) as the preferred protocol over others.<br>This value is managed internally by the Seldon Enterprise Platform. For Seldon Deployments using the OIP, the protocol value is ''PROTOCOL_V2''. For Seldon ML Pipelines, it is ''PROTOCOL_UNKNOWN''.<br>For more information, please refer to the Seldon documentation: https://docs.seldon.ai/seldon-core-2/apis/inference/v2'
    rpcStatus:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/protobufAny'
    v1ModelMetadataUpdateResponse:
      type: object
    v1ModelMetadataDeleteResponse:
      type: object
  requestBodies:
    v1Model:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/v1Model'
      required: true
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        password:
          tokenUrl: https://Y.Y.Y.Y
          scopes:
            email: ''
            groups: ''
            openid: ''
            profile: ''