openapi: 3.0.3 info: title: Model Service description: This is the model-service interface of the Birbnetes system. contact: email: punkosdmarcell@rocketmail.com license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html version: 1.0.5 servers: - url: https://birb.k8s.kmlabz.com tags: - name: model description: Model Service definition paths: /model: get: tags: - model summary: Return a brief list of all available models description: Returns a brief list of available models operationId: getModelList responses: 200: description: A brief list of available models content: application/json: schema: $ref: '#/components/schemas/BriefModelDetails' /model/{modelType}: parameters: - name: modelType in: path description: Type of the models (cnn or svm) required: true schema: type: string get: tags: - model summary: Return a brief list of available models of a specific type description: Returns a brief list of available models of a specific type operationId: getModelListType responses: 200: description: A brief list of available models content: application/json: schema: $ref: '#/components/schemas/BriefModelDetails' post: tags: - model summary: Uploads a new model of a specific type into the service description: Uploads a new model of a specific type into the service. Uses multipart form. operationId: uploadModelType requestBody: content: multipart/form-data: schema: required: - file - info properties: info: type: object description: Json metadata of model properties: target_class_name: type: string description: "The name of class that supposed to be detected" example: "sturnus" id: type: string description: "The desired id of the model" example: "09414c00-0ad6-4ce9-97c4-40b08b0c9325" file: type: string description: "The model files itself, depends on the type" format: binary required: true responses: 201: description: Model successfully stored. This means that a get request for this object should be successful. content: application/json: schema: $ref: '#/components/schemas/ModelDetails' 409: description: A model with this Id already exists content: application/json: schema: $ref: '#/components/schemas/ApiResponse' /model/{modelType}/{modelId}: parameters: - name: modelType in: path description: Type of the models (cnn or svm) required: true schema: type: string - name: modelId in: path description: Id of the model or `$default` for the default model required: true schema: type: string get: tags: - model summary: Get details of a model description: Return informations of a single model operationId: getModelById responses: 200: description: The details of the requested model content: application/json: schema: $ref: '#/components/schemas/ModelDetails' 404: description: A model with this Id does not exist. content: application/json: schema: $ref: '#/components/schemas/ApiResponse' delete: tags: - model summary: Deletes a model identified by Id operationId: deleteModel responses: 204: description: Successful deletion content: {} 404: description: An model with this Id does not exist. content: application/json: schema: $ref: '#/components/schemas/ApiResponse' /model/{modelType}/{modelId}/file: parameters: - name: modelType in: path description: Type of the models (cnn or svm) required: true schema: type: string - name: modelId in: path description: Id of the model or `$default` for the default model required: true schema: type: string get: tags: - model summary: Download a model file description: By default it returns the model file itself, additional query parameters may change what file to download operationId: downloadModelById responses: 200: description: The details of the requested model content: application/octet-stream: schema: type: string format: binary 404: description: A model with this Id does not exist. content: application/json: schema: $ref: '#/components/schemas/ApiResponse' /model/$default: put: tags: - model summary: Updates the id of the default model description: It really does operationId: updateDefault requestBody: content: application/json: schema: type: object properties: id: type: string example: "1e2686bb-a754-4cba-80b8-077c428339cc" required: false responses: 204: description: Successful update content: {} 404: description: The id does not identifies any model content: application/json: schema: $ref: '#/components/schemas/ApiResponse' x-codegen-request-body-name: modelId components: schemas: ApiResponse: type: object properties: status: type: string msg: type: string BriefModelDetails: type: array items: type: object properties: id: type: string example: "1e2686bb-a754-4cba-80b8-077c428339cc" type: type: string example: "cnn" default: type: boolean ModelDetails: type: object properties: id: type: string example: "1e2686bb-a754-4cba-80b8-077c428339cc" target_class_name: type: string example: "sturnus" timestamp: type: string example: "2020-10-15T03:20:28.204605" default: type: boolean details: type: object properties: mid_window: type: number mid_step: type: number short_window: type: number short_step: type: number compute_beat: type: boolean files: type: object properties: model: type: string example: "/model/cnn/1e2686bb-a754-4cba-80b8-077c428339cc/file" weights: type: string example: "/model/cnn/1e2686bb-a754-4cba-80b8-077c428339cc/file?weights=" description: "Only for cnn type" means: type: string example: "/model/svm/1e2686bb-a754-4cba-80b8-077c428339cc/file?means=" description: "Only for svm type" type: type: string example: "svm" description: "svm or cnn"