in frontend/server/src/main/java/org/pytorch/serve/openapi/OpenApiUtils.java [241:319]
private static Operation getRegisterOperation() {
Operation operation = new Operation("registerModel", "Register a new model in TorchServe.");
operation.addParameter(
new QueryParameter(
"url",
"string",
null,
true,
"Model archive download url, support local file or HTTP(s) protocol."
+ " For S3, consider use pre-signed url."));
operation.addParameter(
new QueryParameter(
"model_name",
"Name of model. This value will override modelName in MANIFEST.json if present."));
operation.addParameter(
new QueryParameter(
"handler",
"Inference handler entry-point. This value will override handler in MANIFEST.json if present."));
Parameter runtime =
new QueryParameter(
"runtime",
"Runtime for the model custom service code. This value will override runtime in MANIFEST.json if present.");
operation.addParameter(runtime);
operation.addParameter(
new QueryParameter(
"batch_size", "integer", "1", "Inference batch size, default: 1."));
operation.addParameter(
new QueryParameter(
"max_batch_delay",
"integer",
"100",
"Maximum delay for batch aggregation, default: 100."));
operation.addParameter(
new QueryParameter(
"response_timeout",
"integer",
"2",
"Maximum time, in seconds, the TorchServe waits for a response from the model inference code, default: 120."));
operation.addParameter(
new QueryParameter(
"initial_workers",
"integer",
"0",
"Number of initial workers, default: 0."));
operation.addParameter(
new QueryParameter(
"synchronous",
"boolean",
"false",
"Decides whether creation of worker synchronous or not, default: false."));
operation.addParameter(
new QueryParameter(
"s3_sse_kms",
"boolean",
"false",
"Model mar file is S3 SSE KMS(server side encryption) enabled or not, default: false."));
Manifest.RuntimeType[] types = Manifest.RuntimeType.values();
List<String> runtimeTypes = new ArrayList<>(types.length);
for (Manifest.RuntimeType type : types) {
runtimeTypes.add(type.toString());
}
runtime.getSchema().setEnumeration(runtimeTypes);
MediaType status = getStatusResponse();
MediaType error = getErrorResponse();
operation.addResponse(new Response("200", "Model registered", status));
operation.addResponse(new Response("202", "Accepted", status));
operation.addResponse(new Response("210", "Partial Success", status));
operation.addResponse(new Response("400", "Bad request", error));
operation.addResponse(new Response("404", "Model not found", error));
operation.addResponse(new Response("409", "Model already registered", error));
operation.addResponse(new Response("500", "Internal Server Error", error));
return operation;
}