| { |
| "openapi" : "3.0.1", |
| "info" : { |
| "contact" : { |
| "email" : "dev@submarine.apache.org" |
| }, |
| "description" : "The Submarine REST API allows you to access Submarine resources such as, \nexperiments, environments and notebooks. The \nAPI is hosted under the /v1 path on the Submarine server. For example, \nto list experiments on a server hosted at http://localhost:8080, access\nhttp://localhost:8080/api/v1/experiment/", |
| "license" : { |
| "name" : "Apache 2.0", |
| "url" : "http://www.apache.org/licenses/LICENSE-2.0.html" |
| }, |
| "termsOfService" : "http://swagger.io/terms/", |
| "title" : "Submarine API", |
| "version" : "0.8.0" |
| }, |
| "servers" : [ { |
| "url" : "/api" |
| } ], |
| "paths" : { |
| "/auth/token" : { |
| "post" : { |
| "description" : "Return user token by username and password", |
| "operationId" : "token", |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/LoginParam" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "200" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "description" : "successfully get token" |
| } |
| }, |
| "summary" : "Get submarine user token", |
| "tags" : [ "auth" ] |
| } |
| }, |
| "/v1/environment" : { |
| "get" : { |
| "operationId" : "listEnvironment", |
| "parameters" : [ { |
| "in" : "query", |
| "name" : "status", |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "List of Environments", |
| "tags" : [ "environment" ] |
| }, |
| "post" : { |
| "operationId" : "createEnvironment", |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/EnvironmentSpec" |
| } |
| }, |
| "application/yaml" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/EnvironmentSpec" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Create a environment", |
| "tags" : [ "environment" ] |
| } |
| }, |
| "/v1/environment/{id}" : { |
| "delete" : { |
| "operationId" : "deleteEnvironment", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "Environment not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Delete the environment", |
| "tags" : [ "environment" ] |
| }, |
| "get" : { |
| "operationId" : "getEnvironment", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "Environment not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Find environment by name", |
| "tags" : [ "environment" ] |
| }, |
| "patch" : { |
| "operationId" : "updateEnvironment", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/EnvironmentSpec" |
| } |
| }, |
| "application/yaml" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/EnvironmentSpec" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "404" : { |
| "description" : "Environment not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Update the environment with job spec", |
| "tags" : [ "environment" ] |
| } |
| }, |
| "/v1/experiment" : { |
| "get" : { |
| "operationId" : "listExperiments", |
| "parameters" : [ { |
| "in" : "query", |
| "name" : "status", |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "List experiments", |
| "tags" : [ "experiment" ] |
| }, |
| "post" : { |
| "operationId" : "createExperiment", |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ExperimentSpec" |
| } |
| }, |
| "application/yaml" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ExperimentSpec" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Create an experiment", |
| "tags" : [ "experiment" ] |
| } |
| }, |
| "/v1/experiment/artifacts/{id}" : { |
| "get" : { |
| "operationId" : "getArtifactPaths", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "Experiment not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "List artifact paths by id", |
| "tags" : [ "experiment" ] |
| } |
| }, |
| "/v1/experiment/logs" : { |
| "get" : { |
| "operationId" : "listLog", |
| "parameters" : [ { |
| "in" : "query", |
| "name" : "status", |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "List experiment's log", |
| "tags" : [ "experiment" ] |
| } |
| }, |
| "/v1/experiment/logs/{id}" : { |
| "get" : { |
| "operationId" : "getLog", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "Experiment not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Log experiment by id", |
| "tags" : [ "experiment" ] |
| } |
| }, |
| "/v1/experiment/mlflow" : { |
| "get" : { |
| "operationId" : "getMLflowInfo", |
| "responses" : { |
| "404" : { |
| "description" : "MLflow not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Get mlflow's information", |
| "tags" : [ "experiment" ] |
| } |
| }, |
| "/v1/experiment/ping" : { |
| "get" : { |
| "description" : "Return the Pong message for test the connectivity", |
| "operationId" : "ping", |
| "responses" : { |
| "200" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Ping submarine server", |
| "tags" : [ "experiment" ] |
| } |
| }, |
| "/v1/experiment/tensorboard" : { |
| "get" : { |
| "operationId" : "getTensorboardInfo", |
| "responses" : { |
| "404" : { |
| "description" : "Tensorboard not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Get tensorboard's information", |
| "tags" : [ "experiment" ] |
| } |
| }, |
| "/v1/experiment/{id}" : { |
| "delete" : { |
| "operationId" : "deleteExperiment", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "Experiment not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Delete the experiment", |
| "tags" : [ "experiment" ] |
| }, |
| "get" : { |
| "operationId" : "getExperiment", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "Experiment not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Get the experiment's detailed info by id", |
| "tags" : [ "experiment" ] |
| }, |
| "patch" : { |
| "operationId" : "patchExperiment", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ExperimentSpec" |
| } |
| }, |
| "application/yaml" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ExperimentSpec" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "404" : { |
| "description" : "Experiment not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Update the experiment in the submarine server with spec", |
| "tags" : [ "experiment" ] |
| } |
| }, |
| "/v1/experiment/{name}" : { |
| "post" : { |
| "operationId" : "SubmitExperimentTemplate", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "name", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ExperimentTemplateSubmit" |
| } |
| }, |
| "application/yaml" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ExperimentTemplateSubmit" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "use experiment template to create an experiment", |
| "tags" : [ "experiment" ] |
| } |
| }, |
| "/v1/model-version" : { |
| "patch" : { |
| "operationId" : "updateModelVersion", |
| "requestBody" : { |
| "content" : { |
| "*/*" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ModelVersionEntity" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "404" : { |
| "description" : "ModelVersionEntity not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Update the model version", |
| "tags" : [ "model-version" ] |
| }, |
| "post" : { |
| "operationId" : "createModelVersion", |
| "parameters" : [ { |
| "in" : "query", |
| "name" : "baseDir", |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ModelVersionEntity" |
| } |
| }, |
| "application/yaml" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ModelVersionEntity" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Create a model version instance", |
| "tags" : [ "model-version" ] |
| } |
| }, |
| "/v1/model-version/ping" : { |
| "get" : { |
| "description" : "Return the Pong message for test the connectivity", |
| "operationId" : "ping_1", |
| "responses" : { |
| "200" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Ping submarine server", |
| "tags" : [ "model-version" ] |
| } |
| }, |
| "/v1/model-version/tag" : { |
| "delete" : { |
| "operationId" : "deleteModelVersionTag", |
| "parameters" : [ { |
| "in" : "query", |
| "name" : "name", |
| "schema" : { |
| "type" : "string", |
| "default" : "" |
| } |
| }, { |
| "in" : "query", |
| "name" : "version", |
| "schema" : { |
| "type" : "string", |
| "default" : "" |
| } |
| }, { |
| "in" : "query", |
| "name" : "tag", |
| "schema" : { |
| "type" : "string", |
| "default" : "" |
| } |
| } ], |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Delete a model version tag instance", |
| "tags" : [ "model-version" ] |
| }, |
| "post" : { |
| "operationId" : "createModelVersionTag", |
| "parameters" : [ { |
| "in" : "query", |
| "name" : "name", |
| "schema" : { |
| "type" : "string", |
| "default" : "" |
| } |
| }, { |
| "in" : "query", |
| "name" : "version", |
| "schema" : { |
| "type" : "string", |
| "default" : "" |
| } |
| }, { |
| "in" : "query", |
| "name" : "tag", |
| "schema" : { |
| "type" : "string", |
| "default" : "" |
| } |
| } ], |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Create a model version tag instance", |
| "tags" : [ "model-version" ] |
| } |
| }, |
| "/v1/model-version/{name}" : { |
| "get" : { |
| "operationId" : "listModelVersions", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "name", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "List model versions", |
| "tags" : [ "model-version" ] |
| } |
| }, |
| "/v1/model-version/{name}/{version}" : { |
| "delete" : { |
| "operationId" : "deleteModelVersion", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "name", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| }, { |
| "in" : "path", |
| "name" : "version", |
| "required" : true, |
| "schema" : { |
| "type" : "integer", |
| "format" : "int32" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "ModelVersionEntity not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Delete the model version", |
| "tags" : [ "model-version" ] |
| }, |
| "get" : { |
| "operationId" : "getModelVersion", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "name", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| }, { |
| "in" : "path", |
| "name" : "version", |
| "required" : true, |
| "schema" : { |
| "type" : "integer", |
| "format" : "int32" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "ModelVersionEntity not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Get detailed info about the model version", |
| "tags" : [ "model-version" ] |
| } |
| }, |
| "/v1/notebook" : { |
| "get" : { |
| "operationId" : "listNotebooks", |
| "parameters" : [ { |
| "in" : "query", |
| "name" : "id", |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "List notebooks", |
| "tags" : [ "notebook" ] |
| }, |
| "post" : { |
| "operationId" : "createNotebook", |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/NotebookSpec" |
| } |
| }, |
| "application/yaml" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/NotebookSpec" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Create a notebook instance", |
| "tags" : [ "notebook" ] |
| } |
| }, |
| "/v1/notebook/ping" : { |
| "get" : { |
| "description" : "Return the Pong message for test the connectivity", |
| "operationId" : "ping_2", |
| "responses" : { |
| "200" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Ping submarine server", |
| "tags" : [ "notebook" ] |
| } |
| }, |
| "/v1/notebook/{id}" : { |
| "delete" : { |
| "operationId" : "deleteNotebook", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "Notebook not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Delete the notebook", |
| "tags" : [ "notebook" ] |
| }, |
| "get" : { |
| "operationId" : "getNotebook", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "Notebook not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Get detailed info about the notebook", |
| "tags" : [ "notebook" ] |
| } |
| }, |
| "/v1/registered-model" : { |
| "get" : { |
| "operationId" : "listRegisteredModels", |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "List registered models", |
| "tags" : [ "registered-model" ] |
| }, |
| "post" : { |
| "operationId" : "createRegisteredModel", |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/RegisteredModelEntity" |
| } |
| }, |
| "application/yaml" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/RegisteredModelEntity" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Create a registered model instance", |
| "tags" : [ "registered-model" ] |
| } |
| }, |
| "/v1/registered-model/ping" : { |
| "get" : { |
| "description" : "Return the Pong message for test the connectivity", |
| "operationId" : "ping_3", |
| "responses" : { |
| "200" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Ping submarine server", |
| "tags" : [ "registered-model" ] |
| } |
| }, |
| "/v1/registered-model/tag" : { |
| "delete" : { |
| "operationId" : "deleteRegisteredModelTag", |
| "parameters" : [ { |
| "in" : "query", |
| "name" : "name", |
| "schema" : { |
| "type" : "string", |
| "default" : "" |
| } |
| }, { |
| "in" : "query", |
| "name" : "tag", |
| "schema" : { |
| "type" : "string", |
| "default" : "" |
| } |
| } ], |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Delete a registered model tag instance", |
| "tags" : [ "registered-model" ] |
| }, |
| "post" : { |
| "operationId" : "createRegisteredModelTag", |
| "parameters" : [ { |
| "in" : "query", |
| "name" : "name", |
| "schema" : { |
| "type" : "string", |
| "default" : "" |
| } |
| }, { |
| "in" : "query", |
| "name" : "tag", |
| "schema" : { |
| "type" : "string", |
| "default" : "" |
| } |
| } ], |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Create a registered model tag instance", |
| "tags" : [ "registered-model" ] |
| } |
| }, |
| "/v1/registered-model/{name}" : { |
| "delete" : { |
| "operationId" : "deleteRegisteredModel", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "name", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "RegisteredModelEntity not found" |
| }, |
| "406" : { |
| "description" : "Some version of models are in the production stage" |
| }, |
| "500" : { |
| "description" : "Some error happen in server" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Delete the registered model", |
| "tags" : [ "registered-model" ] |
| }, |
| "get" : { |
| "operationId" : "getRegisteredModel", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "name", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "RegisteredModelEntity not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Get detailed info about the registered model", |
| "tags" : [ "registered-model" ] |
| }, |
| "patch" : { |
| "operationId" : "updateRegisteredModel", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "name", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "requestBody" : { |
| "content" : { |
| "*/*" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/RegisteredModelEntity" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "404" : { |
| "description" : "RegisteredModelEntity not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Update the registered model", |
| "tags" : [ "registered-model" ] |
| } |
| }, |
| "/v1/serve" : { |
| "delete" : { |
| "operationId" : "deleteServe", |
| "requestBody" : { |
| "content" : { |
| "*/*" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ServeSpec" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "404" : { |
| "description" : "Serve not found." |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Delete the serve instance.", |
| "tags" : [ "serve" ] |
| }, |
| "post" : { |
| "operationId" : "createServe", |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ServeSpec" |
| } |
| }, |
| "application/yaml" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ServeSpec" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Create a serve instance", |
| "tags" : [ "serve" ] |
| } |
| }, |
| "/v1/serve/ping" : { |
| "get" : { |
| "description" : "Return the Pong message for test the connectivity", |
| "operationId" : "ping_4", |
| "responses" : { |
| "200" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Ping submarine server", |
| "tags" : [ "serve" ] |
| } |
| }, |
| "/v1/template" : { |
| "get" : { |
| "operationId" : "listExperimentTemplate", |
| "parameters" : [ { |
| "in" : "query", |
| "name" : "status", |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "List of ExperimentTemplates", |
| "tags" : [ "experimentTemplates" ] |
| }, |
| "post" : { |
| "operationId" : "createExperimentTemplate", |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ExperimentTemplateSpec" |
| } |
| }, |
| "application/yaml" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ExperimentTemplateSpec" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Create a experimentTemplate", |
| "tags" : [ "experimentTemplate" ] |
| } |
| }, |
| "/v1/template/{id}" : { |
| "delete" : { |
| "operationId" : "deleteExperimentTemplate", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "ExperimentTemplate not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Delete the experimentTemplate", |
| "tags" : [ "experimentTemplates" ] |
| }, |
| "get" : { |
| "operationId" : "getExperimentTemplate", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "responses" : { |
| "404" : { |
| "description" : "ExperimentTemplate not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Find experimentTemplate by name", |
| "tags" : [ "experimentTemplate" ] |
| }, |
| "patch" : { |
| "operationId" : "updateExperimentTemplate", |
| "parameters" : [ { |
| "in" : "path", |
| "name" : "id", |
| "required" : true, |
| "schema" : { |
| "type" : "string" |
| } |
| } ], |
| "requestBody" : { |
| "content" : { |
| "application/json" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ExperimentTemplateSpec" |
| } |
| }, |
| "application/yaml" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/ExperimentTemplateSpec" |
| } |
| } |
| } |
| }, |
| "responses" : { |
| "404" : { |
| "description" : "ExperimentTemplate not found" |
| }, |
| "default" : { |
| "content" : { |
| "application/json; charset=utf-8" : { |
| "schema" : { |
| "$ref" : "#/components/schemas/JsonResponse" |
| } |
| } |
| }, |
| "description" : "successful operation" |
| } |
| }, |
| "summary" : "Update the experimentTemplate with job spec", |
| "tags" : [ "experimentTemplates" ] |
| } |
| } |
| }, |
| "components" : { |
| "schemas" : { |
| "CodeSpec" : { |
| "type" : "object", |
| "properties" : { |
| "git" : { |
| "$ref" : "#/components/schemas/GitCodeSpec" |
| }, |
| "syncMode" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "EnvironmentSpec" : { |
| "type" : "object", |
| "properties" : { |
| "description" : { |
| "type" : "string" |
| }, |
| "dockerImage" : { |
| "type" : "string" |
| }, |
| "image" : { |
| "type" : "string" |
| }, |
| "kernelSpec" : { |
| "$ref" : "#/components/schemas/KernelSpec" |
| }, |
| "name" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "ExperimentMeta" : { |
| "type" : "object", |
| "properties" : { |
| "cmd" : { |
| "type" : "string" |
| }, |
| "envVars" : { |
| "type" : "object", |
| "additionalProperties" : { |
| "type" : "string" |
| } |
| }, |
| "experimentId" : { |
| "type" : "string" |
| }, |
| "framework" : { |
| "type" : "string" |
| }, |
| "name" : { |
| "type" : "string" |
| }, |
| "namespace" : { |
| "type" : "string" |
| }, |
| "tags" : { |
| "type" : "array", |
| "items" : { |
| "type" : "string" |
| } |
| } |
| } |
| }, |
| "ExperimentSpec" : { |
| "type" : "object", |
| "properties" : { |
| "code" : { |
| "$ref" : "#/components/schemas/CodeSpec" |
| }, |
| "environment" : { |
| "$ref" : "#/components/schemas/EnvironmentSpec" |
| }, |
| "experimentHandlerSpec" : { |
| "type" : "object", |
| "additionalProperties" : { |
| "type" : "string" |
| } |
| }, |
| "meta" : { |
| "$ref" : "#/components/schemas/ExperimentMeta" |
| }, |
| "spec" : { |
| "type" : "object", |
| "additionalProperties" : { |
| "$ref" : "#/components/schemas/ExperimentTaskSpec" |
| } |
| } |
| } |
| }, |
| "ExperimentTaskSpec" : { |
| "type" : "object", |
| "properties" : { |
| "cmd" : { |
| "type" : "string" |
| }, |
| "cpu" : { |
| "type" : "string" |
| }, |
| "envVars" : { |
| "type" : "object", |
| "additionalProperties" : { |
| "type" : "string" |
| } |
| }, |
| "gpu" : { |
| "type" : "string" |
| }, |
| "image" : { |
| "type" : "string" |
| }, |
| "memory" : { |
| "type" : "string" |
| }, |
| "name" : { |
| "type" : "string" |
| }, |
| "replicas" : { |
| "type" : "integer", |
| "format" : "int32" |
| }, |
| "resources" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "ExperimentTemplateParamSpec" : { |
| "type" : "object", |
| "properties" : { |
| "description" : { |
| "type" : "string" |
| }, |
| "name" : { |
| "type" : "string" |
| }, |
| "required" : { |
| "type" : "string" |
| }, |
| "value" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "ExperimentTemplateSpec" : { |
| "type" : "object", |
| "properties" : { |
| "author" : { |
| "type" : "string" |
| }, |
| "description" : { |
| "type" : "string" |
| }, |
| "experimentSpec" : { |
| "$ref" : "#/components/schemas/ExperimentSpec" |
| }, |
| "experimentTemplateParamSpec" : { |
| "type" : "array", |
| "items" : { |
| "$ref" : "#/components/schemas/ExperimentTemplateParamSpec" |
| } |
| }, |
| "name" : { |
| "type" : "string" |
| }, |
| "parameters" : { |
| "type" : "array", |
| "items" : { |
| "$ref" : "#/components/schemas/ExperimentTemplateParamSpec" |
| } |
| } |
| } |
| }, |
| "ExperimentTemplateSubmit" : { |
| "type" : "object", |
| "properties" : { |
| "name" : { |
| "type" : "string" |
| }, |
| "params" : { |
| "type" : "object", |
| "additionalProperties" : { |
| "type" : "string" |
| } |
| } |
| } |
| }, |
| "GitCodeSpec" : { |
| "type" : "object", |
| "properties" : { |
| "branch" : { |
| "type" : "string" |
| }, |
| "password" : { |
| "type" : "string" |
| }, |
| "trustCerts" : { |
| "type" : "boolean" |
| }, |
| "url" : { |
| "type" : "string" |
| }, |
| "username" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "JsonResponse" : { |
| "type" : "object", |
| "properties" : { |
| "attributes" : { |
| "type" : "object", |
| "additionalProperties" : { |
| "type" : "object" |
| } |
| }, |
| "code" : { |
| "type" : "integer", |
| "format" : "int32" |
| }, |
| "result" : { |
| "type" : "object" |
| }, |
| "success" : { |
| "type" : "boolean" |
| } |
| } |
| }, |
| "KernelSpec" : { |
| "type" : "object", |
| "properties" : { |
| "channels" : { |
| "type" : "array", |
| "items" : { |
| "type" : "string" |
| } |
| }, |
| "condaDependencies" : { |
| "type" : "array", |
| "items" : { |
| "type" : "string" |
| } |
| }, |
| "name" : { |
| "type" : "string" |
| }, |
| "pipDependencies" : { |
| "type" : "array", |
| "items" : { |
| "type" : "string" |
| } |
| } |
| } |
| }, |
| "LoginParam" : { |
| "type" : "object", |
| "properties" : { |
| "password" : { |
| "type" : "string" |
| }, |
| "username" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "ModelVersionEntity" : { |
| "type" : "object", |
| "properties" : { |
| "creationTime" : { |
| "type" : "string", |
| "format" : "date-time" |
| }, |
| "currentStage" : { |
| "type" : "string" |
| }, |
| "dataset" : { |
| "type" : "string" |
| }, |
| "description" : { |
| "type" : "string" |
| }, |
| "experimentId" : { |
| "type" : "string" |
| }, |
| "id" : { |
| "type" : "string" |
| }, |
| "lastUpdatedTime" : { |
| "type" : "string", |
| "format" : "date-time" |
| }, |
| "modelType" : { |
| "type" : "string" |
| }, |
| "modelVersionId" : { |
| "type" : "integer", |
| "format" : "int64" |
| }, |
| "name" : { |
| "type" : "string" |
| }, |
| "tags" : { |
| "type" : "array", |
| "items" : { |
| "type" : "string" |
| } |
| }, |
| "userId" : { |
| "type" : "string" |
| }, |
| "version" : { |
| "type" : "integer", |
| "format" : "int32" |
| } |
| } |
| }, |
| "NotebookMeta" : { |
| "type" : "object", |
| "properties" : { |
| "labels" : { |
| "type" : "object", |
| "additionalProperties" : { |
| "type" : "string" |
| } |
| }, |
| "name" : { |
| "type" : "string" |
| }, |
| "namespace" : { |
| "type" : "string" |
| }, |
| "ownerId" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "NotebookPodSpec" : { |
| "type" : "object", |
| "properties" : { |
| "cpu" : { |
| "type" : "string" |
| }, |
| "envVars" : { |
| "type" : "object", |
| "additionalProperties" : { |
| "type" : "string" |
| } |
| }, |
| "gpu" : { |
| "type" : "string" |
| }, |
| "memory" : { |
| "type" : "string" |
| }, |
| "resources" : { |
| "type" : "string" |
| } |
| } |
| }, |
| "NotebookSpec" : { |
| "type" : "object", |
| "properties" : { |
| "environment" : { |
| "$ref" : "#/components/schemas/EnvironmentSpec" |
| }, |
| "meta" : { |
| "$ref" : "#/components/schemas/NotebookMeta" |
| }, |
| "spec" : { |
| "$ref" : "#/components/schemas/NotebookPodSpec" |
| } |
| } |
| }, |
| "RegisteredModelEntity" : { |
| "type" : "object", |
| "properties" : { |
| "creationTime" : { |
| "type" : "string", |
| "format" : "date-time" |
| }, |
| "description" : { |
| "type" : "string" |
| }, |
| "lastUpdatedTime" : { |
| "type" : "string", |
| "format" : "date-time" |
| }, |
| "modelId" : { |
| "type" : "integer", |
| "format" : "int64" |
| }, |
| "name" : { |
| "type" : "string" |
| }, |
| "tags" : { |
| "type" : "array", |
| "items" : { |
| "type" : "string" |
| } |
| } |
| } |
| }, |
| "ServeSpec" : { |
| "type" : "object", |
| "properties" : { |
| "id" : { |
| "type" : "integer", |
| "format" : "int64" |
| }, |
| "modelId" : { |
| "type" : "string" |
| }, |
| "modelName" : { |
| "type" : "string" |
| }, |
| "modelType" : { |
| "type" : "string" |
| }, |
| "modelURI" : { |
| "type" : "string" |
| }, |
| "modelVersion" : { |
| "type" : "integer", |
| "format" : "int32" |
| } |
| } |
| } |
| } |
| } |
| } |