coder/coderd/apidoc/swagger.json

9717 lines
251 KiB
JSON

{
"swagger": "2.0",
"info": {
"description": "Coderd is the service created by running coder server. It is a thin API that connects workspaces, provisioners and users. coderd stores its state in Postgres and is the only service that communicates with Postgres.",
"title": "Coder API",
"termsOfService": "https://coder.com/legal/terms-of-service",
"contact": {
"name": "API Support",
"url": "https://coder.com",
"email": "support@coder.com"
},
"license": {
"name": "AGPL-3.0",
"url": "https://github.com/coder/coder/blob/main/LICENSE"
},
"version": "2.0"
},
"basePath": "/api/v2",
"paths": {
"/": {
"get": {
"produces": ["application/json"],
"tags": ["General"],
"summary": "API root handler",
"operationId": "api-root-handler",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
}
},
"/appearance": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get appearance",
"operationId": "get-appearance",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.AppearanceConfig"
}
}
}
},
"put": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Update appearance",
"operationId": "update-appearance",
"parameters": [
{
"description": "Update appearance request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.UpdateAppearanceConfig"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.UpdateAppearanceConfig"
}
}
}
}
},
"/applications/auth-redirect": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"tags": ["Applications"],
"summary": "Redirect to URI with encrypted API key",
"operationId": "redirect-to-uri-with-encrypted-api-key",
"parameters": [
{
"type": "string",
"description": "Redirect destination",
"name": "redirect_uri",
"in": "query"
}
],
"responses": {
"307": {
"description": "Temporary Redirect"
}
}
}
},
"/applications/host": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Applications"],
"summary": "Get applications host",
"operationId": "get-applications-host",
"deprecated": true,
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.AppHostResponse"
}
}
}
}
},
"/applications/reconnecting-pty-signed-token": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Applications Enterprise"],
"summary": "Issue signed app token for reconnecting PTY",
"operationId": "issue-signed-app-token-for-reconnecting-pty",
"parameters": [
{
"description": "Issue reconnecting PTY signed token request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.IssueReconnectingPTYSignedTokenRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.IssueReconnectingPTYSignedTokenResponse"
}
}
},
"x-apidocgen": {
"skip": true
}
}
},
"/audit": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Audit"],
"summary": "Get audit logs",
"operationId": "get-audit-logs",
"parameters": [
{
"type": "string",
"description": "Search query",
"name": "q",
"in": "query",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "After ID",
"name": "after_id",
"in": "query"
},
{
"type": "integer",
"description": "Page limit",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Page offset",
"name": "offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.AuditLogResponse"
}
}
}
}
},
"/audit/testgenerate": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"tags": ["Audit"],
"summary": "Generate fake audit log",
"operationId": "generate-fake-audit-log",
"parameters": [
{
"description": "Audit log request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateTestAuditLogRequest"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/authcheck": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Authorization"],
"summary": "Check authorization",
"operationId": "check-authorization",
"parameters": [
{
"description": "Authorization request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.AuthorizationRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.AuthorizationResponse"
}
}
}
}
},
"/buildinfo": {
"get": {
"produces": ["application/json"],
"tags": ["General"],
"summary": "Build info",
"operationId": "build-info",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.BuildInfoResponse"
}
}
}
}
},
"/csp/reports": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"tags": ["General"],
"summary": "Report CSP violations",
"operationId": "report-csp-violations",
"parameters": [
{
"description": "Violation report",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/coderd.cspViolation"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/debug/coordinator": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["text/html"],
"tags": ["Debug"],
"summary": "Debug Info Wireguard Coordinator",
"operationId": "debug-info-wireguard-coordinator",
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/debug/health": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Debug"],
"summary": "Debug Info Deployment Health",
"operationId": "debug-info-deployment-health",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/healthcheck.Report"
}
}
}
}
},
"/deployment/config": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["General"],
"summary": "Get deployment config",
"operationId": "get-deployment-config",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.DeploymentConfig"
}
}
}
}
},
"/deployment/ssh": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["General"],
"summary": "SSH Config",
"operationId": "ssh-config",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.SSHConfigResponse"
}
}
}
}
},
"/deployment/stats": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["General"],
"summary": "Get deployment stats",
"operationId": "get-deployment-stats",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.DeploymentStats"
}
}
}
}
},
"/entitlements": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get entitlements",
"operationId": "get-entitlements",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Entitlements"
}
}
}
}
},
"/experiments": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["General"],
"summary": "Get experiments",
"operationId": "get-experiments",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.Experiment"
}
}
}
}
}
},
"/files": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"description": "Swagger notice: Swagger 2.0 doesn't support file upload with a `content-type` different than `application/x-www-form-urlencoded`.",
"consumes": ["application/x-tar"],
"produces": ["application/json"],
"tags": ["Files"],
"summary": "Upload file",
"operationId": "upload-file",
"parameters": [
{
"type": "string",
"default": "application/x-tar",
"description": "Content-Type must be `application/x-tar`",
"name": "Content-Type",
"in": "header",
"required": true
},
{
"type": "file",
"description": "File to be uploaded",
"name": "file",
"in": "formData",
"required": true
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.UploadResponse"
}
}
}
}
},
"/files/{fileID}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"tags": ["Files"],
"summary": "Get file by ID",
"operationId": "get-file-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "File ID",
"name": "fileID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/groups/{group}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get group by name",
"operationId": "get-group-by-name",
"parameters": [
{
"type": "string",
"description": "Group name",
"name": "group",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Group"
}
}
}
},
"delete": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Delete group by name",
"operationId": "delete-group-by-name",
"parameters": [
{
"type": "string",
"description": "Group name",
"name": "group",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Group"
}
}
}
},
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Update group by name",
"operationId": "update-group-by-name",
"parameters": [
{
"type": "string",
"description": "Group name",
"name": "group",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Group"
}
}
}
}
},
"/insights/daus": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Insights"],
"summary": "Get deployment DAUs",
"operationId": "get-deployment-daus",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.DeploymentDAUsResponse"
}
}
}
}
},
"/licenses": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get licenses",
"operationId": "get-licenses",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.License"
}
}
}
}
},
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Organizations"],
"summary": "Add new license",
"operationId": "add-new-license",
"parameters": [
{
"description": "Add license request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.AddLicenseRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.License"
}
}
}
}
},
"/licenses/{id}": {
"delete": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Delete license",
"operationId": "delete-license",
"parameters": [
{
"type": "string",
"format": "number",
"description": "License ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/organizations": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Organizations"],
"summary": "Create organization",
"operationId": "create-organization",
"parameters": [
{
"description": "Create organization request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateOrganizationRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.Organization"
}
}
}
}
},
"/organizations/{organization}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Organizations"],
"summary": "Get organization by ID",
"operationId": "get-organization-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Organization"
}
}
}
}
},
"/organizations/{organization}/groups": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get groups by organization",
"operationId": "get-groups-by-organization",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.Group"
}
}
}
}
},
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Create group for organization",
"operationId": "create-group-for-organization",
"parameters": [
{
"description": "Create group request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateGroupRequest"
}
},
{
"type": "string",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.Group"
}
}
}
}
},
"/organizations/{organization}/groups/{groupName}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get group by organization and group name",
"operationId": "get-group-by-organization-and-group-name",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Group name",
"name": "groupName",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Group"
}
}
}
}
},
"/organizations/{organization}/members/roles": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Members"],
"summary": "Get member roles by organization",
"operationId": "get-member-roles-by-organization",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.AssignableRoles"
}
}
}
}
}
},
"/organizations/{organization}/members/{user}/roles": {
"put": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Members"],
"summary": "Assign role to organization member",
"operationId": "assign-role-to-organization-member",
"parameters": [
{
"type": "string",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
},
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
},
{
"description": "Update roles request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.UpdateRoles"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.OrganizationMember"
}
}
}
}
},
"/organizations/{organization}/members/{user}/workspaces": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Workspaces"],
"summary": "Create user workspace by organization",
"operationId": "create-user-workspace-by-organization",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Username, UUID, or me",
"name": "user",
"in": "path",
"required": true
},
{
"description": "Create workspace request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateWorkspaceRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Workspace"
}
}
}
}
},
"/organizations/{organization}/provisionerdaemons": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get provisioner daemons",
"operationId": "get-provisioner-daemons",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.ProvisionerDaemon"
}
}
}
}
}
},
"/organizations/{organization}/provisionerdaemons/serve": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"tags": ["Enterprise"],
"summary": "Serve provisioner daemon",
"operationId": "serve-provisioner-daemon",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
}
],
"responses": {
"101": {
"description": "Switching Protocols"
}
}
}
},
"/organizations/{organization}/templates": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get templates by organization",
"operationId": "get-templates-by-organization",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.Template"
}
}
}
}
},
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Create template by organization",
"operationId": "create-template-by-organization",
"parameters": [
{
"description": "Request body",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateTemplateRequest"
}
},
{
"type": "string",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Template"
}
}
}
}
},
"/organizations/{organization}/templates/examples": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get template examples by organization",
"operationId": "get-template-examples-by-organization",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.TemplateExample"
}
}
}
}
}
},
"/organizations/{organization}/templates/{templatename}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get templates by organization and template name",
"operationId": "get-templates-by-organization-and-template-name",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Template name",
"name": "templatename",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Template"
}
}
}
}
},
"/organizations/{organization}/templates/{templatename}/versions/{templateversionname}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get template version by organization, template, and name",
"operationId": "get-template-version-by-organization-template-and-name",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Template name",
"name": "templatename",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Template version name",
"name": "templateversionname",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.TemplateVersion"
}
}
}
}
},
"/organizations/{organization}/templates/{templatename}/versions/{templateversionname}/previous": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get previous template version by organization, template, and name",
"operationId": "get-previous-template-version-by-organization-template-and-name",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Template name",
"name": "templatename",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Template version name",
"name": "templateversionname",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.TemplateVersion"
}
}
}
}
},
"/organizations/{organization}/templateversions": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Create template version by organization",
"operationId": "create-template-version-by-organization",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Organization ID",
"name": "organization",
"in": "path",
"required": true
},
{
"description": "Create template version request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateTemplateVersionRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.TemplateVersion"
}
}
}
}
},
"/parameters/{scope}/{id}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Parameters"],
"summary": "Get parameters",
"operationId": "get-parameters",
"parameters": [
{
"enum": ["template", "workspace", "import_job"],
"type": "string",
"description": "Scope",
"name": "scope",
"in": "path",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.Parameter"
}
}
}
}
},
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Parameters"],
"summary": "Create parameter",
"operationId": "create-parameter",
"parameters": [
{
"description": "Parameter request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateParameterRequest"
}
},
{
"enum": ["template", "workspace", "import_job"],
"type": "string",
"description": "Scope",
"name": "scope",
"in": "path",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.Parameter"
}
}
}
}
},
"/parameters/{scope}/{id}/{name}": {
"delete": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Parameters"],
"summary": "Delete parameter",
"operationId": "delete-parameter",
"parameters": [
{
"enum": ["template", "workspace", "import_job"],
"type": "string",
"description": "Scope",
"name": "scope",
"in": "path",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Name",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
}
},
"/regions": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["WorkspaceProxies"],
"summary": "Get site-wide regions for workspace connections",
"operationId": "get-site-wide-regions-for-workspace-connections",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.RegionsResponse"
}
}
}
}
},
"/replicas": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get active replicas",
"operationId": "get-active-replicas",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.Replica"
}
}
}
}
}
},
"/scim/v2/Users": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/scim+json"],
"tags": ["Enterprise"],
"summary": "SCIM 2.0: Get users",
"operationId": "scim-get-users",
"responses": {
"200": {
"description": "OK"
}
}
},
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "SCIM 2.0: Create new user",
"operationId": "scim-create-new-user",
"parameters": [
{
"description": "New user",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/coderd.SCIMUser"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/coderd.SCIMUser"
}
}
}
}
},
"/scim/v2/Users/{id}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/scim+json"],
"tags": ["Enterprise"],
"summary": "SCIM 2.0: Get user by ID",
"operationId": "scim-get-user-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"404": {
"description": "Not Found"
}
}
},
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/scim+json"],
"tags": ["Enterprise"],
"summary": "SCIM 2.0: Update user account",
"operationId": "scim-update-user-status",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Update user request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/coderd.SCIMUser"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.User"
}
}
}
}
},
"/templates/{template}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get template metadata by ID",
"operationId": "get-template-metadata-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template ID",
"name": "template",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Template"
}
}
}
},
"delete": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Delete template by ID",
"operationId": "delete-template-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template ID",
"name": "template",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
},
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Update template metadata by ID",
"operationId": "update-template-metadata-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template ID",
"name": "template",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Template"
}
}
}
}
},
"/templates/{template}/acl": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get template ACLs",
"operationId": "get-template-acls",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template ID",
"name": "template",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.TemplateUser"
}
}
}
}
},
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Update template ACL",
"operationId": "update-template-acl",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template ID",
"name": "template",
"in": "path",
"required": true
},
{
"description": "Update template request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.UpdateTemplateACL"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
}
},
"/templates/{template}/daus": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get template DAUs by ID",
"operationId": "get-template-daus-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template ID",
"name": "template",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.TemplateDAUsResponse"
}
}
}
}
},
"/templates/{template}/versions": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "List template versions by template ID",
"operationId": "list-template-versions-by-template-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template ID",
"name": "template",
"in": "path",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "After ID",
"name": "after_id",
"in": "query"
},
{
"type": "integer",
"description": "Page limit",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Page offset",
"name": "offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.TemplateVersion"
}
}
}
}
},
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Update active template version by template ID",
"operationId": "update-active-template-version-by-template-id",
"parameters": [
{
"description": "Modified template version",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.UpdateActiveTemplateVersion"
}
},
{
"type": "string",
"format": "uuid",
"description": "Template ID",
"name": "template",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
}
},
"/templates/{template}/versions/{templateversionname}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get template version by template ID and name",
"operationId": "get-template-version-by-template-id-and-name",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template ID",
"name": "template",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Template version name",
"name": "templateversionname",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.TemplateVersion"
}
}
}
}
}
},
"/templateversions/{templateversion}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get template version by ID",
"operationId": "get-template-version-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.TemplateVersion"
}
}
}
},
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Patch template version by ID",
"operationId": "patch-template-version-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
},
{
"description": "Patch template version request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.PatchTemplateVersionRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.TemplateVersion"
}
}
}
}
},
"/templateversions/{templateversion}/cancel": {
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Cancel template version by ID",
"operationId": "cancel-template-version-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
}
},
"/templateversions/{templateversion}/dry-run": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Create template version dry-run",
"operationId": "create-template-version-dry-run",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
},
{
"description": "Dry-run request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateTemplateVersionDryRunRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.ProvisionerJob"
}
}
}
}
},
"/templateversions/{templateversion}/dry-run/{jobID}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get template version dry-run by job ID",
"operationId": "get-template-version-dry-run-by-job-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "Job ID",
"name": "jobID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.ProvisionerJob"
}
}
}
}
},
"/templateversions/{templateversion}/dry-run/{jobID}/cancel": {
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Cancel template version dry-run by job ID",
"operationId": "cancel-template-version-dry-run-by-job-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Job ID",
"name": "jobID",
"in": "path",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
}
},
"/templateversions/{templateversion}/dry-run/{jobID}/logs": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get template version dry-run logs by job ID",
"operationId": "get-template-version-dry-run-logs-by-job-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "Job ID",
"name": "jobID",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "Before Unix timestamp",
"name": "before",
"in": "query"
},
{
"type": "integer",
"description": "After Unix timestamp",
"name": "after",
"in": "query"
},
{
"type": "boolean",
"description": "Follow log stream",
"name": "follow",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.ProvisionerJobLog"
}
}
}
}
}
},
"/templateversions/{templateversion}/dry-run/{jobID}/resources": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get template version dry-run resources by job ID",
"operationId": "get-template-version-dry-run-resources-by-job-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "Job ID",
"name": "jobID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceResource"
}
}
}
}
}
},
"/templateversions/{templateversion}/gitauth": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get git auth by template version",
"operationId": "get-git-auth-by-template-version",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.TemplateVersionGitAuth"
}
}
}
}
}
},
"/templateversions/{templateversion}/logs": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get logs by template version",
"operationId": "get-logs-by-template-version",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "Before log id",
"name": "before",
"in": "query"
},
{
"type": "integer",
"description": "After log id",
"name": "after",
"in": "query"
},
{
"type": "boolean",
"description": "Follow log stream",
"name": "follow",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.ProvisionerJobLog"
}
}
}
}
}
},
"/templateversions/{templateversion}/parameters": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get parameters by template version",
"operationId": "get-parameters-by-template-version",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/parameter.ComputedValue"
}
}
}
}
}
},
"/templateversions/{templateversion}/resources": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get resources by template version",
"operationId": "get-resources-by-template-version",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceResource"
}
}
}
}
}
},
"/templateversions/{templateversion}/rich-parameters": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get rich parameters by template version",
"operationId": "get-rich-parameters-by-template-version",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.TemplateVersionParameter"
}
}
}
}
}
},
"/templateversions/{templateversion}/schema": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get schema by template version",
"operationId": "get-schema-by-template-version",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.ParameterSchema"
}
}
}
}
}
},
"/templateversions/{templateversion}/variables": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Templates"],
"summary": "Get template variables by template version",
"operationId": "get-template-variables-by-template-version",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Template version ID",
"name": "templateversion",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.TemplateVersionVariable"
}
}
}
}
}
},
"/updatecheck": {
"get": {
"produces": ["application/json"],
"tags": ["General"],
"summary": "Update check",
"operationId": "update-check",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.UpdateCheckResponse"
}
}
}
}
},
"/users": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Get users",
"operationId": "get-users",
"parameters": [
{
"type": "string",
"description": "Search query",
"name": "q",
"in": "query"
},
{
"type": "string",
"format": "uuid",
"description": "After ID",
"name": "after_id",
"in": "query"
},
{
"type": "integer",
"description": "Page limit",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Page offset",
"name": "offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.GetUsersResponse"
}
}
}
},
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Create new user",
"operationId": "create-new-user",
"parameters": [
{
"description": "Create user request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateUserRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.User"
}
}
}
}
},
"/users/authmethods": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Get authentication methods",
"operationId": "get-authentication-methods",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.AuthMethods"
}
}
}
}
},
"/users/first": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Check initial user created",
"operationId": "check-initial-user-created",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
},
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Create initial user",
"operationId": "create-initial-user",
"parameters": [
{
"description": "First user request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateFirstUserRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.CreateFirstUserResponse"
}
}
}
}
},
"/users/login": {
"post": {
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Authorization"],
"summary": "Log in user",
"operationId": "log-in-user",
"parameters": [
{
"description": "Login request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.LoginWithPasswordRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.LoginWithPasswordResponse"
}
}
}
}
},
"/users/logout": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Log out user",
"operationId": "log-out-user",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
}
},
"/users/oauth2/github/callback": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"tags": ["Users"],
"summary": "OAuth 2.0 GitHub Callback",
"operationId": "oauth-20-github-callback",
"responses": {
"307": {
"description": "Temporary Redirect"
}
}
}
},
"/users/oidc/callback": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"tags": ["Users"],
"summary": "OpenID Connect Callback",
"operationId": "openid-connect-callback",
"responses": {
"307": {
"description": "Temporary Redirect"
}
}
}
},
"/users/roles": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Members"],
"summary": "Get site member roles",
"operationId": "get-site-member-roles",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.AssignableRoles"
}
}
}
}
}
},
"/users/{user}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Get user by name",
"operationId": "get-user-by-name",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.User"
}
}
}
},
"delete": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Delete user",
"operationId": "delete-user",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.User"
}
}
}
}
},
"/users/{user}/gitsshkey": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Get user Git SSH key",
"operationId": "get-user-git-ssh-key",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.GitSSHKey"
}
}
}
},
"put": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Regenerate user SSH key",
"operationId": "regenerate-user-ssh-key",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.GitSSHKey"
}
}
}
}
},
"/users/{user}/keys": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Create new session key",
"operationId": "create-new-session-key",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.GenerateAPIKeyResponse"
}
}
}
}
},
"/users/{user}/keys/tokens": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Get user tokens",
"operationId": "get-user-tokens",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.APIKey"
}
}
}
}
},
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Create token API key",
"operationId": "create-token-api-key",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
},
{
"description": "Create token request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateTokenRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.GenerateAPIKeyResponse"
}
}
}
}
},
"/users/{user}/keys/tokens/tokenconfig": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["General"],
"summary": "Get token config",
"operationId": "get-token-config",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.TokenConfig"
}
}
}
}
},
"/users/{user}/keys/tokens/{keyname}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Get API key by token name",
"operationId": "get-api-key-by-token-name",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
},
{
"type": "string",
"format": "string",
"description": "Key Name",
"name": "keyname",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.APIKey"
}
}
}
}
},
"/users/{user}/keys/{keyid}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Get API key by ID",
"operationId": "get-api-key-by-id",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "Key ID",
"name": "keyid",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.APIKey"
}
}
}
},
"delete": {
"security": [
{
"CoderSessionToken": []
}
],
"tags": ["Users"],
"summary": "Delete API key",
"operationId": "delete-api-key",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "Key ID",
"name": "keyid",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/users/{user}/organizations": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Get organizations by user",
"operationId": "get-organizations-by-user",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.Organization"
}
}
}
}
}
},
"/users/{user}/organizations/{organizationname}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Get organization by user and organization name",
"operationId": "get-organization-by-user-and-organization-name",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Organization name",
"name": "organizationname",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Organization"
}
}
}
}
},
"/users/{user}/password": {
"put": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"tags": ["Users"],
"summary": "Update user password",
"operationId": "update-user-password",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
},
{
"description": "Update password request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.UpdateUserPasswordRequest"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/users/{user}/profile": {
"put": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Update user profile",
"operationId": "update-user-profile",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
},
{
"description": "Updated profile",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.UpdateUserProfileRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.User"
}
}
}
}
},
"/users/{user}/roles": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Get user roles",
"operationId": "get-user-roles",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.User"
}
}
}
},
"put": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Assign role to user",
"operationId": "assign-role-to-user",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
},
{
"description": "Update roles request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.UpdateRoles"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.User"
}
}
}
}
},
"/users/{user}/status/activate": {
"put": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Activate user account",
"operationId": "activate-user-account",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.User"
}
}
}
}
},
"/users/{user}/status/suspend": {
"put": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Users"],
"summary": "Suspend user account",
"operationId": "suspend-user-account",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.User"
}
}
}
}
},
"/users/{user}/workspace/{workspacename}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Workspaces"],
"summary": "Get workspace metadata by user and workspace name",
"operationId": "get-workspace-metadata-by-user-and-workspace-name",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Workspace name",
"name": "workspacename",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "Return data instead of HTTP 404 if the workspace is deleted",
"name": "include_deleted",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Workspace"
}
}
}
}
},
"/users/{user}/workspace/{workspacename}/builds/{buildnumber}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Builds"],
"summary": "Get workspace build by user, workspace name, and build number",
"operationId": "get-workspace-build-by-user-workspace-name-and-build-number",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Workspace name",
"name": "workspacename",
"in": "path",
"required": true
},
{
"type": "string",
"format": "number",
"description": "Build number",
"name": "buildnumber",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.WorkspaceBuild"
}
}
}
}
},
"/workspace-quota/{user}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get workspace quota by user",
"operationId": "get-workspace-quota-by-user",
"parameters": [
{
"type": "string",
"description": "User ID, name, or me",
"name": "user",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.WorkspaceQuota"
}
}
}
}
},
"/workspaceagents/aws-instance-identity": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Authenticate agent on AWS instance",
"operationId": "authenticate-agent-on-aws-instance",
"parameters": [
{
"description": "Instance identity token",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/agentsdk.AWSInstanceIdentityToken"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/agentsdk.AuthenticateResponse"
}
}
}
}
},
"/workspaceagents/azure-instance-identity": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Authenticate agent on Azure instance",
"operationId": "authenticate-agent-on-azure-instance",
"parameters": [
{
"description": "Instance identity token",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/agentsdk.AzureInstanceIdentityToken"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/agentsdk.AuthenticateResponse"
}
}
}
}
},
"/workspaceagents/google-instance-identity": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Authenticate agent on Google Cloud instance",
"operationId": "authenticate-agent-on-google-cloud-instance",
"parameters": [
{
"description": "Instance identity token",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/agentsdk.GoogleInstanceIdentityToken"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/agentsdk.AuthenticateResponse"
}
}
}
}
},
"/workspaceagents/me/app-health": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Submit workspace agent application health",
"operationId": "submit-workspace-agent-application-health",
"parameters": [
{
"description": "Application health request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/agentsdk.PostAppHealthsRequest"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/workspaceagents/me/coordinate": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"description": "It accepts a WebSocket connection to an agent that listens to\nincoming connections and publishes node updates.",
"tags": ["Agents"],
"summary": "Coordinate workspace agent via Tailnet",
"operationId": "coordinate-workspace-agent-via-tailnet",
"responses": {
"101": {
"description": "Switching Protocols"
}
}
}
},
"/workspaceagents/me/gitauth": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Get workspace agent Git auth",
"operationId": "get-workspace-agent-git-auth",
"parameters": [
{
"type": "string",
"format": "uri",
"description": "Git URL",
"name": "url",
"in": "query",
"required": true
},
{
"type": "boolean",
"description": "Wait for a new token to be issued",
"name": "listen",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/agentsdk.GitAuthResponse"
}
}
}
}
},
"/workspaceagents/me/gitsshkey": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Get workspace agent Git SSH key",
"operationId": "get-workspace-agent-git-ssh-key",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/agentsdk.GitSSHKey"
}
}
}
}
},
"/workspaceagents/me/manifest": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Get authorized workspace agent manifest",
"operationId": "get-authorized-workspace-agent-manifest",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/agentsdk.Manifest"
}
}
}
}
},
"/workspaceagents/me/metadata/{key}": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"tags": ["Agents"],
"summary": "Submit workspace agent metadata",
"operationId": "submit-workspace-agent-metadata",
"parameters": [
{
"description": "Workspace agent metadata request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/agentsdk.PostMetadataRequest"
}
},
{
"type": "string",
"format": "string",
"description": "metadata key",
"name": "key",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "Success"
}
},
"x-apidocgen": {
"skip": true
}
}
},
"/workspaceagents/me/report-lifecycle": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"tags": ["Agents"],
"summary": "Submit workspace agent lifecycle state",
"operationId": "submit-workspace-agent-lifecycle-state",
"parameters": [
{
"description": "Workspace agent lifecycle request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/agentsdk.PostLifecycleRequest"
}
}
],
"responses": {
"204": {
"description": "Success"
}
},
"x-apidocgen": {
"skip": true
}
}
},
"/workspaceagents/me/report-stats": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Submit workspace agent stats",
"operationId": "submit-workspace-agent-stats",
"parameters": [
{
"description": "Stats request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/agentsdk.Stats"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/agentsdk.StatsResponse"
}
}
},
"x-apidocgen": {
"skip": true
}
}
},
"/workspaceagents/me/startup": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Submit workspace agent startup",
"operationId": "submit-workspace-agent-startup",
"parameters": [
{
"description": "Startup request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/agentsdk.PostStartupRequest"
}
}
],
"responses": {
"200": {
"description": "OK"
}
},
"x-apidocgen": {
"skip": true
}
}
},
"/workspaceagents/me/startup-logs": {
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Patch workspace agent startup logs",
"operationId": "patch-workspace-agent-startup-logs",
"parameters": [
{
"description": "Startup logs",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/agentsdk.PatchStartupLogs"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
},
"x-apidocgen": {
"skip": true
}
}
},
"/workspaceagents/{workspaceagent}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Get workspace agent by ID",
"operationId": "get-workspace-agent-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace agent ID",
"name": "workspaceagent",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.WorkspaceAgent"
}
}
}
}
},
"/workspaceagents/{workspaceagent}/connection": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Get connection info for workspace agent",
"operationId": "get-connection-info-for-workspace-agent",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace agent ID",
"name": "workspaceagent",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.WorkspaceAgentConnectionInfo"
}
}
}
}
},
"/workspaceagents/{workspaceagent}/coordinate": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"tags": ["Agents"],
"summary": "Coordinate workspace agent",
"operationId": "coordinate-workspace-agent",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace agent ID",
"name": "workspaceagent",
"in": "path",
"required": true
}
],
"responses": {
"101": {
"description": "Switching Protocols"
}
}
}
},
"/workspaceagents/{workspaceagent}/listening-ports": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Get listening ports for workspace agent",
"operationId": "get-listening-ports-for-workspace-agent",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace agent ID",
"name": "workspaceagent",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.WorkspaceAgentListeningPortsResponse"
}
}
}
}
},
"/workspaceagents/{workspaceagent}/pty": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"tags": ["Agents"],
"summary": "Open PTY to workspace agent",
"operationId": "open-pty-to-workspace-agent",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace agent ID",
"name": "workspaceagent",
"in": "path",
"required": true
}
],
"responses": {
"101": {
"description": "Switching Protocols"
}
}
}
},
"/workspaceagents/{workspaceagent}/startup-logs": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Agents"],
"summary": "Get startup logs by workspace agent",
"operationId": "get-startup-logs-by-workspace-agent",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace agent ID",
"name": "workspaceagent",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "Before log id",
"name": "before",
"in": "query"
},
{
"type": "integer",
"description": "After log id",
"name": "after",
"in": "query"
},
{
"type": "boolean",
"description": "Follow log stream",
"name": "follow",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceAgentStartupLog"
}
}
}
}
}
},
"/workspaceagents/{workspaceagent}/watch-metadata": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"tags": ["Agents"],
"summary": "Watch for workspace agent metadata updates",
"operationId": "watch-for-workspace-agent-metadata-updates",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace agent ID",
"name": "workspaceagent",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Success"
}
},
"x-apidocgen": {
"skip": true
}
}
},
"/workspacebuilds/{workspacebuild}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Builds"],
"summary": "Get workspace build",
"operationId": "get-workspace-build",
"parameters": [
{
"type": "string",
"description": "Workspace build ID",
"name": "workspacebuild",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.WorkspaceBuild"
}
}
}
}
},
"/workspacebuilds/{workspacebuild}/cancel": {
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Builds"],
"summary": "Cancel workspace build",
"operationId": "cancel-workspace-build",
"parameters": [
{
"type": "string",
"description": "Workspace build ID",
"name": "workspacebuild",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
}
},
"/workspacebuilds/{workspacebuild}/logs": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Builds"],
"summary": "Get workspace build logs",
"operationId": "get-workspace-build-logs",
"parameters": [
{
"type": "string",
"description": "Workspace build ID",
"name": "workspacebuild",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "Before Unix timestamp",
"name": "before",
"in": "query"
},
{
"type": "integer",
"description": "After Unix timestamp",
"name": "after",
"in": "query"
},
{
"type": "boolean",
"description": "Follow log stream",
"name": "follow",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.ProvisionerJobLog"
}
}
}
}
}
},
"/workspacebuilds/{workspacebuild}/parameters": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Builds"],
"summary": "Get build parameters for workspace build",
"operationId": "get-build-parameters-for-workspace-build",
"parameters": [
{
"type": "string",
"description": "Workspace build ID",
"name": "workspacebuild",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceBuildParameter"
}
}
}
}
}
},
"/workspacebuilds/{workspacebuild}/resources": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Builds"],
"summary": "Get workspace resources for workspace build",
"operationId": "get-workspace-resources-for-workspace-build",
"parameters": [
{
"type": "string",
"description": "Workspace build ID",
"name": "workspacebuild",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceResource"
}
}
}
}
}
},
"/workspacebuilds/{workspacebuild}/state": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Builds"],
"summary": "Get provisioner state for workspace build",
"operationId": "get-provisioner-state-for-workspace-build",
"parameters": [
{
"type": "string",
"description": "Workspace build ID",
"name": "workspacebuild",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.WorkspaceBuild"
}
}
}
}
},
"/workspaceproxies": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get workspace proxies",
"operationId": "get-workspace-proxies",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceProxy"
}
}
}
}
},
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Create workspace proxy",
"operationId": "create-workspace-proxy",
"parameters": [
{
"description": "Create workspace proxy request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateWorkspaceProxyRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.WorkspaceProxy"
}
}
}
}
},
"/workspaceproxies/me/goingaway": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Workspace proxy going away",
"operationId": "workspace-proxy-going-away",
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
},
"x-apidocgen": {
"skip": true
}
}
},
"/workspaceproxies/me/issue-signed-app-token": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Issue signed workspace app token",
"operationId": "issue-signed-workspace-app-token",
"parameters": [
{
"description": "Issue signed app token request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/workspaceapps.IssueTokenRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/wsproxysdk.IssueSignedAppTokenResponse"
}
}
},
"x-apidocgen": {
"skip": true
}
}
},
"/workspaceproxies/me/register": {
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Register workspace proxy",
"operationId": "register-workspace-proxy",
"parameters": [
{
"description": "Issue signed app token request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/wsproxysdk.RegisterWorkspaceProxyRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/wsproxysdk.RegisterWorkspaceProxyResponse"
}
}
},
"x-apidocgen": {
"skip": true
}
}
},
"/workspaceproxies/{workspaceproxy}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Get workspace proxy",
"operationId": "get-workspace-proxy",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Proxy ID or name",
"name": "workspaceproxy",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.WorkspaceProxy"
}
}
}
},
"delete": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Delete workspace proxy",
"operationId": "delete-workspace-proxy",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Proxy ID or name",
"name": "workspaceproxy",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
},
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Enterprise"],
"summary": "Update workspace proxy",
"operationId": "update-workspace-proxy",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Proxy ID or name",
"name": "workspaceproxy",
"in": "path",
"required": true
},
{
"description": "Update workspace proxy request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.PatchWorkspaceProxy"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.WorkspaceProxy"
}
}
}
}
},
"/workspaces": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Workspaces"],
"summary": "List workspaces",
"operationId": "list-workspaces",
"parameters": [
{
"type": "string",
"description": "Filter by owner username",
"name": "owner",
"in": "query"
},
{
"type": "string",
"description": "Filter by template name",
"name": "template",
"in": "query"
},
{
"type": "string",
"description": "Filter with partial-match by workspace name",
"name": "name",
"in": "query"
},
{
"enum": [
"pending",
"running",
"stopping",
"stopped",
"failed",
"canceling",
"canceled",
"deleted",
"deleting"
],
"type": "string",
"description": "Filter by workspace status",
"name": "status",
"in": "query"
},
{
"enum": ["connected", "connecting", "disconnected", "timeout"],
"type": "string",
"description": "Filter by agent status",
"name": "has_agent",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.WorkspacesResponse"
}
}
}
}
},
"/workspaces/{workspace}": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Workspaces"],
"summary": "Get workspace metadata by ID",
"operationId": "get-workspace-metadata-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace ID",
"name": "workspace",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "Return data instead of HTTP 404 if the workspace is deleted",
"name": "include_deleted",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Workspace"
}
}
}
},
"patch": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"tags": ["Workspaces"],
"summary": "Update workspace metadata by ID",
"operationId": "update-workspace-metadata-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace ID",
"name": "workspace",
"in": "path",
"required": true
},
{
"description": "Metadata update request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.UpdateWorkspaceRequest"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/workspaces/{workspace}/autostart": {
"put": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"tags": ["Workspaces"],
"summary": "Update workspace autostart schedule by ID",
"operationId": "update-workspace-autostart-schedule-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace ID",
"name": "workspace",
"in": "path",
"required": true
},
{
"description": "Schedule update request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.UpdateWorkspaceAutostartRequest"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/workspaces/{workspace}/builds": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["application/json"],
"tags": ["Builds"],
"summary": "Get workspace builds by workspace ID",
"operationId": "get-workspace-builds-by-workspace-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace ID",
"name": "workspace",
"in": "path",
"required": true
},
{
"type": "string",
"format": "uuid",
"description": "After ID",
"name": "after_id",
"in": "query"
},
{
"type": "integer",
"description": "Page limit",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Page offset",
"name": "offset",
"in": "query"
},
{
"type": "string",
"format": "date-time",
"description": "Since timestamp",
"name": "since",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceBuild"
}
}
}
}
},
"post": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Builds"],
"summary": "Create workspace build",
"operationId": "create-workspace-build",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace ID",
"name": "workspace",
"in": "path",
"required": true
},
{
"description": "Create workspace build request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.CreateWorkspaceBuildRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.WorkspaceBuild"
}
}
}
}
},
"/workspaces/{workspace}/extend": {
"put": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Workspaces"],
"summary": "Extend workspace deadline by ID",
"operationId": "extend-workspace-deadline-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace ID",
"name": "workspace",
"in": "path",
"required": true
},
{
"description": "Extend deadline update request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.PutExtendWorkspaceRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
}
},
"/workspaces/{workspace}/ttl": {
"put": {
"security": [
{
"CoderSessionToken": []
}
],
"consumes": ["application/json"],
"tags": ["Workspaces"],
"summary": "Update workspace TTL by ID",
"operationId": "update-workspace-ttl-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace ID",
"name": "workspace",
"in": "path",
"required": true
},
{
"description": "Workspace TTL update request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/codersdk.UpdateWorkspaceTTLRequest"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/workspaces/{workspace}/watch": {
"get": {
"security": [
{
"CoderSessionToken": []
}
],
"produces": ["text/event-stream"],
"tags": ["Workspaces"],
"summary": "Watch workspace by ID",
"operationId": "watch-workspace-by-id",
"parameters": [
{
"type": "string",
"format": "uuid",
"description": "Workspace ID",
"name": "workspace",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
}
}
},
"definitions": {
"agentsdk.AWSInstanceIdentityToken": {
"type": "object",
"required": ["document", "signature"],
"properties": {
"document": {
"type": "string"
},
"signature": {
"type": "string"
}
}
},
"agentsdk.AgentMetric": {
"type": "object",
"required": ["name", "type", "value"],
"properties": {
"name": {
"type": "string"
},
"type": {
"enum": ["counter", "gauge"],
"allOf": [
{
"$ref": "#/definitions/agentsdk.AgentMetricType"
}
]
},
"value": {
"type": "number"
}
}
},
"agentsdk.AgentMetricType": {
"type": "string",
"enum": ["counter", "gauge"],
"x-enum-varnames": ["AgentMetricTypeCounter", "AgentMetricTypeGauge"]
},
"agentsdk.AuthenticateResponse": {
"type": "object",
"properties": {
"session_token": {
"type": "string"
}
}
},
"agentsdk.AzureInstanceIdentityToken": {
"type": "object",
"required": ["encoding", "signature"],
"properties": {
"encoding": {
"type": "string"
},
"signature": {
"type": "string"
}
}
},
"agentsdk.GitAuthResponse": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"url": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"agentsdk.GitSSHKey": {
"type": "object",
"properties": {
"private_key": {
"type": "string"
},
"public_key": {
"type": "string"
}
}
},
"agentsdk.GoogleInstanceIdentityToken": {
"type": "object",
"required": ["json_web_token"],
"properties": {
"json_web_token": {
"type": "string"
}
}
},
"agentsdk.Manifest": {
"type": "object",
"properties": {
"apps": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceApp"
}
},
"derpmap": {
"$ref": "#/definitions/tailcfg.DERPMap"
},
"directory": {
"type": "string"
},
"environment_variables": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"git_auth_configs": {
"description": "GitAuthConfigs stores the number of Git configurations\nthe Coder deployment has. If this number is \u003e0, we\nset up special configuration in the workspace.",
"type": "integer"
},
"metadata": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceAgentMetadataDescription"
}
},
"motd_file": {
"type": "string"
},
"shutdown_script": {
"type": "string"
},
"shutdown_script_timeout": {
"type": "integer"
},
"startup_script": {
"type": "string"
},
"startup_script_timeout": {
"type": "integer"
},
"vscode_port_proxy_uri": {
"type": "string"
}
}
},
"agentsdk.PatchStartupLogs": {
"type": "object",
"properties": {
"logs": {
"type": "array",
"items": {
"$ref": "#/definitions/agentsdk.StartupLog"
}
}
}
},
"agentsdk.PostAppHealthsRequest": {
"type": "object",
"properties": {
"healths": {
"description": "Healths is a map of the workspace app name and the health of the app.",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/codersdk.WorkspaceAppHealth"
}
}
}
},
"agentsdk.PostLifecycleRequest": {
"type": "object",
"properties": {
"state": {
"$ref": "#/definitions/codersdk.WorkspaceAgentLifecycle"
}
}
},
"agentsdk.PostMetadataRequest": {
"type": "object",
"properties": {
"age": {
"description": "Age is the number of seconds since the metadata was collected.\nIt is provided in addition to CollectedAt to protect against clock skew.",
"type": "integer"
},
"collected_at": {
"type": "string",
"format": "date-time"
},
"error": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"agentsdk.PostStartupRequest": {
"type": "object",
"properties": {
"expanded_directory": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"agentsdk.StartupLog": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"level": {
"$ref": "#/definitions/codersdk.LogLevel"
},
"output": {
"type": "string"
}
}
},
"agentsdk.Stats": {
"type": "object",
"properties": {
"connection_count": {
"description": "ConnectionCount is the number of connections received by an agent.",
"type": "integer"
},
"connection_median_latency_ms": {
"description": "ConnectionMedianLatencyMS is the median latency of all connections in milliseconds.",
"type": "number"
},
"connections_by_proto": {
"description": "ConnectionsByProto is a count of connections by protocol.",
"type": "object",
"additionalProperties": {
"type": "integer"
}
},
"metrics": {
"description": "Metrics collected by the agent",
"type": "array",
"items": {
"$ref": "#/definitions/agentsdk.AgentMetric"
}
},
"rx_bytes": {
"description": "RxBytes is the number of received bytes.",
"type": "integer"
},
"rx_packets": {
"description": "RxPackets is the number of received packets.",
"type": "integer"
},
"session_count_jetbrains": {
"description": "SessionCountJetBrains is the number of connections received by an agent\nthat are from our JetBrains extension.",
"type": "integer"
},
"session_count_reconnecting_pty": {
"description": "SessionCountReconnectingPTY is the number of connections received by an agent\nthat are from the reconnecting web terminal.",
"type": "integer"
},
"session_count_ssh": {
"description": "SessionCountSSH is the number of connections received by an agent\nthat are normal, non-tagged SSH sessions.",
"type": "integer"
},
"session_count_vscode": {
"description": "SessionCountVSCode is the number of connections received by an agent\nthat are from our VS Code extension.",
"type": "integer"
},
"tx_bytes": {
"description": "TxBytes is the number of transmitted bytes.",
"type": "integer"
},
"tx_packets": {
"description": "TxPackets is the number of transmitted bytes.",
"type": "integer"
}
}
},
"agentsdk.StatsResponse": {
"type": "object",
"properties": {
"report_interval": {
"description": "ReportInterval is the duration after which the agent should send stats\nagain.",
"type": "integer"
}
}
},
"clibase.Annotations": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"clibase.Group": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string"
},
"parent": {
"$ref": "#/definitions/clibase.Group"
},
"yaml": {
"type": "string"
}
}
},
"clibase.HostPort": {
"type": "object",
"properties": {
"host": {
"type": "string"
},
"port": {
"type": "string"
}
}
},
"clibase.Option": {
"type": "object",
"properties": {
"annotations": {
"description": "Annotations enable extensions to clibase higher up in the stack. It's useful for\nhelp formatting and documentation generation.",
"allOf": [
{
"$ref": "#/definitions/clibase.Annotations"
}
]
},
"default": {
"description": "Default is parsed into Value if set.",
"type": "string"
},
"description": {
"type": "string"
},
"env": {
"description": "Env is the environment variable used to configure this option. If unset,\nenvironment configuring is disabled.",
"type": "string"
},
"flag": {
"description": "Flag is the long name of the flag used to configure this option. If unset,\nflag configuring is disabled.",
"type": "string"
},
"flag_shorthand": {
"description": "FlagShorthand is the one-character shorthand for the flag. If unset, no\nshorthand is used.",
"type": "string"
},
"group": {
"description": "Group is a group hierarchy that helps organize this option in help, configs\nand other documentation.",
"allOf": [
{
"$ref": "#/definitions/clibase.Group"
}
]
},
"hidden": {
"type": "boolean"
},
"name": {
"type": "string"
},
"use_instead": {
"description": "UseInstead is a list of options that should be used instead of this one.\nThe field is used to generate a deprecation warning.",
"type": "array",
"items": {
"$ref": "#/definitions/clibase.Option"
}
},
"value": {
"description": "Value includes the types listed in values.go."
},
"value_source": {
"$ref": "#/definitions/clibase.ValueSource"
},
"yaml": {
"description": "YAML is the YAML key used to configure this option. If unset, YAML\nconfiguring is disabled.",
"type": "string"
}
}
},
"clibase.Struct-array_codersdk_GitAuthConfig": {
"type": "object",
"properties": {
"value": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.GitAuthConfig"
}
}
}
},
"clibase.Struct-array_codersdk_LinkConfig": {
"type": "object",
"properties": {
"value": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.LinkConfig"
}
}
}
},
"clibase.URL": {
"type": "object",
"properties": {
"forceQuery": {
"description": "append a query ('?') even if RawQuery is empty",
"type": "boolean"
},
"fragment": {
"description": "fragment for references, without '#'",
"type": "string"
},
"host": {
"description": "host or host:port",
"type": "string"
},
"omitHost": {
"description": "do not emit empty host (authority)",
"type": "boolean"
},
"opaque": {
"description": "encoded opaque data",
"type": "string"
},
"path": {
"description": "path (relative paths may omit leading slash)",
"type": "string"
},
"rawFragment": {
"description": "encoded fragment hint (see EscapedFragment method)",
"type": "string"
},
"rawPath": {
"description": "encoded path hint (see EscapedPath method)",
"type": "string"
},
"rawQuery": {
"description": "encoded query values, without '?'",
"type": "string"
},
"scheme": {
"type": "string"
},
"user": {
"description": "username and password information",
"allOf": [
{
"$ref": "#/definitions/url.Userinfo"
}
]
}
}
},
"clibase.ValueSource": {
"type": "string",
"enum": ["", "flag", "env", "yaml", "default"],
"x-enum-varnames": [
"ValueSourceNone",
"ValueSourceFlag",
"ValueSourceEnv",
"ValueSourceYAML",
"ValueSourceDefault"
]
},
"coderd.SCIMUser": {
"type": "object",
"properties": {
"active": {
"type": "boolean"
},
"emails": {
"type": "array",
"items": {
"type": "object",
"properties": {
"display": {
"type": "string"
},
"primary": {
"type": "boolean"
},
"type": {
"type": "string"
},
"value": {
"type": "string",
"format": "email"
}
}
}
},
"groups": {
"type": "array",
"items": {}
},
"id": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"resourceType": {
"type": "string"
}
}
},
"name": {
"type": "object",
"properties": {
"familyName": {
"type": "string"
},
"givenName": {
"type": "string"
}
}
},
"schemas": {
"type": "array",
"items": {
"type": "string"
}
},
"userName": {
"type": "string"
}
}
},
"coderd.cspViolation": {
"type": "object",
"properties": {
"csp-report": {
"type": "object",
"additionalProperties": true
}
}
},
"codersdk.APIKey": {
"type": "object",
"required": [
"created_at",
"expires_at",
"id",
"last_used",
"lifetime_seconds",
"login_type",
"scope",
"token_name",
"updated_at",
"user_id"
],
"properties": {
"created_at": {
"type": "string",
"format": "date-time"
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"id": {
"type": "string"
},
"last_used": {
"type": "string",
"format": "date-time"
},
"lifetime_seconds": {
"type": "integer"
},
"login_type": {
"enum": ["password", "github", "oidc", "token"],
"allOf": [
{
"$ref": "#/definitions/codersdk.LoginType"
}
]
},
"scope": {
"enum": ["all", "application_connect"],
"allOf": [
{
"$ref": "#/definitions/codersdk.APIKeyScope"
}
]
},
"token_name": {
"type": "string"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"user_id": {
"type": "string",
"format": "uuid"
}
}
},
"codersdk.APIKeyScope": {
"type": "string",
"enum": ["all", "application_connect"],
"x-enum-varnames": ["APIKeyScopeAll", "APIKeyScopeApplicationConnect"]
},
"codersdk.AddLicenseRequest": {
"type": "object",
"required": ["license"],
"properties": {
"license": {
"type": "string"
}
}
},
"codersdk.AppHostResponse": {
"type": "object",
"properties": {
"host": {
"description": "Host is the externally accessible URL for the Coder instance.",
"type": "string"
}
}
},
"codersdk.AppearanceConfig": {
"type": "object",
"properties": {
"logo_url": {
"type": "string"
},
"service_banner": {
"$ref": "#/definitions/codersdk.ServiceBannerConfig"
},
"support_links": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.LinkConfig"
}
}
}
},
"codersdk.AssignableRoles": {
"type": "object",
"properties": {
"assignable": {
"type": "boolean"
},
"display_name": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"codersdk.AuditAction": {
"type": "string",
"enum": [
"create",
"write",
"delete",
"start",
"stop",
"login",
"logout",
"register"
],
"x-enum-varnames": [
"AuditActionCreate",
"AuditActionWrite",
"AuditActionDelete",
"AuditActionStart",
"AuditActionStop",
"AuditActionLogin",
"AuditActionLogout",
"AuditActionRegister"
]
},
"codersdk.AuditDiff": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/codersdk.AuditDiffField"
}
},
"codersdk.AuditDiffField": {
"type": "object",
"properties": {
"new": {},
"old": {},
"secret": {
"type": "boolean"
}
}
},
"codersdk.AuditLog": {
"type": "object",
"properties": {
"action": {
"$ref": "#/definitions/codersdk.AuditAction"
},
"additional_fields": {
"type": "array",
"items": {
"type": "integer"
}
},
"description": {
"type": "string"
},
"diff": {
"$ref": "#/definitions/codersdk.AuditDiff"
},
"id": {
"type": "string",
"format": "uuid"
},
"ip": {
"type": "string"
},
"is_deleted": {
"type": "boolean"
},
"organization_id": {
"type": "string",
"format": "uuid"
},
"request_id": {
"type": "string",
"format": "uuid"
},
"resource_icon": {
"type": "string"
},
"resource_id": {
"type": "string",
"format": "uuid"
},
"resource_link": {
"type": "string"
},
"resource_target": {
"description": "ResourceTarget is the name of the resource.",
"type": "string"
},
"resource_type": {
"$ref": "#/definitions/codersdk.ResourceType"
},
"status_code": {
"type": "integer"
},
"time": {
"type": "string",
"format": "date-time"
},
"user": {
"$ref": "#/definitions/codersdk.User"
},
"user_agent": {
"type": "string"
}
}
},
"codersdk.AuditLogResponse": {
"type": "object",
"properties": {
"audit_logs": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.AuditLog"
}
},
"count": {
"type": "integer"
}
}
},
"codersdk.AuthMethod": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
}
}
},
"codersdk.AuthMethods": {
"type": "object",
"properties": {
"github": {
"$ref": "#/definitions/codersdk.AuthMethod"
},
"oidc": {
"$ref": "#/definitions/codersdk.OIDCAuthMethod"
},
"password": {
"$ref": "#/definitions/codersdk.AuthMethod"
}
}
},
"codersdk.AuthorizationCheck": {
"description": "AuthorizationCheck is used to check if the currently authenticated user (or the specified user) can do a given action to a given set of objects.",
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": ["create", "read", "update", "delete"]
},
"object": {
"description": "Object can represent a \"set\" of objects, such as: all workspaces in an organization, all workspaces owned by me, and all workspaces across the entire product.\nWhen defining an object, use the most specific language when possible to\nproduce the smallest set. Meaning to set as many fields on 'Object' as\nyou can. Example, if you want to check if you can update all workspaces\nowned by 'me', try to also add an 'OrganizationID' to the settings.\nOmitting the 'OrganizationID' could produce the incorrect value, as\nworkspaces have both `user` and `organization` owners.",
"allOf": [
{
"$ref": "#/definitions/codersdk.AuthorizationObject"
}
]
}
}
},
"codersdk.AuthorizationObject": {
"description": "AuthorizationObject can represent a \"set\" of objects, such as: all workspaces in an organization, all workspaces owned by me, all workspaces across the entire product.",
"type": "object",
"properties": {
"organization_id": {
"description": "OrganizationID (optional) adds the set constraint to all resources owned by a given organization.",
"type": "string"
},
"owner_id": {
"description": "OwnerID (optional) adds the set constraint to all resources owned by a given user.",
"type": "string"
},
"resource_id": {
"description": "ResourceID (optional) reduces the set to a singular resource. This assigns\na resource ID to the resource type, eg: a single workspace.\nThe rbac library will not fetch the resource from the database, so if you\nare using this option, you should also set the owner ID and organization ID\nif possible. Be as specific as possible using all the fields relevant.",
"type": "string"
},
"resource_type": {
"description": "ResourceType is the name of the resource.\n`./coderd/rbac/object.go` has the list of valid resource types.",
"allOf": [
{
"$ref": "#/definitions/codersdk.RBACResource"
}
]
}
}
},
"codersdk.AuthorizationRequest": {
"type": "object",
"properties": {
"checks": {
"description": "Checks is a map keyed with an arbitrary string to a permission check.\nThe key can be any string that is helpful to the caller, and allows\nmultiple permission checks to be run in a single request.\nThe key ensures that each permission check has the same key in the\nresponse.",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/codersdk.AuthorizationCheck"
}
}
}
},
"codersdk.AuthorizationResponse": {
"type": "object",
"additionalProperties": {
"type": "boolean"
}
},
"codersdk.BuildInfoResponse": {
"type": "object",
"properties": {
"dashboard_url": {
"description": "DashboardURL is the URL to hit the deployment's dashboard.\nFor external workspace proxies, this is the coderd they are connected\nto.",
"type": "string"
},
"external_url": {
"description": "ExternalURL references the current Coder version.\nFor production builds, this will link directly to a release. For development builds, this will link to a commit.",
"type": "string"
},
"version": {
"description": "Version returns the semantic version of the build.",
"type": "string"
},
"workspace_proxy": {
"type": "boolean"
}
}
},
"codersdk.BuildReason": {
"type": "string",
"enum": ["initiator", "autostart", "autostop"],
"x-enum-varnames": [
"BuildReasonInitiator",
"BuildReasonAutostart",
"BuildReasonAutostop"
]
},
"codersdk.CreateFirstUserRequest": {
"type": "object",
"required": ["email", "password", "username"],
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"trial": {
"type": "boolean"
},
"username": {
"type": "string"
}
}
},
"codersdk.CreateFirstUserResponse": {
"type": "object",
"properties": {
"organization_id": {
"type": "string",
"format": "uuid"
},
"user_id": {
"type": "string",
"format": "uuid"
}
}
},
"codersdk.CreateGroupRequest": {
"type": "object",
"properties": {
"avatar_url": {
"type": "string"
},
"name": {
"type": "string"
},
"quota_allowance": {
"type": "integer"
}
}
},
"codersdk.CreateOrganizationRequest": {
"type": "object",
"required": ["name"],
"properties": {
"name": {
"type": "string"
}
}
},
"codersdk.CreateParameterRequest": {
"description": "CreateParameterRequest is a structure used to create a new parameter value for a scope.",
"type": "object",
"required": [
"destination_scheme",
"name",
"source_scheme",
"source_value"
],
"properties": {
"copy_from_parameter": {
"description": "CloneID allows copying the value of another parameter.\nThe other param must be related to the same template_id for this to\nsucceed.\nNo other fields are required if using this, as all fields will be copied\nfrom the other parameter.",
"type": "string",
"format": "uuid"
},
"destination_scheme": {
"enum": ["none", "environment_variable", "provisioner_variable"],
"allOf": [
{
"$ref": "#/definitions/codersdk.ParameterDestinationScheme"
}
]
},
"name": {
"type": "string"
},
"source_scheme": {
"enum": ["none", "data"],
"allOf": [
{
"$ref": "#/definitions/codersdk.ParameterSourceScheme"
}
]
},
"source_value": {
"type": "string"
}
}
},
"codersdk.CreateTemplateRequest": {
"type": "object",
"required": ["name", "template_version_id"],
"properties": {
"allow_user_autostart": {
"description": "AllowUserAutostart allows users to set a schedule for autostarting their\nworkspace. By default this is true. This can only be disabled when using\nan enterprise license.",
"type": "boolean"
},
"allow_user_autostop": {
"description": "AllowUserAutostop allows users to set a custom workspace TTL to use in\nplace of the template's DefaultTTL field. By default this is true. If\nfalse, the DefaultTTL will always be used. This can only be disabled when\nusing an enterprise license.",
"type": "boolean"
},
"allow_user_cancel_workspace_jobs": {
"description": "Allow users to cancel in-progress workspace jobs.\n*bool as the default value is \"true\".",
"type": "boolean"
},
"default_ttl_ms": {
"description": "DefaultTTLMillis allows optionally specifying the default TTL\nfor all workspaces created from this template.",
"type": "integer"
},
"description": {
"description": "Description is a description of what the template contains. It must be\nless than 128 bytes.",
"type": "string"
},
"display_name": {
"description": "DisplayName is the displayed name of the template.",
"type": "string"
},
"failure_ttl_ms": {
"description": "FailureTTLMillis allows optionally specifying the max lifetime before Coder\nstops all resources for failed workspaces created from this template.",
"type": "integer"
},
"icon": {
"description": "Icon is a relative path or external URL that specifies\nan icon to be displayed in the dashboard.",
"type": "string"
},
"inactivity_ttl_ms": {
"description": "InactivityTTLMillis allows optionally specifying the max lifetime before Coder\ndeletes inactive workspaces created from this template.",
"type": "integer"
},
"max_ttl_ms": {
"description": "MaxTTLMillis allows optionally specifying the max lifetime for\nworkspaces created from this template.",
"type": "integer"
},
"name": {
"description": "Name is the name of the template.",
"type": "string"
},
"parameter_values": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.CreateParameterRequest"
}
},
"template_version_id": {
"description": "VersionID is an in-progress or completed job to use as an initial version\nof the template.\n\nThis is required on creation to enable a user-flow of validating a\ntemplate works. There is no reason the data-model cannot support empty\ntemplates, but it doesn't make sense for users.",
"type": "string",
"format": "uuid"
}
}
},
"codersdk.CreateTemplateVersionDryRunRequest": {
"type": "object",
"properties": {
"parameter_values": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.CreateParameterRequest"
}
},
"rich_parameter_values": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceBuildParameter"
}
},
"user_variable_values": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.VariableValue"
}
},
"workspace_name": {
"type": "string"
}
}
},
"codersdk.CreateTemplateVersionRequest": {
"type": "object",
"required": ["provisioner", "storage_method"],
"properties": {
"example_id": {
"type": "string"
},
"file_id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"parameter_values": {
"description": "ParameterValues allows for additional parameters to be provided\nduring the dry-run provision stage.",
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.CreateParameterRequest"
}
},
"provisioner": {
"type": "string",
"enum": ["terraform", "echo"]
},
"storage_method": {
"enum": ["file"],
"allOf": [
{
"$ref": "#/definitions/codersdk.ProvisionerStorageMethod"
}
]
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"template_id": {
"description": "TemplateID optionally associates a version with a template.",
"type": "string",
"format": "uuid"
},
"user_variable_values": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.VariableValue"
}
}
}
},
"codersdk.CreateTestAuditLogRequest": {
"type": "object",
"properties": {
"action": {
"enum": ["create", "write", "delete", "start", "stop"],
"allOf": [
{
"$ref": "#/definitions/codersdk.AuditAction"
}
]
},
"additional_fields": {
"type": "array",
"items": {
"type": "integer"
}
},
"build_reason": {
"enum": ["autostart", "autostop", "initiator"],
"allOf": [
{
"$ref": "#/definitions/codersdk.BuildReason"
}
]
},
"resource_id": {
"type": "string",
"format": "uuid"
},
"resource_type": {
"enum": [
"template",
"template_version",
"user",
"workspace",
"workspace_build",
"git_ssh_key",
"auditable_group"
],
"allOf": [
{
"$ref": "#/definitions/codersdk.ResourceType"
}
]
},
"time": {
"type": "string",
"format": "date-time"
}
}
},
"codersdk.CreateTokenRequest": {
"type": "object",
"properties": {
"lifetime": {
"type": "integer"
},
"scope": {
"enum": ["all", "application_connect"],
"allOf": [
{
"$ref": "#/definitions/codersdk.APIKeyScope"
}
]
},
"token_name": {
"type": "string"
}
}
},
"codersdk.CreateUserRequest": {
"type": "object",
"required": ["email", "organization_id", "password", "username"],
"properties": {
"email": {
"type": "string",
"format": "email"
},
"organization_id": {
"type": "string",
"format": "uuid"
},
"password": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"codersdk.CreateWorkspaceBuildRequest": {
"type": "object",
"required": ["transition"],
"properties": {
"dry_run": {
"type": "boolean"
},
"log_level": {
"description": "Log level changes the default logging verbosity of a provider (\"info\" if empty).",
"enum": ["debug"],
"allOf": [
{
"$ref": "#/definitions/codersdk.ProvisionerLogLevel"
}
]
},
"orphan": {
"description": "Orphan may be set for the Destroy transition.",
"type": "boolean"
},
"parameter_values": {
"description": "ParameterValues are optional. It will write params to the 'workspace' scope.\nThis will overwrite any existing parameters with the same name.\nThis will not delete old params not included in this list.",
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.CreateParameterRequest"
}
},
"rich_parameter_values": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceBuildParameter"
}
},
"state": {
"type": "array",
"items": {
"type": "integer"
}
},
"template_version_id": {
"type": "string",
"format": "uuid"
},
"transition": {
"enum": ["create", "start", "stop", "delete"],
"allOf": [
{
"$ref": "#/definitions/codersdk.WorkspaceTransition"
}
]
}
}
},
"codersdk.CreateWorkspaceProxyRequest": {
"type": "object",
"required": ["name"],
"properties": {
"display_name": {
"type": "string"
},
"icon": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"codersdk.CreateWorkspaceRequest": {
"type": "object",
"required": ["name", "template_id"],
"properties": {
"autostart_schedule": {
"type": "string"
},
"name": {
"type": "string"
},
"parameter_values": {
"description": "ParameterValues allows for additional parameters to be provided\nduring the initial provision.",
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.CreateParameterRequest"
}
},
"rich_parameter_values": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceBuildParameter"
}
},
"template_id": {
"type": "string",
"format": "uuid"
},
"ttl_ms": {
"type": "integer"
}
}
},
"codersdk.DAUEntry": {
"type": "object",
"properties": {
"amount": {
"type": "integer"
},
"date": {
"type": "string",
"format": "date-time"
}
}
},
"codersdk.DERP": {
"type": "object",
"properties": {
"config": {
"$ref": "#/definitions/codersdk.DERPConfig"
},
"server": {
"$ref": "#/definitions/codersdk.DERPServerConfig"
}
}
},
"codersdk.DERPConfig": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"codersdk.DERPRegion": {
"type": "object",
"properties": {
"latency_ms": {
"type": "number"
},
"preferred": {
"type": "boolean"
}
}
},
"codersdk.DERPServerConfig": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"region_code": {
"type": "string"
},
"region_id": {
"type": "integer"
},
"region_name": {
"type": "string"
},
"relay_url": {
"$ref": "#/definitions/clibase.URL"
},
"stun_addresses": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"codersdk.DangerousConfig": {
"type": "object",
"properties": {
"allow_path_app_sharing": {
"type": "boolean"
},
"allow_path_app_site_owner_access": {
"type": "boolean"
}
}
},
"codersdk.DeploymentConfig": {
"type": "object",
"properties": {
"config": {
"$ref": "#/definitions/codersdk.DeploymentValues"
},
"options": {
"type": "array",
"items": {
"$ref": "#/definitions/clibase.Option"
}
}
}
},
"codersdk.DeploymentDAUsResponse": {
"type": "object",
"properties": {
"entries": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.DAUEntry"
}
}
}
},
"codersdk.DeploymentStats": {
"type": "object",
"properties": {
"aggregated_from": {
"description": "AggregatedFrom is the time in which stats are aggregated from.\nThis might be back in time a specific duration or interval.",
"type": "string",
"format": "date-time"
},
"collected_at": {
"description": "CollectedAt is the time in which stats are collected at.",
"type": "string",
"format": "date-time"
},
"next_update_at": {
"description": "NextUpdateAt is the time when the next batch of stats will\nbe updated.",
"type": "string",
"format": "date-time"
},
"session_count": {
"$ref": "#/definitions/codersdk.SessionCountDeploymentStats"
},
"workspaces": {
"$ref": "#/definitions/codersdk.WorkspaceDeploymentStats"
}
}
},
"codersdk.DeploymentValues": {
"type": "object",
"properties": {
"access_url": {
"$ref": "#/definitions/clibase.URL"
},
"address": {
"description": "DEPRECATED: Use HTTPAddress or TLS.Address instead.",
"allOf": [
{
"$ref": "#/definitions/clibase.HostPort"
}
]
},
"agent_fallback_troubleshooting_url": {
"$ref": "#/definitions/clibase.URL"
},
"agent_stat_refresh_interval": {
"type": "integer"
},
"autobuild_poll_interval": {
"type": "integer"
},
"browser_only": {
"type": "boolean"
},
"cache_directory": {
"type": "string"
},
"config": {
"type": "string"
},
"config_ssh": {
"$ref": "#/definitions/codersdk.SSHConfig"
},
"dangerous": {
"$ref": "#/definitions/codersdk.DangerousConfig"
},
"derp": {
"$ref": "#/definitions/codersdk.DERP"
},
"disable_owner_workspace_exec": {
"type": "boolean"
},
"disable_password_auth": {
"type": "boolean"
},
"disable_path_apps": {
"type": "boolean"
},
"disable_session_expiry_refresh": {
"type": "boolean"
},
"experiments": {
"type": "array",
"items": {
"type": "string"
}
},
"git_auth": {
"$ref": "#/definitions/clibase.Struct-array_codersdk_GitAuthConfig"
},
"http_address": {
"description": "HTTPAddress is a string because it may be set to zero to disable.",
"type": "string"
},
"in_memory_database": {
"type": "boolean"
},
"logging": {
"$ref": "#/definitions/codersdk.LoggingConfig"
},
"max_session_expiry": {
"type": "integer"
},
"max_token_lifetime": {
"type": "integer"
},
"metrics_cache_refresh_interval": {
"type": "integer"
},
"oauth2": {
"$ref": "#/definitions/codersdk.OAuth2Config"
},
"oidc": {
"$ref": "#/definitions/codersdk.OIDCConfig"
},
"pg_connection_url": {
"type": "string"
},
"pprof": {
"$ref": "#/definitions/codersdk.PprofConfig"
},
"prometheus": {
"$ref": "#/definitions/codersdk.PrometheusConfig"
},
"provisioner": {
"$ref": "#/definitions/codersdk.ProvisionerConfig"
},
"proxy_trusted_headers": {
"type": "array",
"items": {
"type": "string"
}
},
"proxy_trusted_origins": {
"type": "array",
"items": {
"type": "string"
}
},
"rate_limit": {
"$ref": "#/definitions/codersdk.RateLimitConfig"
},
"redirect_to_access_url": {
"type": "boolean"
},
"scim_api_key": {
"type": "string"
},
"secure_auth_cookie": {
"type": "boolean"
},
"ssh_keygen_algorithm": {
"type": "string"
},
"strict_transport_security": {
"type": "integer"
},
"strict_transport_security_options": {
"type": "array",
"items": {
"type": "string"
}
},
"support": {
"$ref": "#/definitions/codersdk.SupportConfig"
},
"swagger": {
"$ref": "#/definitions/codersdk.SwaggerConfig"
},
"telemetry": {
"$ref": "#/definitions/codersdk.TelemetryConfig"
},
"tls": {
"$ref": "#/definitions/codersdk.TLSConfig"
},
"trace": {
"$ref": "#/definitions/codersdk.TraceConfig"
},
"update_check": {
"type": "boolean"
},
"verbose": {
"type": "boolean"
},
"wgtunnel_host": {
"type": "string"
},
"wildcard_access_url": {
"$ref": "#/definitions/clibase.URL"
},
"write_config": {
"type": "boolean"
}
}
},
"codersdk.Entitlement": {
"type": "string",
"enum": ["entitled", "grace_period", "not_entitled"],
"x-enum-varnames": [
"EntitlementEntitled",
"EntitlementGracePeriod",
"EntitlementNotEntitled"
]
},
"codersdk.Entitlements": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"type": "string"
}
},
"features": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/codersdk.Feature"
}
},
"has_license": {
"type": "boolean"
},
"require_telemetry": {
"type": "boolean"
},
"trial": {
"type": "boolean"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"codersdk.Experiment": {
"type": "string",
"enum": ["moons", "workspace_actions"],
"x-enum-varnames": ["ExperimentMoons", "ExperimentWorkspaceActions"]
},
"codersdk.Feature": {
"type": "object",
"properties": {
"actual": {
"type": "integer"
},
"enabled": {
"type": "boolean"
},
"entitlement": {
"$ref": "#/definitions/codersdk.Entitlement"
},
"limit": {
"type": "integer"
}
}
},
"codersdk.GenerateAPIKeyResponse": {
"type": "object",
"properties": {
"key": {
"type": "string"
}
}
},
"codersdk.GetUsersResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.User"
}
}
}
},
"codersdk.GitAuthConfig": {
"type": "object",
"properties": {
"auth_url": {
"type": "string"
},
"client_id": {
"type": "string"
},
"id": {
"type": "string"
},
"no_refresh": {
"type": "boolean"
},
"regex": {
"type": "string"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"token_url": {
"type": "string"
},
"type": {
"type": "string"
},
"validate_url": {
"type": "string"
}
}
},
"codersdk.GitProvider": {
"type": "string",
"enum": ["azure-devops", "github", "gitlab", "bitbucket"],
"x-enum-varnames": [
"GitProviderAzureDevops",
"GitProviderGitHub",
"GitProviderGitLab",
"GitProviderBitBucket"
]
},
"codersdk.GitSSHKey": {
"type": "object",
"properties": {
"created_at": {
"type": "string",
"format": "date-time"
},
"public_key": {
"type": "string"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"user_id": {
"type": "string",
"format": "uuid"
}
}
},
"codersdk.Group": {
"type": "object",
"properties": {
"avatar_url": {
"type": "string"
},
"id": {
"type": "string",
"format": "uuid"
},
"members": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.User"
}
},
"name": {
"type": "string"
},
"organization_id": {
"type": "string",
"format": "uuid"
},
"quota_allowance": {
"type": "integer"
}
}
},
"codersdk.Healthcheck": {
"type": "object",
"properties": {
"interval": {
"description": "Interval specifies the seconds between each health check.",
"type": "integer"
},
"threshold": {
"description": "Threshold specifies the number of consecutive failed health checks before returning \"unhealthy\".",
"type": "integer"
},
"url": {
"description": "URL specifies the endpoint to check for the app health.",
"type": "string"
}
}
},
"codersdk.IssueReconnectingPTYSignedTokenRequest": {
"type": "object",
"required": ["agentID", "url"],
"properties": {
"agentID": {
"type": "string",
"format": "uuid"
},
"url": {
"description": "URL is the URL of the reconnecting-pty endpoint you are connecting to.",
"type": "string"
}
}
},
"codersdk.IssueReconnectingPTYSignedTokenResponse": {
"type": "object",
"properties": {
"signed_token": {
"type": "string"
}
}
},
"codersdk.JobErrorCode": {
"type": "string",
"enum": ["MISSING_TEMPLATE_PARAMETER", "REQUIRED_TEMPLATE_VARIABLES"],
"x-enum-varnames": [
"MissingTemplateParameter",
"RequiredTemplateVariables"
]
},
"codersdk.License": {
"type": "object",
"properties": {
"claims": {
"description": "Claims are the JWT claims asserted by the license. Here we use\na generic string map to ensure that all data from the server is\nparsed verbatim, not just the fields this version of Coder\nunderstands.",
"type": "object",
"additionalProperties": true
},
"id": {
"type": "integer"
},
"uploaded_at": {
"type": "string",
"format": "date-time"
},
"uuid": {
"type": "string",
"format": "uuid"
}
}
},
"codersdk.LinkConfig": {
"type": "object",
"properties": {
"icon": {
"type": "string"
},
"name": {
"type": "string"
},
"target": {
"type": "string"
}
}
},
"codersdk.LogLevel": {
"type": "string",
"enum": ["trace", "debug", "info", "warn", "error"],
"x-enum-varnames": [
"LogLevelTrace",
"LogLevelDebug",
"LogLevelInfo",
"LogLevelWarn",
"LogLevelError"
]
},
"codersdk.LogSource": {
"type": "string",
"enum": ["provisioner_daemon", "provisioner"],
"x-enum-varnames": ["LogSourceProvisionerDaemon", "LogSourceProvisioner"]
},
"codersdk.LoggingConfig": {
"type": "object",
"properties": {
"human": {
"type": "string"
},
"json": {
"type": "string"
},
"stackdriver": {
"type": "string"
}
}
},
"codersdk.LoginType": {
"type": "string",
"enum": ["password", "github", "oidc", "token"],
"x-enum-varnames": [
"LoginTypePassword",
"LoginTypeGithub",
"LoginTypeOIDC",
"LoginTypeToken"
]
},
"codersdk.LoginWithPasswordRequest": {
"type": "object",
"required": ["email", "password"],
"properties": {
"email": {
"type": "string",
"format": "email"
},
"password": {
"type": "string"
}
}
},
"codersdk.LoginWithPasswordResponse": {
"type": "object",
"required": ["session_token"],
"properties": {
"session_token": {
"type": "string"
}
}
},
"codersdk.OAuth2Config": {
"type": "object",
"properties": {
"github": {
"$ref": "#/definitions/codersdk.OAuth2GithubConfig"
}
}
},
"codersdk.OAuth2GithubConfig": {
"type": "object",
"properties": {
"allow_everyone": {
"type": "boolean"
},
"allow_signups": {
"type": "boolean"
},
"allowed_orgs": {
"type": "array",
"items": {
"type": "string"
}
},
"allowed_teams": {
"type": "array",
"items": {
"type": "string"
}
},
"client_id": {
"type": "string"
},
"client_secret": {
"type": "string"
},
"enterprise_base_url": {
"type": "string"
}
}
},
"codersdk.OIDCAuthMethod": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"iconUrl": {
"type": "string"
},
"signInText": {
"type": "string"
}
}
},
"codersdk.OIDCConfig": {
"type": "object",
"properties": {
"allow_signups": {
"type": "boolean"
},
"auth_url_params": {
"type": "object"
},
"client_id": {
"type": "string"
},
"client_secret": {
"type": "string"
},
"email_domain": {
"type": "array",
"items": {
"type": "string"
}
},
"email_field": {
"type": "string"
},
"group_mapping": {
"type": "object"
},
"groups_field": {
"type": "string"
},
"icon_url": {
"$ref": "#/definitions/clibase.URL"
},
"ignore_email_verified": {
"type": "boolean"
},
"ignore_user_info": {
"type": "boolean"
},
"issuer_url": {
"type": "string"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"sign_in_text": {
"type": "string"
},
"username_field": {
"type": "string"
}
}
},
"codersdk.Organization": {
"type": "object",
"required": ["created_at", "id", "name", "updated_at"],
"properties": {
"created_at": {
"type": "string",
"format": "date-time"
},
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"codersdk.OrganizationMember": {
"type": "object",
"properties": {
"created_at": {
"type": "string",
"format": "date-time"
},
"organization_id": {
"type": "string",
"format": "uuid"
},
"roles": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.Role"
}
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"user_id": {
"type": "string",
"format": "uuid"
}
}
},
"codersdk.Parameter": {
"description": "Parameter represents a set value for the scope.",
"type": "object",
"properties": {
"created_at": {
"type": "string",
"format": "date-time"
},
"destination_scheme": {
"enum": ["none", "environment_variable", "provisioner_variable"],
"allOf": [
{
"$ref": "#/definitions/codersdk.ParameterDestinationScheme"
}
]
},
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"scope": {
"enum": ["template", "workspace", "import_job"],
"allOf": [
{
"$ref": "#/definitions/codersdk.ParameterScope"
}
]
},
"scope_id": {
"type": "string",
"format": "uuid"
},
"source_scheme": {
"enum": ["none", "data"],
"allOf": [
{
"$ref": "#/definitions/codersdk.ParameterSourceScheme"
}
]
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"codersdk.ParameterDestinationScheme": {
"type": "string",
"enum": ["none", "environment_variable", "provisioner_variable"],
"x-enum-varnames": [
"ParameterDestinationSchemeNone",
"ParameterDestinationSchemeEnvironmentVariable",
"ParameterDestinationSchemeProvisionerVariable"
]
},
"codersdk.ParameterSchema": {
"type": "object",
"properties": {
"allow_override_destination": {
"type": "boolean"
},
"allow_override_source": {
"type": "boolean"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"default_destination_scheme": {
"enum": ["none", "environment_variable", "provisioner_variable"],
"allOf": [
{
"$ref": "#/definitions/codersdk.ParameterDestinationScheme"
}
]
},
"default_refresh": {
"type": "string"
},
"default_source_scheme": {
"enum": ["none", "data"],
"allOf": [
{
"$ref": "#/definitions/codersdk.ParameterSourceScheme"
}
]
},
"default_source_value": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string",
"format": "uuid"
},
"job_id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"redisplay_value": {
"type": "boolean"
},
"validation_condition": {
"type": "string"
},
"validation_contains": {
"description": "This is a special array of items provided if the validation condition\nexplicitly states the value must be one of a set.",
"type": "array",
"items": {
"type": "string"
}
},
"validation_error": {
"type": "string"
},
"validation_type_system": {
"type": "string"
},
"validation_value_type": {
"type": "string"
}
}
},
"codersdk.ParameterScope": {
"type": "string",
"enum": ["template", "workspace", "import_job"],
"x-enum-varnames": [
"ParameterTemplate",
"ParameterWorkspace",
"ParameterImportJob"
]
},
"codersdk.ParameterSourceScheme": {
"type": "string",
"enum": ["none", "data"],
"x-enum-varnames": [
"ParameterSourceSchemeNone",
"ParameterSourceSchemeData"
]
},
"codersdk.PatchTemplateVersionRequest": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
},
"codersdk.PatchWorkspaceProxy": {
"type": "object",
"required": ["display_name", "icon", "id", "name"],
"properties": {
"display_name": {
"type": "string"
},
"icon": {
"type": "string"
},
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"regenerate_token": {
"type": "boolean"
}
}
},
"codersdk.PprofConfig": {
"type": "object",
"properties": {
"address": {
"$ref": "#/definitions/clibase.HostPort"
},
"enable": {
"type": "boolean"
}
}
},
"codersdk.PrometheusConfig": {
"type": "object",
"properties": {
"address": {
"$ref": "#/definitions/clibase.HostPort"
},
"collect_agent_stats": {
"type": "boolean"
},
"enable": {
"type": "boolean"
}
}
},
"codersdk.ProvisionerConfig": {
"type": "object",
"properties": {
"daemon_poll_interval": {
"type": "integer"
},
"daemon_poll_jitter": {
"type": "integer"
},
"daemons": {
"type": "integer"
},
"force_cancel_interval": {
"type": "integer"
}
}
},
"codersdk.ProvisionerDaemon": {
"type": "object",
"properties": {
"created_at": {
"type": "string",
"format": "date-time"
},
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"provisioners": {
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"updated_at": {
"format": "date-time",
"allOf": [
{
"$ref": "#/definitions/sql.NullTime"
}
]
}
}
},
"codersdk.ProvisionerJob": {
"type": "object",
"properties": {
"canceled_at": {
"type": "string",
"format": "date-time"
},
"completed_at": {
"type": "string",
"format": "date-time"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"error": {
"type": "string"
},
"error_code": {
"enum": ["MISSING_TEMPLATE_PARAMETER", "REQUIRED_TEMPLATE_VARIABLES"],
"allOf": [
{
"$ref": "#/definitions/codersdk.JobErrorCode"
}
]
},
"file_id": {
"type": "string",
"format": "uuid"
},
"id": {
"type": "string",
"format": "uuid"
},
"started_at": {
"type": "string",
"format": "date-time"
},
"status": {
"enum": [
"pending",
"running",
"succeeded",
"canceling",
"canceled",
"failed"
],
"allOf": [
{
"$ref": "#/definitions/codersdk.ProvisionerJobStatus"
}
]
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"worker_id": {
"type": "string",
"format": "uuid"
}
}
},
"codersdk.ProvisionerJobLog": {
"type": "object",
"properties": {
"created_at": {
"type": "string",
"format": "date-time"
},
"id": {
"type": "integer"
},
"log_level": {
"enum": ["trace", "debug", "info", "warn", "error"],
"allOf": [
{
"$ref": "#/definitions/codersdk.LogLevel"
}
]
},
"log_source": {
"$ref": "#/definitions/codersdk.LogSource"
},
"output": {
"type": "string"
},
"stage": {
"type": "string"
}
}
},
"codersdk.ProvisionerJobStatus": {
"type": "string",
"enum": [
"pending",
"running",
"succeeded",
"canceling",
"canceled",
"failed"
],
"x-enum-varnames": [
"ProvisionerJobPending",
"ProvisionerJobRunning",
"ProvisionerJobSucceeded",
"ProvisionerJobCanceling",
"ProvisionerJobCanceled",
"ProvisionerJobFailed"
]
},
"codersdk.ProvisionerLogLevel": {
"type": "string",
"enum": ["debug"],
"x-enum-varnames": ["ProvisionerLogLevelDebug"]
},
"codersdk.ProvisionerStorageMethod": {
"type": "string",
"enum": ["file"],
"x-enum-varnames": ["ProvisionerStorageMethodFile"]
},
"codersdk.ProxyHealthReport": {
"type": "object",
"properties": {
"errors": {
"description": "Errors are problems that prevent the workspace proxy from being healthy",
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"description": "Warnings do not prevent the workspace proxy from being healthy, but\nshould be addressed.",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"codersdk.ProxyHealthStatus": {
"type": "string",
"enum": ["ok", "unreachable", "unhealthy", "unregistered"],
"x-enum-varnames": [
"ProxyHealthy",
"ProxyUnreachable",
"ProxyUnhealthy",
"ProxyUnregistered"
]
},
"codersdk.PutExtendWorkspaceRequest": {
"type": "object",
"required": ["deadline"],
"properties": {
"deadline": {
"type": "string",
"format": "date-time"
}
}
},
"codersdk.RBACResource": {
"type": "string",
"enum": [
"workspace",
"workspace_proxy",
"workspace_execution",
"application_connect",
"audit_log",
"template",
"group",
"file",
"provisioner_daemon",
"organization",
"assign_role",
"assign_org_role",
"api_key",
"user",
"user_data",
"organization_member",
"license",
"deployment_config",
"deployment_stats",
"replicas",
"debug_info",
"system"
],
"x-enum-varnames": [
"ResourceWorkspace",
"ResourceWorkspaceProxy",
"ResourceWorkspaceExecution",
"ResourceWorkspaceApplicationConnect",
"ResourceAuditLog",
"ResourceTemplate",
"ResourceGroup",
"ResourceFile",
"ResourceProvisionerDaemon",
"ResourceOrganization",
"ResourceRoleAssignment",
"ResourceOrgRoleAssignment",
"ResourceAPIKey",
"ResourceUser",
"ResourceUserData",
"ResourceOrganizationMember",
"ResourceLicense",
"ResourceDeploymentValues",
"ResourceDeploymentStats",
"ResourceReplicas",
"ResourceDebugInfo",
"ResourceSystem"
]
},
"codersdk.RateLimitConfig": {
"type": "object",
"properties": {
"api": {
"type": "integer"
},
"disable_all": {
"type": "boolean"
}
}
},
"codersdk.Region": {
"type": "object",
"properties": {
"display_name": {
"type": "string"
},
"healthy": {
"type": "boolean"
},
"icon_url": {
"type": "string"
},
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"path_app_url": {
"description": "PathAppURL is the URL to the base path for path apps. Optional\nunless wildcard_hostname is set.\nE.g. https://us.example.com",
"type": "string"
},
"wildcard_hostname": {
"description": "WildcardHostname is the wildcard hostname for subdomain apps.\nE.g. *.us.example.com\nE.g. *--suffix.au.example.com\nOptional. Does not need to be on the same domain as PathAppURL.",
"type": "string"
}
}
},
"codersdk.RegionsResponse": {
"type": "object",
"properties": {
"regions": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.Region"
}
}
}
},
"codersdk.Replica": {
"type": "object",
"properties": {
"created_at": {
"description": "CreatedAt is the timestamp when the replica was first seen.",
"type": "string",
"format": "date-time"
},
"database_latency": {
"description": "DatabaseLatency is the latency in microseconds to the database.",
"type": "integer"
},
"error": {
"description": "Error is the replica error.",
"type": "string"
},
"hostname": {
"description": "Hostname is the hostname of the replica.",
"type": "string"
},
"id": {
"description": "ID is the unique identifier for the replica.",
"type": "string",
"format": "uuid"
},
"region_id": {
"description": "RegionID is the region of the replica.",
"type": "integer"
},
"relay_address": {
"description": "RelayAddress is the accessible address to relay DERP connections.",
"type": "string"
}
}
},
"codersdk.ResourceType": {
"type": "string",
"enum": [
"template",
"template_version",
"user",
"workspace",
"workspace_build",
"git_ssh_key",
"api_key",
"group",
"license"
],
"x-enum-varnames": [
"ResourceTypeTemplate",
"ResourceTypeTemplateVersion",
"ResourceTypeUser",
"ResourceTypeWorkspace",
"ResourceTypeWorkspaceBuild",
"ResourceTypeGitSSHKey",
"ResourceTypeAPIKey",
"ResourceTypeGroup",
"ResourceTypeLicense"
]
},
"codersdk.Response": {
"type": "object",
"properties": {
"detail": {
"description": "Detail is a debug message that provides further insight into why the\naction failed. This information can be technical and a regular golang\nerr.Error() text.\n- \"database: too many open connections\"\n- \"stat: too many open files\"",
"type": "string"
},
"message": {
"description": "Message is an actionable message that depicts actions the request took.\nThese messages should be fully formed sentences with proper punctuation.\nExamples:\n- \"A user has been created.\"\n- \"Failed to create a user.\"",
"type": "string"
},
"validations": {
"description": "Validations are form field-specific friendly error messages. They will be\nshown on a form field in the UI. These can also be used to add additional\ncontext if there is a set of errors in the primary 'Message'.",
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.ValidationError"
}
}
}
},
"codersdk.Role": {
"type": "object",
"properties": {
"display_name": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"codersdk.SSHConfig": {
"type": "object",
"properties": {
"deploymentName": {
"description": "DeploymentName is the config-ssh Hostname prefix",
"type": "string"
},
"sshconfigOptions": {
"description": "SSHConfigOptions are additional options to add to the ssh config file.\nThis will override defaults.",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"codersdk.SSHConfigResponse": {
"type": "object",
"properties": {
"hostname_prefix": {
"type": "string"
},
"ssh_config_options": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
},
"codersdk.ServiceBannerConfig": {
"type": "object",
"properties": {
"background_color": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"message": {
"type": "string"
}
}
},
"codersdk.SessionCountDeploymentStats": {
"type": "object",
"properties": {
"jetbrains": {
"type": "integer"
},
"reconnecting_pty": {
"type": "integer"
},
"ssh": {
"type": "integer"
},
"vscode": {
"type": "integer"
}
}
},
"codersdk.SupportConfig": {
"type": "object",
"properties": {
"links": {
"$ref": "#/definitions/clibase.Struct-array_codersdk_LinkConfig"
}
}
},
"codersdk.SwaggerConfig": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
}
}
},
"codersdk.TLSConfig": {
"type": "object",
"properties": {
"address": {
"$ref": "#/definitions/clibase.HostPort"
},
"cert_file": {
"type": "array",
"items": {
"type": "string"
}
},
"client_auth": {
"type": "string"
},
"client_ca_file": {
"type": "string"
},
"client_cert_file": {
"type": "string"
},
"client_key_file": {
"type": "string"
},
"enable": {
"type": "boolean"
},
"key_file": {
"type": "array",
"items": {
"type": "string"
}
},
"min_version": {
"type": "string"
},
"redirect_http": {
"type": "boolean"
}
}
},
"codersdk.TelemetryConfig": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"trace": {
"type": "boolean"
},
"url": {
"$ref": "#/definitions/clibase.URL"
}
}
},
"codersdk.Template": {
"type": "object",
"properties": {
"active_user_count": {
"description": "ActiveUserCount is set to -1 when loading.",
"type": "integer"
},
"active_version_id": {
"type": "string",
"format": "uuid"
},
"allow_user_autostart": {
"description": "AllowUserAutostart and AllowUserAutostop are enterprise-only. Their\nvalues are only used if your license is entitled to use the advanced\ntemplate scheduling feature.",
"type": "boolean"
},
"allow_user_autostop": {
"type": "boolean"
},
"allow_user_cancel_workspace_jobs": {
"type": "boolean"
},
"build_time_stats": {
"$ref": "#/definitions/codersdk.TemplateBuildTimeStats"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"created_by_id": {
"type": "string",
"format": "uuid"
},
"created_by_name": {
"type": "string"
},
"default_ttl_ms": {
"type": "integer"
},
"description": {
"type": "string"
},
"display_name": {
"type": "string"
},
"failure_ttl_ms": {
"description": "FailureTTLMillis and InactivityTTLMillis are enterprise-only. Their\nvalues are used if your license is entitled to use the advanced\ntemplate scheduling feature.",
"type": "integer"
},
"icon": {
"type": "string"
},
"id": {
"type": "string",
"format": "uuid"
},
"inactivity_ttl_ms": {
"type": "integer"
},
"max_ttl_ms": {
"description": "MaxTTLMillis is an enterprise feature. It's value is only used if your\nlicense is entitled to use the advanced template scheduling feature.",
"type": "integer"
},
"name": {
"type": "string"
},
"organization_id": {
"type": "string",
"format": "uuid"
},
"provisioner": {
"type": "string",
"enum": ["terraform"]
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"codersdk.TemplateBuildTimeStats": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/codersdk.TransitionStats"
}
},
"codersdk.TemplateDAUsResponse": {
"type": "object",
"properties": {
"entries": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.DAUEntry"
}
}
}
},
"codersdk.TemplateExample": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"icon": {
"type": "string"
},
"id": {
"type": "string",
"format": "uuid"
},
"markdown": {
"type": "string"
},
"name": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"url": {
"type": "string"
}
}
},
"codersdk.TemplateRole": {
"type": "string",
"enum": ["admin", "use", ""],
"x-enum-varnames": [
"TemplateRoleAdmin",
"TemplateRoleUse",
"TemplateRoleDeleted"
]
},
"codersdk.TemplateUser": {
"type": "object",
"required": ["created_at", "email", "id", "username"],
"properties": {
"avatar_url": {
"type": "string",
"format": "uri"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"email": {
"type": "string",
"format": "email"
},
"id": {
"type": "string",
"format": "uuid"
},
"last_seen_at": {
"type": "string",
"format": "date-time"
},
"organization_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"role": {
"enum": ["admin", "use"],
"allOf": [
{
"$ref": "#/definitions/codersdk.TemplateRole"
}
]
},
"roles": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.Role"
}
},
"status": {
"enum": ["active", "suspended"],
"allOf": [
{
"$ref": "#/definitions/codersdk.UserStatus"
}
]
},
"username": {
"type": "string"
}
}
},
"codersdk.TemplateVersion": {
"type": "object",
"properties": {
"created_at": {
"type": "string",
"format": "date-time"
},
"created_by": {
"$ref": "#/definitions/codersdk.User"
},
"id": {
"type": "string",
"format": "uuid"
},
"job": {
"$ref": "#/definitions/codersdk.ProvisionerJob"
},
"name": {
"type": "string"
},
"organization_id": {
"type": "string",
"format": "uuid"
},
"readme": {
"type": "string"
},
"template_id": {
"type": "string",
"format": "uuid"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"codersdk.TemplateVersionGitAuth": {
"type": "object",
"properties": {
"authenticate_url": {
"type": "string"
},
"authenticated": {
"type": "boolean"
},
"id": {
"type": "string"
},
"type": {
"$ref": "#/definitions/codersdk.GitProvider"
}
}
},
"codersdk.TemplateVersionParameter": {
"type": "object",
"properties": {
"default_value": {
"type": "string"
},
"description": {
"type": "string"
},
"description_plaintext": {
"type": "string"
},
"display_name": {
"type": "string"
},
"icon": {
"type": "string"
},
"legacy_variable_name": {
"type": "string"
},
"mutable": {
"type": "boolean"
},
"name": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.TemplateVersionParameterOption"
}
},
"required": {
"type": "boolean"
},
"type": {
"type": "string",
"enum": ["string", "number", "bool", "list(string)"]
},
"validation_error": {
"type": "string"
},
"validation_max": {
"type": "integer"
},
"validation_min": {
"type": "integer"
},
"validation_monotonic": {
"enum": ["increasing", "decreasing"],
"allOf": [
{
"$ref": "#/definitions/codersdk.ValidationMonotonicOrder"
}
]
},
"validation_regex": {
"type": "string"
}
}
},
"codersdk.TemplateVersionParameterOption": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"icon": {
"type": "string"
},
"name": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"codersdk.TemplateVersionVariable": {
"type": "object",
"properties": {
"default_value": {
"type": "string"
},
"description": {
"type": "string"
},
"name": {
"type": "string"
},
"required": {
"type": "boolean"
},
"sensitive": {
"type": "boolean"
},
"type": {
"type": "string",
"enum": ["string", "number", "bool"]
},
"value": {
"type": "string"
}
}
},
"codersdk.TokenConfig": {
"type": "object",
"properties": {
"max_token_lifetime": {
"type": "integer"
}
}
},
"codersdk.TraceConfig": {
"type": "object",
"properties": {
"capture_logs": {
"type": "boolean"
},
"enable": {
"type": "boolean"
},
"honeycomb_api_key": {
"type": "string"
}
}
},
"codersdk.TransitionStats": {
"type": "object",
"properties": {
"p50": {
"type": "integer",
"example": 123
},
"p95": {
"type": "integer",
"example": 146
}
}
},
"codersdk.UpdateActiveTemplateVersion": {
"type": "object",
"required": ["id"],
"properties": {
"id": {
"type": "string",
"format": "uuid"
}
}
},
"codersdk.UpdateAppearanceConfig": {
"type": "object",
"properties": {
"logo_url": {
"type": "string"
},
"service_banner": {
"$ref": "#/definitions/codersdk.ServiceBannerConfig"
}
}
},
"codersdk.UpdateCheckResponse": {
"type": "object",
"properties": {
"current": {
"description": "Current indicates whether the server version is the same as the latest.",
"type": "boolean"
},
"url": {
"description": "URL to download the latest release of Coder.",
"type": "string"
},
"version": {
"description": "Version is the semantic version for the latest release of Coder.",
"type": "string"
}
}
},
"codersdk.UpdateRoles": {
"type": "object",
"properties": {
"roles": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"codersdk.UpdateTemplateACL": {
"type": "object",
"properties": {
"group_perms": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/codersdk.TemplateRole"
}
},
"user_perms": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/codersdk.TemplateRole"
}
}
}
},
"codersdk.UpdateUserPasswordRequest": {
"type": "object",
"required": ["password"],
"properties": {
"old_password": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"codersdk.UpdateUserProfileRequest": {
"type": "object",
"required": ["username"],
"properties": {
"username": {
"type": "string"
}
}
},
"codersdk.UpdateWorkspaceAutostartRequest": {
"type": "object",
"properties": {
"schedule": {
"type": "string"
}
}
},
"codersdk.UpdateWorkspaceRequest": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
},
"codersdk.UpdateWorkspaceTTLRequest": {
"type": "object",
"properties": {
"ttl_ms": {
"type": "integer"
}
}
},
"codersdk.UploadResponse": {
"type": "object",
"properties": {
"hash": {
"type": "string",
"format": "uuid"
}
}
},
"codersdk.User": {
"type": "object",
"required": ["created_at", "email", "id", "username"],
"properties": {
"avatar_url": {
"type": "string",
"format": "uri"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"email": {
"type": "string",
"format": "email"
},
"id": {
"type": "string",
"format": "uuid"
},
"last_seen_at": {
"type": "string",
"format": "date-time"
},
"organization_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"roles": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.Role"
}
},
"status": {
"enum": ["active", "suspended"],
"allOf": [
{
"$ref": "#/definitions/codersdk.UserStatus"
}
]
},
"username": {
"type": "string"
}
}
},
"codersdk.UserStatus": {
"type": "string",
"enum": ["active", "suspended"],
"x-enum-varnames": ["UserStatusActive", "UserStatusSuspended"]
},
"codersdk.ValidationError": {
"type": "object",
"required": ["detail", "field"],
"properties": {
"detail": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
"codersdk.ValidationMonotonicOrder": {
"type": "string",
"enum": ["increasing", "decreasing"],
"x-enum-varnames": [
"MonotonicOrderIncreasing",
"MonotonicOrderDecreasing"
]
},
"codersdk.VariableValue": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"codersdk.Workspace": {
"type": "object",
"properties": {
"autostart_schedule": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"deleting_at": {
"description": "DeletingAt indicates the time of the upcoming workspace deletion, if applicable; otherwise it is nil.\nWorkspaces may have impending deletions if Template.InactivityTTL feature is turned on and the workspace is inactive.",
"type": "string",
"format": "date-time"
},
"id": {
"type": "string",
"format": "uuid"
},
"last_used_at": {
"type": "string",
"format": "date-time"
},
"latest_build": {
"$ref": "#/definitions/codersdk.WorkspaceBuild"
},
"name": {
"type": "string"
},
"organization_id": {
"type": "string",
"format": "uuid"
},
"outdated": {
"type": "boolean"
},
"owner_id": {
"type": "string",
"format": "uuid"
},
"owner_name": {
"type": "string"
},
"template_allow_user_cancel_workspace_jobs": {
"type": "boolean"
},
"template_display_name": {
"type": "string"
},
"template_icon": {
"type": "string"
},
"template_id": {
"type": "string",
"format": "uuid"
},
"template_name": {
"type": "string"
},
"ttl_ms": {
"type": "integer"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"codersdk.WorkspaceAgent": {
"type": "object",
"properties": {
"apps": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceApp"
}
},
"architecture": {
"type": "string"
},
"connection_timeout_seconds": {
"type": "integer"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"directory": {
"type": "string"
},
"disconnected_at": {
"type": "string",
"format": "date-time"
},
"environment_variables": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"expanded_directory": {
"type": "string"
},
"first_connected_at": {
"type": "string",
"format": "date-time"
},
"id": {
"type": "string",
"format": "uuid"
},
"instance_id": {
"type": "string"
},
"last_connected_at": {
"type": "string",
"format": "date-time"
},
"latency": {
"description": "DERPLatency is mapped by region name (e.g. \"New York City\", \"Seattle\").",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/codersdk.DERPRegion"
}
},
"lifecycle_state": {
"$ref": "#/definitions/codersdk.WorkspaceAgentLifecycle"
},
"login_before_ready": {
"description": "LoginBeforeReady if true, the agent will delay logins until it is ready (e.g. executing startup script has ended).",
"type": "boolean"
},
"name": {
"type": "string"
},
"operating_system": {
"type": "string"
},
"resource_id": {
"type": "string",
"format": "uuid"
},
"shutdown_script": {
"type": "string"
},
"shutdown_script_timeout_seconds": {
"type": "integer"
},
"startup_logs_length": {
"type": "integer"
},
"startup_logs_overflowed": {
"type": "boolean"
},
"startup_script": {
"type": "string"
},
"startup_script_timeout_seconds": {
"description": "StartupScriptTimeoutSeconds is the number of seconds to wait for the startup script to complete. If the script does not complete within this time, the agent lifecycle will be marked as start_timeout.",
"type": "integer"
},
"status": {
"$ref": "#/definitions/codersdk.WorkspaceAgentStatus"
},
"troubleshooting_url": {
"type": "string"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"version": {
"type": "string"
}
}
},
"codersdk.WorkspaceAgentConnectionInfo": {
"type": "object",
"properties": {
"derp_map": {
"$ref": "#/definitions/tailcfg.DERPMap"
}
}
},
"codersdk.WorkspaceAgentLifecycle": {
"type": "string",
"enum": [
"created",
"starting",
"start_timeout",
"start_error",
"ready",
"shutting_down",
"shutdown_timeout",
"shutdown_error",
"off"
],
"x-enum-varnames": [
"WorkspaceAgentLifecycleCreated",
"WorkspaceAgentLifecycleStarting",
"WorkspaceAgentLifecycleStartTimeout",
"WorkspaceAgentLifecycleStartError",
"WorkspaceAgentLifecycleReady",
"WorkspaceAgentLifecycleShuttingDown",
"WorkspaceAgentLifecycleShutdownTimeout",
"WorkspaceAgentLifecycleShutdownError",
"WorkspaceAgentLifecycleOff"
]
},
"codersdk.WorkspaceAgentListeningPort": {
"type": "object",
"properties": {
"network": {
"description": "only \"tcp\" at the moment",
"type": "string"
},
"port": {
"type": "integer"
},
"process_name": {
"description": "may be empty",
"type": "string"
}
}
},
"codersdk.WorkspaceAgentListeningPortsResponse": {
"type": "object",
"properties": {
"ports": {
"description": "If there are no ports in the list, nothing should be displayed in the UI.\nThere must not be a \"no ports available\" message or anything similar, as\nthere will always be no ports displayed on platforms where our port\ndetection logic is unsupported.",
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceAgentListeningPort"
}
}
}
},
"codersdk.WorkspaceAgentMetadataDescription": {
"type": "object",
"properties": {
"display_name": {
"type": "string"
},
"interval": {
"type": "integer"
},
"key": {
"type": "string"
},
"script": {
"type": "string"
},
"timeout": {
"type": "integer"
}
}
},
"codersdk.WorkspaceAgentStartupLog": {
"type": "object",
"properties": {
"created_at": {
"type": "string",
"format": "date-time"
},
"id": {
"type": "integer"
},
"level": {
"$ref": "#/definitions/codersdk.LogLevel"
},
"output": {
"type": "string"
}
}
},
"codersdk.WorkspaceAgentStatus": {
"type": "string",
"enum": ["connecting", "connected", "disconnected", "timeout"],
"x-enum-varnames": [
"WorkspaceAgentConnecting",
"WorkspaceAgentConnected",
"WorkspaceAgentDisconnected",
"WorkspaceAgentTimeout"
]
},
"codersdk.WorkspaceApp": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"display_name": {
"description": "DisplayName is a friendly name for the app.",
"type": "string"
},
"external": {
"description": "External specifies whether the URL should be opened externally on\nthe client or not.",
"type": "boolean"
},
"health": {
"$ref": "#/definitions/codersdk.WorkspaceAppHealth"
},
"healthcheck": {
"description": "Healthcheck specifies the configuration for checking app health.",
"allOf": [
{
"$ref": "#/definitions/codersdk.Healthcheck"
}
]
},
"icon": {
"description": "Icon is a relative path or external URL that specifies\nan icon to be displayed in the dashboard.",
"type": "string"
},
"id": {
"type": "string",
"format": "uuid"
},
"sharing_level": {
"enum": ["owner", "authenticated", "public"],
"allOf": [
{
"$ref": "#/definitions/codersdk.WorkspaceAppSharingLevel"
}
]
},
"slug": {
"description": "Slug is a unique identifier within the agent.",
"type": "string"
},
"subdomain": {
"description": "Subdomain denotes whether the app should be accessed via a path on the\n`coder server` or via a hostname-based dev URL. If this is set to true\nand there is no app wildcard configured on the server, the app will not\nbe accessible in the UI.",
"type": "boolean"
},
"url": {
"description": "URL is the address being proxied to inside the workspace.\nIf external is specified, this will be opened on the client.",
"type": "string"
}
}
},
"codersdk.WorkspaceAppHealth": {
"type": "string",
"enum": ["disabled", "initializing", "healthy", "unhealthy"],
"x-enum-varnames": [
"WorkspaceAppHealthDisabled",
"WorkspaceAppHealthInitializing",
"WorkspaceAppHealthHealthy",
"WorkspaceAppHealthUnhealthy"
]
},
"codersdk.WorkspaceAppSharingLevel": {
"type": "string",
"enum": ["owner", "authenticated", "public"],
"x-enum-varnames": [
"WorkspaceAppSharingLevelOwner",
"WorkspaceAppSharingLevelAuthenticated",
"WorkspaceAppSharingLevelPublic"
]
},
"codersdk.WorkspaceBuild": {
"type": "object",
"properties": {
"build_number": {
"type": "integer"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"daily_cost": {
"type": "integer"
},
"deadline": {
"type": "string",
"format": "date-time"
},
"id": {
"type": "string",
"format": "uuid"
},
"initiator_id": {
"type": "string",
"format": "uuid"
},
"initiator_name": {
"type": "string"
},
"job": {
"$ref": "#/definitions/codersdk.ProvisionerJob"
},
"max_deadline": {
"type": "string",
"format": "date-time"
},
"reason": {
"enum": ["initiator", "autostart", "autostop"],
"allOf": [
{
"$ref": "#/definitions/codersdk.BuildReason"
}
]
},
"resources": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceResource"
}
},
"status": {
"enum": [
"pending",
"starting",
"running",
"stopping",
"stopped",
"failed",
"canceling",
"canceled",
"deleting",
"deleted"
],
"allOf": [
{
"$ref": "#/definitions/codersdk.WorkspaceStatus"
}
]
},
"template_version_id": {
"type": "string",
"format": "uuid"
},
"template_version_name": {
"type": "string"
},
"transition": {
"enum": ["start", "stop", "delete"],
"allOf": [
{
"$ref": "#/definitions/codersdk.WorkspaceTransition"
}
]
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"workspace_id": {
"type": "string",
"format": "uuid"
},
"workspace_name": {
"type": "string"
},
"workspace_owner_id": {
"type": "string",
"format": "uuid"
},
"workspace_owner_name": {
"type": "string"
}
}
},
"codersdk.WorkspaceBuildParameter": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"codersdk.WorkspaceConnectionLatencyMS": {
"type": "object",
"properties": {
"p50": {
"type": "number"
},
"p95": {
"type": "number"
}
}
},
"codersdk.WorkspaceDeploymentStats": {
"type": "object",
"properties": {
"building": {
"type": "integer"
},
"connection_latency_ms": {
"$ref": "#/definitions/codersdk.WorkspaceConnectionLatencyMS"
},
"failed": {
"type": "integer"
},
"pending": {
"type": "integer"
},
"running": {
"type": "integer"
},
"rx_bytes": {
"type": "integer"
},
"stopped": {
"type": "integer"
},
"tx_bytes": {
"type": "integer"
}
}
},
"codersdk.WorkspaceProxy": {
"type": "object",
"properties": {
"created_at": {
"type": "string",
"format": "date-time"
},
"deleted": {
"type": "boolean"
},
"display_name": {
"type": "string"
},
"icon": {
"type": "string"
},
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"status": {
"description": "Status is the latest status check of the proxy. This will be empty for deleted\nproxies. This value can be used to determine if a workspace proxy is healthy\nand ready to use.",
"allOf": [
{
"$ref": "#/definitions/codersdk.WorkspaceProxyStatus"
}
]
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"url": {
"description": "Full url including scheme of the proxy api url: https://us.example.com",
"type": "string"
},
"wildcard_hostname": {
"description": "WildcardHostname with the wildcard for subdomain based app hosting: *.us.example.com",
"type": "string"
}
}
},
"codersdk.WorkspaceProxyStatus": {
"type": "object",
"properties": {
"checked_at": {
"type": "string",
"format": "date-time"
},
"report": {
"description": "Report provides more information about the health of the workspace proxy.",
"allOf": [
{
"$ref": "#/definitions/codersdk.ProxyHealthReport"
}
]
},
"status": {
"$ref": "#/definitions/codersdk.ProxyHealthStatus"
}
}
},
"codersdk.WorkspaceQuota": {
"type": "object",
"properties": {
"budget": {
"type": "integer"
},
"credits_consumed": {
"type": "integer"
}
}
},
"codersdk.WorkspaceResource": {
"type": "object",
"properties": {
"agents": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceAgent"
}
},
"created_at": {
"type": "string",
"format": "date-time"
},
"daily_cost": {
"type": "integer"
},
"hide": {
"type": "boolean"
},
"icon": {
"type": "string"
},
"id": {
"type": "string",
"format": "uuid"
},
"job_id": {
"type": "string",
"format": "uuid"
},
"metadata": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.WorkspaceResourceMetadata"
}
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"workspace_transition": {
"enum": ["start", "stop", "delete"],
"allOf": [
{
"$ref": "#/definitions/codersdk.WorkspaceTransition"
}
]
}
}
},
"codersdk.WorkspaceResourceMetadata": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"sensitive": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
},
"codersdk.WorkspaceStatus": {
"type": "string",
"enum": [
"pending",
"starting",
"running",
"stopping",
"stopped",
"failed",
"canceling",
"canceled",
"deleting",
"deleted"
],
"x-enum-varnames": [
"WorkspaceStatusPending",
"WorkspaceStatusStarting",
"WorkspaceStatusRunning",
"WorkspaceStatusStopping",
"WorkspaceStatusStopped",
"WorkspaceStatusFailed",
"WorkspaceStatusCanceling",
"WorkspaceStatusCanceled",
"WorkspaceStatusDeleting",
"WorkspaceStatusDeleted"
]
},
"codersdk.WorkspaceTransition": {
"type": "string",
"enum": ["start", "stop", "delete"],
"x-enum-varnames": [
"WorkspaceTransitionStart",
"WorkspaceTransitionStop",
"WorkspaceTransitionDelete"
]
},
"codersdk.WorkspacesResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"workspaces": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.Workspace"
}
}
}
},
"database.ParameterDestinationScheme": {
"type": "string",
"enum": ["none", "environment_variable", "provisioner_variable"],
"x-enum-varnames": [
"ParameterDestinationSchemeNone",
"ParameterDestinationSchemeEnvironmentVariable",
"ParameterDestinationSchemeProvisionerVariable"
]
},
"database.ParameterScope": {
"type": "string",
"enum": ["template", "import_job", "workspace"],
"x-enum-varnames": [
"ParameterScopeTemplate",
"ParameterScopeImportJob",
"ParameterScopeWorkspace"
]
},
"database.ParameterSourceScheme": {
"type": "string",
"enum": ["none", "data"],
"x-enum-varnames": [
"ParameterSourceSchemeNone",
"ParameterSourceSchemeData"
]
},
"derp.ServerInfoMessage": {
"type": "object",
"properties": {
"tokenBucketBytesBurst": {
"description": "TokenBucketBytesBurst is how many bytes the server will\nallow to burst, temporarily violating\nTokenBucketBytesPerSecond.\n\nZero means unspecified. There might be a limit, but the\nclient need not try to respect it.",
"type": "integer"
},
"tokenBucketBytesPerSecond": {
"description": "TokenBucketBytesPerSecond is how many bytes per second the\nserver says it will accept, including all framing bytes.\n\nZero means unspecified. There might be a limit, but the\nclient need not try to respect it.",
"type": "integer"
}
}
},
"healthcheck.AccessURLReport": {
"type": "object",
"properties": {
"error": {},
"healthy": {
"type": "boolean"
},
"healthzResponse": {
"type": "string"
},
"reachable": {
"type": "boolean"
},
"statusCode": {
"type": "integer"
}
}
},
"healthcheck.DERPNodeReport": {
"type": "object",
"properties": {
"can_exchange_messages": {
"type": "boolean"
},
"client_errs": {
"type": "array",
"items": {
"type": "array",
"items": {}
}
},
"client_logs": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"error": {},
"healthy": {
"type": "boolean"
},
"node": {
"$ref": "#/definitions/tailcfg.DERPNode"
},
"node_info": {
"$ref": "#/definitions/derp.ServerInfoMessage"
},
"round_trip_ping": {
"type": "integer"
},
"stun": {
"$ref": "#/definitions/healthcheck.DERPStunReport"
},
"uses_websocket": {
"type": "boolean"
}
}
},
"healthcheck.DERPRegionReport": {
"type": "object",
"properties": {
"error": {},
"healthy": {
"type": "boolean"
},
"node_reports": {
"type": "array",
"items": {
"$ref": "#/definitions/healthcheck.DERPNodeReport"
}
},
"region": {
"$ref": "#/definitions/tailcfg.DERPRegion"
}
}
},
"healthcheck.DERPReport": {
"type": "object",
"properties": {
"error": {},
"healthy": {
"type": "boolean"
},
"netcheck": {
"$ref": "#/definitions/netcheck.Report"
},
"netcheck_err": {},
"netcheck_logs": {
"type": "array",
"items": {
"type": "string"
}
},
"regions": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/healthcheck.DERPRegionReport"
}
}
}
},
"healthcheck.DERPStunReport": {
"type": "object",
"properties": {
"canSTUN": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
},
"error": {}
}
},
"healthcheck.Report": {
"type": "object",
"properties": {
"access_url": {
"$ref": "#/definitions/healthcheck.AccessURLReport"
},
"derp": {
"$ref": "#/definitions/healthcheck.DERPReport"
},
"pass": {
"description": "Healthy is true if the report returns no errors.",
"type": "boolean"
},
"time": {
"description": "Time is the time the report was generated at.",
"type": "string"
}
}
},
"netcheck.Report": {
"type": "object",
"properties": {
"captivePortal": {
"description": "CaptivePortal is set when we think there's a captive portal that is\nintercepting HTTP traffic.",
"type": "string"
},
"globalV4": {
"description": "ip:port of global IPv4",
"type": "string"
},
"globalV6": {
"description": "[ip]:port of global IPv6",
"type": "string"
},
"hairPinning": {
"description": "HairPinning is whether the router supports communicating\nbetween two local devices through the NATted public IP address\n(on IPv4).",
"type": "string"
},
"icmpv4": {
"description": "an ICMPv4 round trip completed",
"type": "boolean"
},
"ipv4": {
"description": "an IPv4 STUN round trip completed",
"type": "boolean"
},
"ipv4CanSend": {
"description": "an IPv4 packet was able to be sent",
"type": "boolean"
},
"ipv6": {
"description": "an IPv6 STUN round trip completed",
"type": "boolean"
},
"ipv6CanSend": {
"description": "an IPv6 packet was able to be sent",
"type": "boolean"
},
"mappingVariesByDestIP": {
"description": "MappingVariesByDestIP is whether STUN results depend which\nSTUN server you're talking to (on IPv4).",
"type": "string"
},
"oshasIPv6": {
"description": "could bind a socket to ::1",
"type": "boolean"
},
"pcp": {
"description": "PCP is whether PCP appears present on the LAN.\nEmpty means not checked.",
"type": "string"
},
"pmp": {
"description": "PMP is whether NAT-PMP appears present on the LAN.\nEmpty means not checked.",
"type": "string"
},
"preferredDERP": {
"description": "or 0 for unknown",
"type": "integer"
},
"regionLatency": {
"description": "keyed by DERP Region ID",
"type": "object",
"additionalProperties": {
"type": "integer"
}
},
"regionV4Latency": {
"description": "keyed by DERP Region ID",
"type": "object",
"additionalProperties": {
"type": "integer"
}
},
"regionV6Latency": {
"description": "keyed by DERP Region ID",
"type": "object",
"additionalProperties": {
"type": "integer"
}
},
"udp": {
"description": "a UDP STUN round trip completed",
"type": "boolean"
},
"upnP": {
"description": "UPnP is whether UPnP appears present on the LAN.\nEmpty means not checked.",
"type": "string"
}
}
},
"parameter.ComputedValue": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"default_source_value": {
"type": "boolean"
},
"destination_scheme": {
"$ref": "#/definitions/database.ParameterDestinationScheme"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"schema_id": {
"type": "string"
},
"scope": {
"$ref": "#/definitions/database.ParameterScope"
},
"scope_id": {
"type": "string"
},
"source_scheme": {
"$ref": "#/definitions/database.ParameterSourceScheme"
},
"source_value": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"sql.NullTime": {
"type": "object",
"properties": {
"time": {
"type": "string"
},
"valid": {
"description": "Valid is true if Time is not NULL",
"type": "boolean"
}
}
},
"tailcfg.DERPMap": {
"type": "object",
"properties": {
"omitDefaultRegions": {
"description": "OmitDefaultRegions specifies to not use Tailscale's DERP servers, and only use those\nspecified in this DERPMap. If there are none set outside of the defaults, this is a noop.",
"type": "boolean"
},
"regions": {
"description": "Regions is the set of geographic regions running DERP node(s).\n\nIt's keyed by the DERPRegion.RegionID.\n\nThe numbers are not necessarily contiguous.",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/tailcfg.DERPRegion"
}
}
}
},
"tailcfg.DERPNode": {
"type": "object",
"properties": {
"certName": {
"description": "CertName optionally specifies the expected TLS cert common\nname. If empty, HostName is used. If CertName is non-empty,\nHostName is only used for the TCP dial (if IPv4/IPv6 are\nnot present) + TLS ClientHello.",
"type": "string"
},
"derpport": {
"description": "DERPPort optionally provides an alternate TLS port number\nfor the DERP HTTPS server.\n\nIf zero, 443 is used.",
"type": "integer"
},
"forceHTTP": {
"description": "ForceHTTP is used by unit tests to force HTTP.\nIt should not be set by users.",
"type": "boolean"
},
"hostName": {
"description": "HostName is the DERP node's hostname.\n\nIt is required but need not be unique; multiple nodes may\nhave the same HostName but vary in configuration otherwise.",
"type": "string"
},
"insecureForTests": {
"description": "InsecureForTests is used by unit tests to disable TLS verification.\nIt should not be set by users.",
"type": "boolean"
},
"ipv4": {
"description": "IPv4 optionally forces an IPv4 address to use, instead of using DNS.\nIf empty, A record(s) from DNS lookups of HostName are used.\nIf the string is not an IPv4 address, IPv4 is not used; the\nconventional string to disable IPv4 (and not use DNS) is\n\"none\".",
"type": "string"
},
"ipv6": {
"description": "IPv6 optionally forces an IPv6 address to use, instead of using DNS.\nIf empty, AAAA record(s) from DNS lookups of HostName are used.\nIf the string is not an IPv6 address, IPv6 is not used; the\nconventional string to disable IPv6 (and not use DNS) is\n\"none\".",
"type": "string"
},
"name": {
"description": "Name is a unique node name (across all regions).\nIt is not a host name.\nIt's typically of the form \"1b\", \"2a\", \"3b\", etc. (region\nID + suffix within that region)",
"type": "string"
},
"regionID": {
"description": "RegionID is the RegionID of the DERPRegion that this node\nis running in.",
"type": "integer"
},
"stunonly": {
"description": "STUNOnly marks a node as only a STUN server and not a DERP\nserver.",
"type": "boolean"
},
"stunport": {
"description": "Port optionally specifies a STUN port to use.\nZero means 3478.\nTo disable STUN on this node, use -1.",
"type": "integer"
},
"stuntestIP": {
"description": "STUNTestIP is used in tests to override the STUN server's IP.\nIf empty, it's assumed to be the same as the DERP server.",
"type": "string"
}
}
},
"tailcfg.DERPRegion": {
"type": "object",
"properties": {
"avoid": {
"description": "Avoid is whether the client should avoid picking this as its home\nregion. The region should only be used if a peer is there.\nClients already using this region as their home should migrate\naway to a new region without Avoid set.",
"type": "boolean"
},
"embeddedRelay": {
"description": "EmbeddedRelay is true when the region is bundled with the Coder\ncontrol plane.",
"type": "boolean"
},
"nodes": {
"description": "Nodes are the DERP nodes running in this region, in\npriority order for the current client. Client TLS\nconnections should ideally only go to the first entry\n(falling back to the second if necessary). STUN packets\nshould go to the first 1 or 2.\n\nIf nodes within a region route packets amongst themselves,\nbut not to other regions. That said, each user/domain\nshould get a the same preferred node order, so if all nodes\nfor a user/network pick the first one (as they should, when\nthings are healthy), the inter-cluster routing is minimal\nto zero.",
"type": "array",
"items": {
"$ref": "#/definitions/tailcfg.DERPNode"
}
},
"regionCode": {
"description": "RegionCode is a short name for the region. It's usually a popular\ncity or airport code in the region: \"nyc\", \"sf\", \"sin\",\n\"fra\", etc.",
"type": "string"
},
"regionID": {
"description": "RegionID is a unique integer for a geographic region.\n\nIt corresponds to the legacy derpN.tailscale.com hostnames\nused by older clients. (Older clients will continue to resolve\nderpN.tailscale.com when contacting peers, rather than use\nthe server-provided DERPMap)\n\nRegionIDs must be non-zero, positive, and guaranteed to fit\nin a JavaScript number.\n\nRegionIDs in range 900-999 are reserved for end users to run their\nown DERP nodes.",
"type": "integer"
},
"regionName": {
"description": "RegionName is a long English name for the region: \"New York City\",\n\"San Francisco\", \"Singapore\", \"Frankfurt\", etc.",
"type": "string"
}
}
},
"url.Userinfo": {
"type": "object"
},
"workspaceapps.AccessMethod": {
"type": "string",
"enum": ["path", "subdomain", "terminal"],
"x-enum-varnames": [
"AccessMethodPath",
"AccessMethodSubdomain",
"AccessMethodTerminal"
]
},
"workspaceapps.IssueTokenRequest": {
"type": "object",
"properties": {
"app_hostname": {
"description": "AppHostname is the optional hostname for subdomain apps on the external\nproxy. It must start with an asterisk.",
"type": "string"
},
"app_path": {
"description": "AppPath is the path of the user underneath the app base path.",
"type": "string"
},
"app_query": {
"description": "AppQuery is the query parameters the user provided in the app request.",
"type": "string"
},
"app_request": {
"$ref": "#/definitions/workspaceapps.Request"
},
"path_app_base_url": {
"description": "PathAppBaseURL is required.",
"type": "string"
},
"session_token": {
"description": "SessionToken is the session token provided by the user.",
"type": "string"
}
}
},
"workspaceapps.Request": {
"type": "object",
"properties": {
"access_method": {
"$ref": "#/definitions/workspaceapps.AccessMethod"
},
"agent_name_or_id": {
"description": "AgentNameOrID is not required if the workspace has only one agent.",
"type": "string"
},
"app_slug_or_port": {
"type": "string"
},
"base_path": {
"description": "BasePath of the app. For path apps, this is the path prefix in the router\nfor this particular app. For subdomain apps, this should be \"/\". This is\nused for setting the cookie path.",
"type": "string"
},
"username_or_id": {
"description": "For the following fields, if the AccessMethod is AccessMethodTerminal,\nthen only AgentNameOrID may be set and it must be a UUID. The other\nfields must be left blank.",
"type": "string"
},
"workspace_name_or_id": {
"type": "string"
}
}
},
"wsproxysdk.IssueSignedAppTokenResponse": {
"type": "object",
"properties": {
"signed_token_str": {
"description": "SignedTokenStr should be set as a cookie on the response.",
"type": "string"
}
}
},
"wsproxysdk.RegisterWorkspaceProxyRequest": {
"type": "object",
"properties": {
"access_url": {
"description": "AccessURL that hits the workspace proxy api.",
"type": "string"
},
"wildcard_hostname": {
"description": "WildcardHostname that the workspace proxy api is serving for subdomain apps.",
"type": "string"
}
}
},
"wsproxysdk.RegisterWorkspaceProxyResponse": {
"type": "object",
"properties": {
"app_security_key": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"CoderSessionToken": {
"type": "apiKey",
"name": "Coder-Session-Token",
"in": "header"
}
}
}