Files
onepanel/api/proto/workspace_template.proto

131 lines
3.6 KiB
Protocol Buffer

syntax = "proto3";
package api;
option go_package = "github.com/onepanelio/core/api/gen";
import "google/api/annotations.proto";
import "workflow_template.proto";
import "label.proto";
service WorkspaceTemplateService {
// Get the generated WorkflowTemplate for a WorkspaceTemplate
rpc GenerateWorkspaceTemplateWorkflowTemplate (GenerateWorkspaceTemplateWorkflowTemplateRequest) returns (WorkflowTemplate) {
option (google.api.http) = {
post: "/apis/v1beta1/{namespace}/workspace_templates/{uid}/workflow_template"
body: "workspaceTemplate"
};
}
// Creates a WorkspaceTemplate
rpc CreateWorkspaceTemplate (CreateWorkspaceTemplateRequest) returns (WorkspaceTemplate) {
option (google.api.http) = {
post: "/apis/v1beta1/{namespace}/workspace_templates"
body: "workspaceTemplate"
};
}
// Updates a WorkspaceTemplate
rpc UpdateWorkspaceTemplate (UpdateWorkspaceTemplateRequest) returns (WorkspaceTemplate) {
option (google.api.http) = {
put: "/apis/v1beta1/{namespace}/workspace_templates/{uid}"
body: "workspaceTemplate"
};
}
// Archives a WorkspaceTemplate
rpc ArchiveWorkspaceTemplate (ArchiveWorkspaceTemplateRequest) returns (WorkspaceTemplate) {
option (google.api.http) = {
put: "/apis/v1beta1/{namespace}/workspace_templates/{uid}/archive"
};
}
// Get a WorkspaceTemplate
rpc GetWorkspaceTemplate (GetWorkspaceTemplateRequest) returns (WorkspaceTemplate) {
option (google.api.http) = {
get: "/apis/v1beta1/{namespace}/workspace_templates/{uid}"
};
}
rpc ListWorkspaceTemplates (ListWorkspaceTemplatesRequest) returns (ListWorkspaceTemplatesResponse) {
option (google.api.http) = {
get: "/apis/v1beta1/{namespace}/workspace_templates"
};
}
rpc ListWorkspaceTemplateVersions (ListWorkspaceTemplateVersionsRequest) returns (ListWorkspaceTemplateVersionsResponse) {
option (google.api.http) = {
get: "/apis/v1beta1/{namespace}/workspace_templates/{uid}/versions"
};
}
}
message WorkspaceTemplate {
string uid = 1;
string name = 2;
int64 version = 3;
string manifest = 4;
bool isLatest = 5;
string createdAt = 6;
WorkflowTemplate workflowTemplate = 7;
repeated KeyValue labels = 8;
bool isArchived = 9;
string description = 10;
}
message GenerateWorkspaceTemplateWorkflowTemplateRequest {
string namespace = 1;
string uid = 2;
WorkspaceTemplate workspaceTemplate = 3;
}
message CreateWorkspaceTemplateRequest {
string namespace = 1;
WorkspaceTemplate workspaceTemplate = 2;
}
message UpdateWorkspaceTemplateRequest {
string namespace = 1;
string uid = 2;
WorkspaceTemplate workspaceTemplate = 3;
}
message GetWorkspaceTemplateRequest {
string namespace = 1;
string uid = 2;
int64 version = 3;
}
message ArchiveWorkspaceTemplateRequest {
string namespace = 1;
string uid = 2;
}
message ListWorkspaceTemplatesRequest {
string namespace = 1;
int32 pageSize = 2;
int32 page = 3;
string order = 4;
string labels = 5;
string uid = 6;
}
message ListWorkspaceTemplatesResponse {
int32 count = 1;
repeated WorkspaceTemplate workspaceTemplates = 2;
int32 page = 3;
int32 pages = 4;
int32 totalCount = 5;
}
message ListWorkspaceTemplateVersionsRequest {
string namespace = 1;
string uid = 2;
}
message ListWorkspaceTemplateVersionsResponse {
int32 count = 1;
repeated WorkspaceTemplate workspaceTemplates = 2;
}