// Package apidoc GENERATED BY SWAG; DO NOT EDIT
// This file was generated by swaggo/swag
package apidoc

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "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": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "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"
                        }
                    }
                }
            }
        },
        "/debug/ws": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Debug"
                ],
                "summary": "Debug Info Websocket Test",
                "operationId": "debug-info-websocket-test",
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/codersdk.Response"
                        }
                    }
                },
                "x-apidocgen": {
                    "skip": true
                }
            }
        },
        "/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"
                        }
                    }
                }
            }
        },
        "/derp-map": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Get DERP map updates",
                "operationId": "get-derp-map-updates",
                "responses": {
                    "101": {
                        "description": "Switching Protocols"
                    }
                }
            }
        },
        "/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"
                    }
                }
            }
        },
        "/gitauth/{gitauth}": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Git"
                ],
                "summary": "Get git auth by ID",
                "operationId": "get-git-auth-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "string",
                        "description": "Git Provider ID",
                        "name": "gitauth",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.GitAuth"
                        }
                    }
                }
            }
        },
        "/gitauth/{gitauth}/device": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Git"
                ],
                "summary": "Get git auth device by ID.",
                "operationId": "get-git-auth-device-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "string",
                        "description": "Git Provider ID",
                        "name": "gitauth",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.GitAuthDevice"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Git"
                ],
                "summary": "Post git auth device by ID",
                "operationId": "post-git-auth-device-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "string",
                        "description": "Git Provider ID",
                        "name": "gitauth",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                }
            }
        },
        "/groups/{group}": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Get group by ID",
                "operationId": "get-group-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Group id",
                        "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": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "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
                    },
                    {
                        "description": "Patch group request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.PatchGroupRequest"
                        }
                    }
                ],
                "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.DAUsResponse"
                        }
                    }
                }
            }
        },
        "/insights/templates": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Insights"
                ],
                "summary": "Get insights about templates",
                "operationId": "get-insights-about-templates",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.TemplateInsightsResponse"
                        }
                    }
                }
            }
        },
        "/insights/user-latency": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Insights"
                ],
                "summary": "Get insights about user latency",
                "operationId": "get-insights-about-user-latency",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.UserLatencyInsightsResponse"
                        }
                    }
                }
            }
        },
        "/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/refresh-entitlements": {
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organizations"
                ],
                "summary": "Update license entitlements",
                "operationId": "update-license-entitlements",
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/codersdk.Response"
                        }
                    }
                }
            }
        },
        "/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"
                        }
                    }
                }
            }
        },
        "/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-codersdk_Region"
                        }
                    }
                }
            }
        },
        "/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}/acl/available": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Get template available acl users/groups",
                "operationId": "get-template-available-acl-usersgroups",
                "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.ACLAvailable"
                            }
                        }
                    }
                }
            }
        },
        "/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.DAUsResponse"
                        }
                    }
                }
            }
        },
        "/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": []
                    }
                ],
                "tags": [
                    "Templates"
                ],
                "summary": "Removed: Get parameters by template version",
                "operationId": "removed-get-parameters-by-template-version",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Template version ID",
                        "name": "templateversion",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/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": []
                    }
                ],
                "tags": [
                    "Templates"
                ],
                "summary": "Removed: Get schema by template version",
                "operationId": "removed-get-schema-by-template-version",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Template version ID",
                        "name": "templateversion",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/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}/convert-login": {
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Authorization"
                ],
                "summary": "Convert user from password to oauth authentication",
                "operationId": "convert-user-from-password-to-oauth-authentication",
                "parameters": [
                    {
                        "description": "Convert request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.ConvertLoginRequest"
                        }
                    },
                    {
                        "type": "string",
                        "description": "User ID, name, or me",
                        "name": "user",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/codersdk.OAuthConversionResponse"
                        }
                    }
                }
            }
        },
        "/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}/login-type": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Get user login type",
                "operationId": "get-user-login-type",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID, name, or me",
                        "name": "user",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.UserLoginType"
                        }
                    }
                }
            }
        },
        "/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}/quiet-hours": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Get user quiet hours schedule",
                "operationId": "get-user-quiet-hours-schedule",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "User ID",
                        "name": "user",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/codersdk.UserQuietHoursScheduleResponse"
                            }
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Update user quiet hours schedule",
                "operationId": "update-user-quiet-hours-schedule",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "User ID",
                        "name": "user",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Update schedule request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.UpdateUserQuietHoursScheduleRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/codersdk.UserQuietHoursScheduleResponse"
                            }
                        }
                    }
                }
            }
        },
        "/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/connection": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Get connection info for workspace agent generic",
                "operationId": "get-connection-info-for-workspace-agent-generic",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.WorkspaceAgentConnectionInfo"
                        }
                    }
                },
                "x-apidocgen": {
                    "skip": true
                }
            }
        },
        "/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/logs": {
            "patch": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Patch workspace agent logs",
                "operationId": "patch-workspace-agent-logs",
                "parameters": [
                    {
                        "description": "logs",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/agentsdk.PatchLogs"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.Response"
                        }
                    }
                }
            }
        },
        "/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"
                        }
                    }
                }
            }
        },
        "/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": "Removed: Patch workspace agent logs",
                "operationId": "removed-patch-workspace-agent-logs",
                "parameters": [
                    {
                        "description": "logs",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/agentsdk.PatchLogs"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.Response"
                        }
                    }
                }
            }
        },
        "/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}/legacy": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Agent is legacy",
                "operationId": "agent-is-legacy",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace Agent ID",
                        "name": "workspaceagent",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/wsproxysdk.AgentIsLegacyResponse"
                        }
                    }
                },
                "x-apidocgen": {
                    "skip": true
                }
            }
        },
        "/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}/logs": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Get logs by workspace agent",
                "operationId": "get-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"
                    },
                    {
                        "type": "boolean",
                        "description": "Disable compression for WebSocket connection",
                        "name": "no_compression",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/codersdk.WorkspaceAgentLog"
                            }
                        }
                    }
                }
            }
        },
        "/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": "Removed: Get logs by workspace agent",
                "operationId": "removed-get-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"
                    },
                    {
                        "type": "boolean",
                        "description": "Disable compression for WebSocket connection",
                        "name": "no_compression",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/codersdk.WorkspaceAgentLog"
                            }
                        }
                    }
                }
            }
        },
        "/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.RegionsResponse-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/app-stats": {
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Report workspace app stats",
                "operationId": "report-workspace-app-stats",
                "parameters": [
                    {
                        "description": "Report app stats request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/wsproxysdk.ReportAppStatsRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                },
                "x-apidocgen": {
                    "skip": true
                }
            }
        },
        "/workspaceproxies/me/coordinate": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Workspace Proxy Coordinate",
                "operationId": "workspace-proxy-coordinate",
                "responses": {
                    "101": {
                        "description": "Switching Protocols"
                    }
                },
                "x-apidocgen": {
                    "skip": true
                }
            }
        },
        "/workspaceproxies/me/deregister": {
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Deregister workspace proxy",
                "operationId": "deregister-workspace-proxy",
                "parameters": [
                    {
                        "description": "Deregister workspace proxy request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/wsproxysdk.DeregisterWorkspaceProxyRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                },
                "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": "Register workspace proxy 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": "Search query in the format ` + "`" + `key:value` + "`" + `. Available keys are: owner, template, name, status, has-agent, deleting_by.",
                        "name": "q",
                        "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.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}/dormant": {
            "put": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Workspaces"
                ],
                "summary": "Update workspace dormancy status by id.",
                "operationId": "update-workspace-dormancy-status-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace ID",
                        "name": "workspace",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Make a workspace dormant or active",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.UpdateWorkspaceDormancy"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.Workspace"
                        }
                    }
                }
            }
        },
        "/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": {
                "labels": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/agentsdk.AgentMetricLabel"
                    }
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "enum": [
                        "counter",
                        "gauge"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/agentsdk.AgentMetricType"
                        }
                    ]
                },
                "value": {
                    "type": "number"
                }
            }
        },
        "agentsdk.AgentMetricLabel": {
            "type": "object",
            "required": [
                "name",
                "value"
            ],
            "properties": {
                "name": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "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.Log": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "level": {
                    "$ref": "#/definitions/codersdk.LogLevel"
                },
                "output": {
                    "type": "string"
                },
                "source": {
                    "$ref": "#/definitions/codersdk.WorkspaceAgentLogSource"
                }
            }
        },
        "agentsdk.Manifest": {
            "type": "object",
            "properties": {
                "agent_id": {
                    "type": "string"
                },
                "apps": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.WorkspaceApp"
                    }
                },
                "derp_force_websockets": {
                    "type": "boolean"
                },
                "derpmap": {
                    "$ref": "#/definitions/tailcfg.DERPMap"
                },
                "directory": {
                    "type": "string"
                },
                "disable_direct_connections": {
                    "type": "boolean"
                },
                "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.PatchLogs": {
            "type": "object",
            "properties": {
                "logs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/agentsdk.Log"
                    }
                }
            }
        },
        "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": {
                "changed_at": {
                    "type": "string"
                },
                "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"
                },
                "subsystems": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.AgentSubsystem"
                    }
                },
                "version": {
                    "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"
                },
                "required": {
                    "description": "Required means this value must be set by some means. It requires\n` + "`" + `ValueSource != ValueSourceNone` + "`" + `\nIf ` + "`" + `Default` + "`" + ` is set, then ` + "`" + `Required` + "`" + ` is ignored.",
                    "type": "boolean"
                },
                "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.Regexp": {
            "type": "object"
        },
        "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.ACLAvailable": {
            "type": "object",
            "properties": {
                "groups": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.Group"
                    }
                },
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.User"
                    }
                }
            }
        },
        "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.AgentSubsystem": {
            "type": "string",
            "enum": [
                "envbox",
                "envbuilder",
                "exectrace"
            ],
            "x-enum-varnames": [
                "AgentSubsystemEnvbox",
                "AgentSubsystemEnvbuilder",
                "AgentSubsystemExectrace"
            ]
        },
        "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.ConnectionLatency": {
            "type": "object",
            "properties": {
                "p50": {
                    "type": "number",
                    "example": 31.312
                },
                "p95": {
                    "type": "number",
                    "example": 119.832
                }
            }
        },
        "codersdk.ConvertLoginRequest": {
            "type": "object",
            "required": [
                "password",
                "to_type"
            ],
            "properties": {
                "password": {
                    "type": "string"
                },
                "to_type": {
                    "description": "ToType is the login type to convert to.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.LoginType"
                        }
                    ]
                }
            }
        },
        "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"
                },
                "display_name": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "quota_allowance": {
                    "type": "integer"
                }
            }
        },
        "codersdk.CreateOrganizationRequest": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "name": {
                    "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"
                },
                "delete_ttl_ms": {
                    "description": "TimeTilDormantAutoDeleteMillis allows optionally specifying the max lifetime before Coder\npermanently deletes dormant 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"
                },
                "disable_everyone_group_access": {
                    "description": "DisableEveryoneGroupAccess allows optionally disabling the default\nbehavior of granting the 'everyone' group access to use the template.\nIf this is set to true, the template will not be available to all users,\nand must be explicitly granted to users or groups in the permissions settings\nof the template.",
                    "type": "boolean"
                },
                "display_name": {
                    "description": "DisplayName is the displayed name of the template.",
                    "type": "string"
                },
                "dormant_ttl_ms": {
                    "description": "TimeTilDormantMillis allows optionally specifying the max lifetime before Coder\nlocks inactive workspaces created from this template.",
                    "type": "integer"
                },
                "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"
                },
                "max_ttl_ms": {
                    "description": "TODO(@dean): remove max_ttl once restart_requirement is matured",
                    "type": "integer"
                },
                "name": {
                    "description": "Name is the name of the template.",
                    "type": "string"
                },
                "restart_requirement": {
                    "description": "RestartRequirement allows optionally specifying the restart requirement\nfor workspaces created from this template. This is an enterprise feature.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.TemplateRestartRequirement"
                        }
                    ]
                },
                "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": {
                "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"
                },
                "message": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "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",
                "username"
            ],
            "properties": {
                "disable_login": {
                    "description": "DisableLogin sets the user's login type to 'none'. This prevents the user\nfrom being able to use a password or any other authentication method to login.\nDeprecated: Set UserLoginType=LoginTypeDisabled instead.",
                    "type": "boolean"
                },
                "email": {
                    "type": "string",
                    "format": "email"
                },
                "login_type": {
                    "description": "UserLoginType defaults to LoginTypePassword.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.LoginType"
                        }
                    ]
                },
                "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"
                },
                "rich_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.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"
                },
                "rich_parameter_values": {
                    "description": "ParameterValues allows for additional parameters to be provided\nduring the initial provision.",
                    "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.DAUsResponse": {
            "type": "object",
            "properties": {
                "entries": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.DAUEntry"
                    }
                },
                "tz_hour_offset": {
                    "type": "integer"
                }
            }
        },
        "codersdk.DERP": {
            "type": "object",
            "properties": {
                "config": {
                    "$ref": "#/definitions/codersdk.DERPConfig"
                },
                "server": {
                    "$ref": "#/definitions/codersdk.DERPServerConfig"
                }
            }
        },
        "codersdk.DERPConfig": {
            "type": "object",
            "properties": {
                "block_direct": {
                    "type": "boolean"
                },
                "force_websockets": {
                    "type": "boolean"
                },
                "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_all_cors": {
                    "type": "boolean"
                },
                "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.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"
                },
                "docs_url": {
                    "$ref": "#/definitions/clibase.URL"
                },
                "enable_terraform_debug_mode": {
                    "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"
                },
                "job_hang_detector_interval": {
                    "type": "integer"
                },
                "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_health_status_interval": {
                    "type": "integer"
                },
                "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"
                },
                "user_quiet_hours_schedule": {
                    "$ref": "#/definitions/codersdk.UserQuietHoursScheduleConfig"
                },
                "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"
                },
                "refreshed_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "require_telemetry": {
                    "type": "boolean"
                },
                "trial": {
                    "type": "boolean"
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "codersdk.Experiment": {
            "type": "string",
            "enum": [
                "moons",
                "workspace_actions",
                "tailnet_pg_coordinator",
                "single_tailnet",
                "template_restart_requirement",
                "deployment_health_page",
                "workspaces_batch_actions"
            ],
            "x-enum-varnames": [
                "ExperimentMoons",
                "ExperimentWorkspaceActions",
                "ExperimentTailnetPGCoordinator",
                "ExperimentSingleTailnet",
                "ExperimentTemplateRestartRequirement",
                "ExperimentDeploymentHealthPage",
                "ExperimentWorkspacesBatchActions"
            ]
        },
        "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.GitAuth": {
            "type": "object",
            "properties": {
                "app_install_url": {
                    "description": "AppInstallURL is the URL to install the app.",
                    "type": "string"
                },
                "app_installable": {
                    "description": "AppInstallable is true if the request for app installs was successful.",
                    "type": "boolean"
                },
                "authenticated": {
                    "type": "boolean"
                },
                "device": {
                    "type": "boolean"
                },
                "installations": {
                    "description": "AppInstallations are the installations that the user has access to.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.GitAuthAppInstallation"
                    }
                },
                "type": {
                    "type": "string"
                },
                "user": {
                    "description": "User is the user that authenticated with the provider.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.GitAuthUser"
                        }
                    ]
                }
            }
        },
        "codersdk.GitAuthAppInstallation": {
            "type": "object",
            "properties": {
                "account": {
                    "$ref": "#/definitions/codersdk.GitAuthUser"
                },
                "configure_url": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                }
            }
        },
        "codersdk.GitAuthConfig": {
            "type": "object",
            "properties": {
                "app_install_url": {
                    "type": "string"
                },
                "app_installations_url": {
                    "type": "string"
                },
                "auth_url": {
                    "type": "string"
                },
                "client_id": {
                    "type": "string"
                },
                "device_code_url": {
                    "type": "string"
                },
                "device_flow": {
                    "type": "boolean"
                },
                "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.GitAuthDevice": {
            "type": "object",
            "properties": {
                "device_code": {
                    "type": "string"
                },
                "expires_in": {
                    "type": "integer"
                },
                "interval": {
                    "type": "integer"
                },
                "user_code": {
                    "type": "string"
                },
                "verification_uri": {
                    "type": "string"
                }
            }
        },
        "codersdk.GitAuthUser": {
            "type": "object",
            "properties": {
                "avatar_url": {
                    "type": "string"
                },
                "login": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "profile_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"
                },
                "display_name": {
                    "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"
                },
                "source": {
                    "$ref": "#/definitions/codersdk.GroupSource"
                }
            }
        },
        "codersdk.GroupSource": {
            "type": "string",
            "enum": [
                "user",
                "oidc"
            ],
            "x-enum-varnames": [
                "GroupSourceUser",
                "GroupSourceOIDC"
            ]
        },
        "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.InsightsReportInterval": {
            "type": "string",
            "enum": [
                "day"
            ],
            "x-enum-varnames": [
                "InsightsReportIntervalDay"
            ]
        },
        "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": [
                "REQUIRED_TEMPLATE_VARIABLES"
            ],
            "x-enum-varnames": [
                "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"
                },
                "log_filter": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "stackdriver": {
                    "type": "string"
                }
            }
        },
        "codersdk.LoginType": {
            "type": "string",
            "enum": [
                "",
                "password",
                "github",
                "oidc",
                "token",
                "none"
            ],
            "x-enum-varnames": [
                "LoginTypeUnknown",
                "LoginTypePassword",
                "LoginTypeGithub",
                "LoginTypeOIDC",
                "LoginTypeToken",
                "LoginTypeNone"
            ]
        },
        "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.MinimalUser": {
            "type": "object",
            "required": [
                "id",
                "username"
            ],
            "properties": {
                "avatar_url": {
                    "type": "string",
                    "format": "uri"
                },
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "username": {
                    "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.OAuthConversionResponse": {
            "type": "object",
            "properties": {
                "expires_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "state_string": {
                    "type": "string"
                },
                "to_type": {
                    "$ref": "#/definitions/codersdk.LoginType"
                },
                "user_id": {
                    "type": "string",
                    "format": "uuid"
                }
            }
        },
        "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_cert_file": {
                    "type": "string"
                },
                "client_id": {
                    "type": "string"
                },
                "client_key_file": {
                    "description": "ClientKeyFile \u0026 ClientCertFile are used in place of ClientSecret for PKI auth.",
                    "type": "string"
                },
                "client_secret": {
                    "type": "string"
                },
                "email_domain": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "email_field": {
                    "type": "string"
                },
                "group_auto_create": {
                    "type": "boolean"
                },
                "group_mapping": {
                    "type": "object"
                },
                "group_regex_filter": {
                    "$ref": "#/definitions/clibase.Regexp"
                },
                "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"
                },
                "user_role_field": {
                    "type": "string"
                },
                "user_role_mapping": {
                    "type": "object"
                },
                "user_roles_default": {
                    "type": "array",
                    "items": {
                        "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.PatchGroupRequest": {
            "type": "object",
            "properties": {
                "add_users": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "avatar_url": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "quota_allowance": {
                    "type": "integer"
                },
                "remove_users": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "codersdk.PatchTemplateVersionRequest": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "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"
                },
                "collect_db_metrics": {
                    "type": "boolean"
                },
                "enable": {
                    "type": "boolean"
                }
            }
        },
        "codersdk.ProvisionerConfig": {
            "type": "object",
            "properties": {
                "daemon_poll_interval": {
                    "type": "integer"
                },
                "daemon_poll_jitter": {
                    "type": "integer"
                },
                "daemon_psk": {
                    "type": "string"
                },
                "daemons": {
                    "type": "integer"
                },
                "daemons_echo": {
                    "type": "boolean"
                },
                "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": [
                        "REQUIRED_TEMPLATE_VARIABLES"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.JobErrorCode"
                        }
                    ]
                },
                "file_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "queue_position": {
                    "type": "integer"
                },
                "queue_size": {
                    "type": "integer"
                },
                "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-codersdk_Region": {
            "type": "object",
            "properties": {
                "regions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.Region"
                    }
                }
            }
        },
        "codersdk.RegionsResponse-codersdk_WorkspaceProxy": {
            "type": "object",
            "properties": {
                "regions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.WorkspaceProxy"
                    }
                }
            }
        },
        "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",
                "convert_login",
                "workspace_proxy",
                "organization"
            ],
            "x-enum-varnames": [
                "ResourceTypeTemplate",
                "ResourceTypeTemplateVersion",
                "ResourceTypeUser",
                "ResourceTypeWorkspace",
                "ResourceTypeWorkspaceBuild",
                "ResourceTypeGitSSHKey",
                "ResourceTypeAPIKey",
                "ResourceTypeGroup",
                "ResourceTypeLicense",
                "ResourceTypeConvertLogin",
                "ResourceTypeWorkspaceProxy",
                "ResourceTypeOrganization"
            ]
        },
        "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, TimeTilDormantMillis, and TimeTilDormantAutoDeleteMillis 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"
                },
                "max_ttl_ms": {
                    "description": "TODO(@dean): remove max_ttl once restart_requirement is matured",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "organization_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "provisioner": {
                    "type": "string",
                    "enum": [
                        "terraform"
                    ]
                },
                "restart_requirement": {
                    "description": "RestartRequirement is an enterprise feature. Its value is only used if\nyour license is entitled to use the advanced template scheduling feature.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.TemplateRestartRequirement"
                        }
                    ]
                },
                "time_til_dormant_autodelete_ms": {
                    "type": "integer"
                },
                "time_til_dormant_ms": {
                    "type": "integer"
                },
                "updated_at": {
                    "type": "string",
                    "format": "date-time"
                }
            }
        },
        "codersdk.TemplateAppUsage": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string",
                    "example": "Visual Studio Code"
                },
                "icon": {
                    "type": "string"
                },
                "seconds": {
                    "type": "integer",
                    "example": 80500
                },
                "slug": {
                    "type": "string",
                    "example": "vscode"
                },
                "template_ids": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    }
                },
                "type": {
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.TemplateAppsType"
                        }
                    ],
                    "example": "builtin"
                }
            }
        },
        "codersdk.TemplateAppsType": {
            "type": "string",
            "enum": [
                "builtin",
                "app"
            ],
            "x-enum-varnames": [
                "TemplateAppsTypeBuiltin",
                "TemplateAppsTypeApp"
            ]
        },
        "codersdk.TemplateBuildTimeStats": {
            "type": "object",
            "additionalProperties": {
                "$ref": "#/definitions/codersdk.TransitionStats"
            }
        },
        "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.TemplateInsightsIntervalReport": {
            "type": "object",
            "properties": {
                "active_users": {
                    "type": "integer",
                    "example": 14
                },
                "end_time": {
                    "type": "string",
                    "format": "date-time"
                },
                "interval": {
                    "$ref": "#/definitions/codersdk.InsightsReportInterval"
                },
                "start_time": {
                    "type": "string",
                    "format": "date-time"
                },
                "template_ids": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    }
                }
            }
        },
        "codersdk.TemplateInsightsReport": {
            "type": "object",
            "properties": {
                "active_users": {
                    "type": "integer",
                    "example": 22
                },
                "apps_usage": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.TemplateAppUsage"
                    }
                },
                "end_time": {
                    "type": "string",
                    "format": "date-time"
                },
                "parameters_usage": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.TemplateParameterUsage"
                    }
                },
                "start_time": {
                    "type": "string",
                    "format": "date-time"
                },
                "template_ids": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    }
                }
            }
        },
        "codersdk.TemplateInsightsResponse": {
            "type": "object",
            "properties": {
                "interval_reports": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.TemplateInsightsIntervalReport"
                    }
                },
                "report": {
                    "$ref": "#/definitions/codersdk.TemplateInsightsReport"
                }
            }
        },
        "codersdk.TemplateParameterUsage": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.TemplateVersionParameterOption"
                    }
                },
                "template_ids": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    }
                },
                "type": {
                    "type": "string"
                },
                "values": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.TemplateParameterValue"
                    }
                }
            }
        },
        "codersdk.TemplateParameterValue": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "codersdk.TemplateRestartRequirement": {
            "type": "object",
            "properties": {
                "days_of_week": {
                    "description": "DaysOfWeek is a list of days of the week on which restarts are required.\nRestarts happen within the user's quiet hours (in their configured\ntimezone). If no days are specified, restarts are not required. Weekdays\ncannot be specified twice.\n\nRestarts will only happen on weekdays in this list on weeks which line up\nwith Weeks.",
                    "type": "array",
                    "items": {
                        "type": "string",
                        "enum": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ]
                    }
                },
                "weeks": {
                    "description": "Weeks is the number of weeks between required restarts. Weeks are synced\nacross all workspaces (and Coder deployments) using modulo math on a\nhardcoded epoch week of January 2nd, 2023 (the first Monday of 2023).\nValues of 0 or 1 indicate weekly restarts. Values of 2 indicate\nfortnightly restarts, etc.",
                    "type": "integer"
                }
            }
        },
        "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"
                },
                "login_type": {
                    "$ref": "#/definitions/codersdk.LoginType"
                },
                "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.MinimalUser"
                },
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "job": {
                    "$ref": "#/definitions/codersdk.ProvisionerJob"
                },
                "message": {
                    "type": "string"
                },
                "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"
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "enum": [
                            "DEPRECATED_PARAMETERS"
                        ],
                        "$ref": "#/definitions/codersdk.TemplateVersionWarning"
                    }
                }
            }
        },
        "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"
                },
                "ephemeral": {
                    "type": "boolean"
                },
                "icon": {
                    "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.TemplateVersionWarning": {
            "type": "string",
            "enum": [
                "UNSUPPORTED_WORKSPACES"
            ],
            "x-enum-varnames": [
                "TemplateVersionWarningUnsupportedWorkspaces"
            ]
        },
        "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": {
                    "description": "GroupPerms should be a mapping of group id to role.",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/codersdk.TemplateRole"
                    },
                    "example": {
                        "8bd26b20-f3e8-48be-a903-46bb920cf671": "use",
                        "\u003cuser_id\u003e\u003e": "admin"
                    }
                },
                "user_perms": {
                    "description": "UserPerms should be a mapping of user id to role. The user id must be the\nuuid of the user, not a username or email address.",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/codersdk.TemplateRole"
                    },
                    "example": {
                        "4df59e74-c027-470b-ab4d-cbba8963a5e9": "use",
                        "\u003cgroup_id\u003e": "admin"
                    }
                }
            }
        },
        "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.UpdateUserQuietHoursScheduleRequest": {
            "type": "object",
            "required": [
                "schedule"
            ],
            "properties": {
                "schedule": {
                    "description": "Schedule is a cron expression that defines when the user's quiet hours\nwindow is. Schedule must not be empty. For new users, the schedule is set\nto 2am in their browser or computer's timezone. The schedule denotes the\nbeginning of a 4 hour window where the workspace is allowed to\nautomatically stop or restart due to maintenance or template max TTL.\n\nThe schedule must be daily with a single time, and should have a timezone\nspecified via a CRON_TZ prefix (otherwise UTC will be used).\n\nIf the schedule is empty, the user will be updated to use the default\nschedule.",
                    "type": "string"
                }
            }
        },
        "codersdk.UpdateWorkspaceAutostartRequest": {
            "type": "object",
            "properties": {
                "schedule": {
                    "type": "string"
                }
            }
        },
        "codersdk.UpdateWorkspaceDormancy": {
            "type": "object",
            "properties": {
                "dormant": {
                    "type": "boolean"
                }
            }
        },
        "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"
                },
                "login_type": {
                    "$ref": "#/definitions/codersdk.LoginType"
                },
                "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.UserLatency": {
            "type": "object",
            "properties": {
                "avatar_url": {
                    "type": "string",
                    "format": "uri"
                },
                "latency_ms": {
                    "$ref": "#/definitions/codersdk.ConnectionLatency"
                },
                "template_ids": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    }
                },
                "user_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "codersdk.UserLatencyInsightsReport": {
            "type": "object",
            "properties": {
                "end_time": {
                    "type": "string",
                    "format": "date-time"
                },
                "start_time": {
                    "type": "string",
                    "format": "date-time"
                },
                "template_ids": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    }
                },
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.UserLatency"
                    }
                }
            }
        },
        "codersdk.UserLatencyInsightsResponse": {
            "type": "object",
            "properties": {
                "report": {
                    "$ref": "#/definitions/codersdk.UserLatencyInsightsReport"
                }
            }
        },
        "codersdk.UserLoginType": {
            "type": "object",
            "properties": {
                "login_type": {
                    "$ref": "#/definitions/codersdk.LoginType"
                }
            }
        },
        "codersdk.UserQuietHoursScheduleConfig": {
            "type": "object",
            "properties": {
                "default_schedule": {
                    "type": "string"
                }
            }
        },
        "codersdk.UserQuietHoursScheduleResponse": {
            "type": "object",
            "properties": {
                "next": {
                    "description": "Next is the next time that the quiet hours window will start.",
                    "type": "string",
                    "format": "date-time"
                },
                "raw_schedule": {
                    "type": "string"
                },
                "time": {
                    "description": "Time is the time of day that the quiet hours window starts in the given\nTimezone each day.",
                    "type": "string"
                },
                "timezone": {
                    "description": "raw format from the cron expression, UTC if unspecified",
                    "type": "string"
                },
                "user_set": {
                    "description": "UserSet is true if the user has set their own quiet hours schedule. If\nfalse, the user is using the default schedule.",
                    "type": "boolean"
                }
            }
        },
        "codersdk.UserStatus": {
            "type": "string",
            "enum": [
                "active",
                "dormant",
                "suspended"
            ],
            "x-enum-varnames": [
                "UserStatusActive",
                "UserStatusDormant",
                "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 at which the workspace will be permanently deleted.\nA workspace is eligible for deletion if it is dormant (a non-nil dormant_at value)\nand a value has been specified for time_til_dormant_autodelete on its template.",
                    "type": "string",
                    "format": "date-time"
                },
                "dormant_at": {
                    "description": "DormantAt being non-nil indicates a workspace that is dormant.\nA dormant workspace is no longer accessible must be activated.\nIt is subject to deletion if it breaches\nthe duration of the time_til_ field on its template.",
                    "type": "string",
                    "format": "date-time"
                },
                "health": {
                    "description": "Health shows the health of the workspace and information about\nwhat is causing an unhealthy status.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.WorkspaceHealth"
                        }
                    ]
                },
                "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_active_version_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "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"
                },
                "health": {
                    "description": "Health reports the health of the agent.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.WorkspaceAgentHealth"
                        }
                    ]
                },
                "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": "Deprecated: Use StartupScriptBehavior instead.",
                    "type": "boolean"
                },
                "logs_length": {
                    "type": "integer"
                },
                "logs_overflowed": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "operating_system": {
                    "type": "string"
                },
                "ready_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "resource_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "shutdown_script": {
                    "type": "string"
                },
                "shutdown_script_timeout_seconds": {
                    "type": "integer"
                },
                "started_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "startup_script": {
                    "type": "string"
                },
                "startup_script_behavior": {
                    "$ref": "#/definitions/codersdk.WorkspaceAgentStartupScriptBehavior"
                },
                "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"
                },
                "subsystems": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.AgentSubsystem"
                    }
                },
                "troubleshooting_url": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "codersdk.WorkspaceAgentConnectionInfo": {
            "type": "object",
            "properties": {
                "derp_force_websockets": {
                    "type": "boolean"
                },
                "derp_map": {
                    "$ref": "#/definitions/tailcfg.DERPMap"
                },
                "disable_direct_connections": {
                    "type": "boolean"
                }
            }
        },
        "codersdk.WorkspaceAgentHealth": {
            "type": "object",
            "properties": {
                "healthy": {
                    "description": "Healthy is true if the agent is healthy.",
                    "type": "boolean",
                    "example": false
                },
                "reason": {
                    "description": "Reason is a human-readable explanation of the agent's health. It is empty if Healthy is true.",
                    "type": "string",
                    "example": "agent has lost connection"
                }
            }
        },
        "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.WorkspaceAgentLog": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "id": {
                    "type": "integer"
                },
                "level": {
                    "$ref": "#/definitions/codersdk.LogLevel"
                },
                "output": {
                    "type": "string"
                }
            }
        },
        "codersdk.WorkspaceAgentLogSource": {
            "type": "string",
            "enum": [
                "startup_script",
                "shutdown_script",
                "kubernetes",
                "envbox",
                "envbuilder",
                "external"
            ],
            "x-enum-varnames": [
                "WorkspaceAgentLogSourceStartupScript",
                "WorkspaceAgentLogSourceShutdownScript",
                "WorkspaceAgentLogSourceKubernetes",
                "WorkspaceAgentLogSourceEnvbox",
                "WorkspaceAgentLogSourceEnvbuilder",
                "WorkspaceAgentLogSourceExternal"
            ]
        },
        "codersdk.WorkspaceAgentMetadataDescription": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "interval": {
                    "type": "integer"
                },
                "key": {
                    "type": "string"
                },
                "script": {
                    "type": "string"
                },
                "timeout": {
                    "type": "integer"
                }
            }
        },
        "codersdk.WorkspaceAgentStartupScriptBehavior": {
            "type": "string",
            "enum": [
                "blocking",
                "non-blocking"
            ],
            "x-enum-varnames": [
                "WorkspaceAgentStartupScriptBehaviorBlocking",
                "WorkspaceAgentStartupScriptBehaviorNonBlocking"
            ]
        },
        "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.WorkspaceHealth": {
            "type": "object",
            "properties": {
                "failing_agents": {
                    "description": "FailingAgents lists the IDs of the agents that are failing, if any.",
                    "type": "array",
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    }
                },
                "healthy": {
                    "description": "Healthy is true if the workspace is healthy.",
                    "type": "boolean",
                    "example": false
                }
            }
        },
        "codersdk.WorkspaceProxy": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "deleted": {
                    "type": "boolean"
                },
                "derp_enabled": {
                    "type": "boolean"
                },
                "derp_only": {
                    "type": "boolean"
                },
                "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"
                },
                "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"
                },
                "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.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"
                    }
                }
            }
        },
        "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": {
                "access_url": {
                    "type": "string"
                },
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "type": "boolean"
                },
                "healthz_response": {
                    "type": "string"
                },
                "reachable": {
                    "type": "boolean"
                },
                "status_code": {
                    "type": "integer"
                }
            }
        },
        "healthcheck.DERPNodeReport": {
            "type": "object",
            "properties": {
                "can_exchange_messages": {
                    "type": "boolean"
                },
                "client_errs": {
                    "type": "array",
                    "items": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "client_logs": {
                    "type": "array",
                    "items": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "type": "boolean"
                },
                "node": {
                    "$ref": "#/definitions/tailcfg.DERPNode"
                },
                "node_info": {
                    "$ref": "#/definitions/derp.ServerInfoMessage"
                },
                "round_trip_ping": {
                    "type": "string"
                },
                "round_trip_ping_ms": {
                    "type": "integer"
                },
                "stun": {
                    "$ref": "#/definitions/healthcheck.DERPStunReport"
                },
                "uses_websocket": {
                    "type": "boolean"
                }
            }
        },
        "healthcheck.DERPRegionReport": {
            "type": "object",
            "properties": {
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "type": "boolean"
                },
                "node_reports": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/healthcheck.DERPNodeReport"
                    }
                },
                "region": {
                    "$ref": "#/definitions/tailcfg.DERPRegion"
                }
            }
        },
        "healthcheck.DERPReport": {
            "type": "object",
            "properties": {
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "type": "boolean"
                },
                "netcheck": {
                    "$ref": "#/definitions/netcheck.Report"
                },
                "netcheck_err": {
                    "type": "string"
                },
                "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": {
                    "type": "string"
                }
            }
        },
        "healthcheck.DatabaseReport": {
            "type": "object",
            "properties": {
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "type": "boolean"
                },
                "latency": {
                    "type": "string"
                },
                "latency_ms": {
                    "type": "integer"
                },
                "reachable": {
                    "type": "boolean"
                }
            }
        },
        "healthcheck.Report": {
            "type": "object",
            "properties": {
                "access_url": {
                    "$ref": "#/definitions/healthcheck.AccessURLReport"
                },
                "coder_version": {
                    "description": "The Coder version of the server that the report was generated on.",
                    "type": "string"
                },
                "database": {
                    "$ref": "#/definitions/healthcheck.DatabaseReport"
                },
                "derp": {
                    "$ref": "#/definitions/healthcheck.DERPReport"
                },
                "failing_sections": {
                    "description": "FailingSections is a list of sections that have failed their healthcheck.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "healthy": {
                    "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"
                },
                "websocket": {
                    "$ref": "#/definitions/healthcheck.WebsocketReport"
                }
            }
        },
        "healthcheck.WebsocketReport": {
            "type": "object",
            "properties": {
                "body": {
                    "type": "string"
                },
                "code": {
                    "type": "integer"
                },
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "type": "boolean"
                }
            }
        },
        "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"
                }
            }
        },
        "sql.NullTime": {
            "type": "object",
            "properties": {
                "time": {
                    "type": "string"
                },
                "valid": {
                    "description": "Valid is true if Time is not NULL",
                    "type": "boolean"
                }
            }
        },
        "tailcfg.DERPHomeParams": {
            "type": "object",
            "properties": {
                "regionScore": {
                    "description": "RegionScore scales latencies of DERP regions by a given scaling\nfactor when determining which region to use as the home\n(\"preferred\") DERP. Scores in the range (0, 1) will cause this\nregion to be proportionally more preferred, and scores in the range\n(1, ∞) will penalize a region.\n\nIf a region is not present in this map, it is treated as having a\nscore of 1.0.\n\nScores should not be 0 or negative; such scores will be ignored.\n\nA nil map means no change from the previous value (if any); an empty\nnon-nil map can be sent to reset all scores back to 1.0.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "number"
                    }
                }
            }
        },
        "tailcfg.DERPMap": {
            "type": "object",
            "properties": {
                "homeParams": {
                    "description": "HomeParams, if non-nil, is a change in home parameters.\n\nThe rest of the DEPRMap fields, if zero, means unchanged.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/tailcfg.DERPHomeParams"
                        }
                    ]
                },
                "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.\n\nThis field is only meaningful if the Regions map is non-nil (indicating a change).",
                    "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": {
                "canPort80": {
                    "description": "CanPort80 specifies whether this DERP node is accessible over HTTP\non port 80 specifically. This is used for captive portal checks.",
                    "type": "boolean"
                },
                "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"
                }
            }
        },
        "workspaceapps.StatsReport": {
            "type": "object",
            "properties": {
                "access_method": {
                    "$ref": "#/definitions/workspaceapps.AccessMethod"
                },
                "agent_id": {
                    "type": "string"
                },
                "requests": {
                    "type": "integer"
                },
                "session_ended_at": {
                    "description": "Updated periodically while app is in use active and when the last connection is closed.",
                    "type": "string"
                },
                "session_id": {
                    "type": "string"
                },
                "session_started_at": {
                    "type": "string"
                },
                "slug_or_port": {
                    "type": "string"
                },
                "user_id": {
                    "type": "string"
                },
                "workspace_id": {
                    "type": "string"
                }
            }
        },
        "wsproxysdk.AgentIsLegacyResponse": {
            "type": "object",
            "properties": {
                "found": {
                    "type": "boolean"
                },
                "legacy": {
                    "type": "boolean"
                }
            }
        },
        "wsproxysdk.DeregisterWorkspaceProxyRequest": {
            "type": "object",
            "properties": {
                "replica_id": {
                    "description": "ReplicaID is a unique identifier for the replica of the proxy that is\nderegistering. It should be generated by the client on startup and\nshould've already been passed to the register endpoint.",
                    "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"
                },
                "derp_enabled": {
                    "description": "DerpEnabled indicates whether the proxy should be included in the DERP\nmap or not.",
                    "type": "boolean"
                },
                "derp_only": {
                    "description": "DerpOnly indicates whether the proxy should only be included in the DERP\nmap and should not be used for serving apps.",
                    "type": "boolean"
                },
                "hostname": {
                    "description": "ReplicaHostname is the OS hostname of the machine that the proxy is running\non.  This is only used for tracking purposes in the replicas table.",
                    "type": "string"
                },
                "replica_error": {
                    "description": "ReplicaError is the error that the replica encountered when trying to\ndial it's peers. This is stored in the replicas table for debugging\npurposes but does not affect the proxy's ability to register.\n\nThis value is only stored on subsequent requests to the register\nendpoint, not the first request.",
                    "type": "string"
                },
                "replica_id": {
                    "description": "ReplicaID is a unique identifier for the replica of the proxy that is\nregistering. It should be generated by the client on startup and\npersisted (in memory only) until the process is restarted.",
                    "type": "string"
                },
                "replica_relay_address": {
                    "description": "ReplicaRelayAddress is the DERP address of the replica that other\nreplicas may use to connect internally for DERP meshing.",
                    "type": "string"
                },
                "version": {
                    "description": "Version is the Coder version of the proxy.",
                    "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"
                },
                "derp_force_websockets": {
                    "type": "boolean"
                },
                "derp_map": {
                    "$ref": "#/definitions/tailcfg.DERPMap"
                },
                "derp_mesh_key": {
                    "type": "string"
                },
                "derp_region_id": {
                    "type": "integer"
                },
                "sibling_replicas": {
                    "description": "SiblingReplicas is a list of all other replicas of the proxy that have\nnot timed out.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.Replica"
                    }
                }
            }
        },
        "wsproxysdk.ReportAppStatsRequest": {
            "type": "object",
            "properties": {
                "stats": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/workspaceapps.StatsReport"
                    }
                }
            }
        }
    },
    "securityDefinitions": {
        "CoderSessionToken": {
            "type": "apiKey",
            "name": "Coder-Session-Token",
            "in": "header"
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "2.0",
	Host:             "",
	BasePath:         "/api/v2",
	Schemes:          []string{},
	Title:            "Coder API",
	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.",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
