// 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": [
                    "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"
                    },
                    {
                        "type": "integer",
                        "description": "Page limit",
                        "name": "limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "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"
                    }
                },
                "x-apidocgen": {
                    "skip": true
                }
            }
        },
        "/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/derp/traffic": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Debug"
                ],
                "summary": "Debug DERP traffic",
                "operationId": "debug-derp-traffic",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/derp.BytesSentRecv"
                            }
                        }
                    }
                },
                "x-apidocgen": {
                    "skip": true
                }
            }
        },
        "/debug/expvar": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Debug"
                ],
                "summary": "Debug expvar",
                "operationId": "debug-expvar",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                },
                "x-apidocgen": {
                    "skip": true
                }
            }
        },
        "/debug/health": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Debug"
                ],
                "summary": "Debug Info Deployment Health",
                "operationId": "debug-info-deployment-health",
                "parameters": [
                    {
                        "type": "boolean",
                        "description": "Force a healthcheck to run",
                        "name": "force",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/healthsdk.HealthcheckReport"
                        }
                    }
                }
            }
        },
        "/debug/health/settings": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Debug"
                ],
                "summary": "Get health settings",
                "operationId": "get-health-settings",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/healthsdk.HealthSettings"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Debug"
                ],
                "summary": "Update health settings",
                "operationId": "update-health-settings",
                "parameters": [
                    {
                        "description": "Update health settings",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/healthsdk.UpdateHealthSettings"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/healthsdk.UpdateHealthSettings"
                        }
                    }
                }
            }
        },
        "/debug/tailnet": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "text/html"
                ],
                "tags": [
                    "Debug"
                ],
                "summary": "Debug Info Tailnet",
                "operationId": "debug-info-tailnet",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/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
                }
            }
        },
        "/debug/{user}/debug-link": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Debug OIDC context for a user",
                "operationId": "debug-oidc-context-for-a-user",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID, name, or me",
                        "name": "user",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success"
                    }
                },
                "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 enabled experiments",
                "operationId": "get-enabled-experiments",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/codersdk.Experiment"
                            }
                        }
                    }
                }
            }
        },
        "/experiments/available": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "General"
                ],
                "summary": "Get safe experiments",
                "operationId": "get-safe-experiments",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/codersdk.Experiment"
                            }
                        }
                    }
                }
            }
        },
        "/external-auth": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Git"
                ],
                "summary": "Get user external auths",
                "operationId": "get-user-external-auths",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.ExternalAuthLink"
                        }
                    }
                }
            }
        },
        "/external-auth/{externalauth}": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Git"
                ],
                "summary": "Get external auth by ID",
                "operationId": "get-external-auth-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "string",
                        "description": "Git Provider ID",
                        "name": "externalauth",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.ExternalAuth"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Git"
                ],
                "summary": "Delete external auth user link by ID",
                "operationId": "delete-external-auth-user-link-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "string",
                        "description": "Git Provider ID",
                        "name": "externalauth",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/external-auth/{externalauth}/device": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Git"
                ],
                "summary": "Get external auth device by ID.",
                "operationId": "get-external-auth-device-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "string",
                        "description": "Git Provider ID",
                        "name": "externalauth",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.ExternalAuthDevice"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Git"
                ],
                "summary": "Post external auth device by ID",
                "operationId": "post-external-auth-device-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "string",
                        "description": "External Provider ID",
                        "name": "externalauth",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                }
            }
        },
        "/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` + "`" + ` or ` + "`" + `application/zip` + "`" + `",
                        "name": "Content-Type",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "File to be uploaded",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/codersdk.UploadResponse"
                        }
                    }
                }
            }
        },
        "/files/{fileID}": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Files"
                ],
                "summary": "Get file by ID",
                "operationId": "get-file-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "File ID",
                        "name": "fileID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/groups/{group}": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Get group by 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",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Start time",
                        "name": "before",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "End time",
                        "name": "after",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.TemplateInsightsResponse"
                        }
                    }
                }
            }
        },
        "/insights/user-activity": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Insights"
                ],
                "summary": "Get insights about user activity",
                "operationId": "get-insights-about-user-activity",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Start time",
                        "name": "before",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "End time",
                        "name": "after",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.UserActivityInsightsResponse"
                        }
                    }
                }
            }
        },
        "/insights/user-latency": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Insights"
                ],
                "summary": "Get insights about user latency",
                "operationId": "get-insights-about-user-latency",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Start time",
                        "name": "before",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "End time",
                        "name": "after",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.UserLatencyInsightsResponse"
                        }
                    }
                }
            }
        },
        "/integrations/jfrog/xray-scan": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Get JFrog XRay scan by workspace agent ID.",
                "operationId": "get-jfrog-xray-scan-by-workspace-agent-id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "workspace_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Agent ID",
                        "name": "agent_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.JFrogXrayScan"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Post JFrog XRay scan by workspace agent ID.",
                "operationId": "post-jfrog-xray-scan-by-workspace-agent-id",
                "parameters": [
                    {
                        "description": "Post JFrog XRay scan request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.JFrogXrayScan"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.Response"
                        }
                    }
                }
            }
        },
        "/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"
                    }
                }
            }
        },
        "/oauth2-provider/apps": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Get OAuth2 applications.",
                "operationId": "get-oauth2-applications",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Filter by applications authorized for a user",
                        "name": "user_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/codersdk.OAuth2ProviderApp"
                            }
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Create OAuth2 application.",
                "operationId": "create-oauth2-application",
                "parameters": [
                    {
                        "description": "The OAuth2 application to create.",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.PostOAuth2ProviderAppRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.OAuth2ProviderApp"
                        }
                    }
                }
            }
        },
        "/oauth2-provider/apps/{app}": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Get OAuth2 application.",
                "operationId": "get-oauth2-application",
                "parameters": [
                    {
                        "type": "string",
                        "description": "App ID",
                        "name": "app",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.OAuth2ProviderApp"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Update OAuth2 application.",
                "operationId": "update-oauth2-application",
                "parameters": [
                    {
                        "type": "string",
                        "description": "App ID",
                        "name": "app",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Update an OAuth2 application.",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.PutOAuth2ProviderAppRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.OAuth2ProviderApp"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Delete OAuth2 application.",
                "operationId": "delete-oauth2-application",
                "parameters": [
                    {
                        "type": "string",
                        "description": "App ID",
                        "name": "app",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                }
            }
        },
        "/oauth2-provider/apps/{app}/secrets": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Get OAuth2 application secrets.",
                "operationId": "get-oauth2-application-secrets",
                "parameters": [
                    {
                        "type": "string",
                        "description": "App ID",
                        "name": "app",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/codersdk.OAuth2ProviderAppSecret"
                            }
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Create OAuth2 application secret.",
                "operationId": "create-oauth2-application-secret",
                "parameters": [
                    {
                        "type": "string",
                        "description": "App ID",
                        "name": "app",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/codersdk.OAuth2ProviderAppSecretFull"
                            }
                        }
                    }
                }
            }
        },
        "/oauth2-provider/apps/{app}/secrets/{secretID}": {
            "delete": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Delete OAuth2 application secret.",
                "operationId": "delete-oauth2-application-secret",
                "parameters": [
                    {
                        "type": "string",
                        "description": "App ID",
                        "name": "app",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Secret ID",
                        "name": "secretID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                }
            }
        },
        "/oauth2/authorize": {
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "OAuth2 authorization request.",
                "operationId": "oauth2-authorization-request",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Client ID",
                        "name": "client_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "A random unguessable string",
                        "name": "state",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "code"
                        ],
                        "type": "string",
                        "description": "Response type",
                        "name": "response_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Redirect here after authorization",
                        "name": "redirect_uri",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Token scopes (currently ignored)",
                        "name": "scope",
                        "in": "query"
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Found"
                    }
                }
            }
        },
        "/oauth2/tokens": {
            "post": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "OAuth2 token exchange.",
                "operationId": "oauth2-token-exchange",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Client ID, required if grant_type=authorization_code",
                        "name": "client_id",
                        "in": "formData"
                    },
                    {
                        "type": "string",
                        "description": "Client secret, required if grant_type=authorization_code",
                        "name": "client_secret",
                        "in": "formData"
                    },
                    {
                        "type": "string",
                        "description": "Authorization code, required if grant_type=authorization_code",
                        "name": "code",
                        "in": "formData"
                    },
                    {
                        "type": "string",
                        "description": "Refresh token, required if grant_type=refresh_token",
                        "name": "refresh_token",
                        "in": "formData"
                    },
                    {
                        "enum": [
                            "authorization_code",
                            "refresh_token"
                        ],
                        "type": "string",
                        "description": "Grant type",
                        "name": "grant_type",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/oauth2.Token"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Enterprise"
                ],
                "summary": "Delete OAuth2 application tokens.",
                "operationId": "delete-oauth2-application-tokens",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Client ID",
                        "name": "client_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                }
            }
        },
        "/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": []
                    }
                ],
                "description": "Create a new workspace using a template. The request must\nspecify either the Template ID or the Template Version ID,\nnot both. If the Template ID is specified, the active version\nof the template will be used.",
                "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": "boolean",
                        "description": "Include archived versions in the list",
                        "name": "include_archived",
                        "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/archive": {
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Templates"
                ],
                "summary": "Archive template unused versions by template id",
                "operationId": "archive-template-unused-versions-by-template-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Template ID",
                        "name": "template",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Archive request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.ArchiveTemplateVersionsRequest"
                        }
                    }
                ],
                "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}/archive": {
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Templates"
                ],
                "summary": "Archive template version",
                "operationId": "archive-template-version",
                "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}/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}/external-auth": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Templates"
                ],
                "summary": "Get external auth by template version",
                "operationId": "get-external-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.TemplateVersionExternalAuth"
                            }
                        }
                    }
                }
            }
        },
        "/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}/unarchive": {
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Templates"
                ],
                "summary": "Unarchive template version",
                "operationId": "unarchive-template-version",
                "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}/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, username, 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}/appearance": {
            "put": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Update user appearance settings",
                "operationId": "update-user-appearance-settings",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID, name, or me",
                        "name": "user",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "New appearance settings",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.UpdateUserAppearanceSettingsRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.User"
                        }
                    }
                }
            }
        },
        "/users/{user}/autofill-parameters": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Get autofill build parameters for user",
                "operationId": "get-autofill-build-parameters-for-user",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID, username, or me",
                        "name": "user",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Template ID",
                        "name": "template_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/codersdk.UserParameter"
                            }
                        }
                    }
                }
            }
        },
        "/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/workspacesdk.AgentConnectionInfo"
                        }
                    }
                },
                "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/external-auth": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Get workspace agent external auth",
                "operationId": "get-workspace-agent-external-auth",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Match",
                        "name": "match",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Provider ID",
                        "name": "id",
                        "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.ExternalAuthResponse"
                        }
                    }
                }
            }
        },
        "/workspaceagents/me/gitauth": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Removed: Get workspace agent git auth",
                "operationId": "removed-get-workspace-agent-git-auth",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Match",
                        "name": "match",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Provider ID",
                        "name": "id",
                        "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.ExternalAuthResponse"
                        }
                    }
                }
            }
        },
        "/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": {
            "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": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/agentsdk.PostMetadataRequest"
                            }
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    }
                },
                "x-apidocgen": {
                    "skip": true
                }
            }
        },
        "/workspaceagents/me/metadata/{key}": {
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Removed: Submit workspace agent metadata",
                "operationId": "removed-submit-workspace-agent-metadata",
                "parameters": [
                    {
                        "description": "Workspace agent metadata request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/agentsdk.PostMetadataRequestDeprecated"
                        }
                    },
                    {
                        "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",
                "deprecated": true,
                "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/rpc": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Workspace agent RPC API",
                "operationId": "workspace-agent-rpc-api",
                "responses": {
                    "101": {
                        "description": "Switching Protocols"
                    }
                },
                "x-apidocgen": {
                    "skip": true
                }
            }
        },
        "/workspaceagents/me/startup": {
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Submit workspace agent startup",
                "operationId": "submit-workspace-agent-startup",
                "parameters": [
                    {
                        "description": "Startup request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/agentsdk.PostStartupRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "x-apidocgen": {
                    "skip": true
                }
            }
        },
        "/workspaceagents/me/startup-logs": {
            "patch": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "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/workspacesdk.AgentConnectionInfo"
                        }
                    }
                }
            }
        },
        "/workspaceagents/{workspaceagent}/coordinate": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Coordinate workspace agent",
                "operationId": "coordinate-workspace-agent",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace agent ID",
                        "name": "workspaceagent",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "101": {
                        "description": "Switching Protocols"
                    }
                }
            }
        },
        "/workspaceagents/{workspaceagent}/listening-ports": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Agents"
                ],
                "summary": "Get listening ports for workspace agent",
                "operationId": "get-listening-ports-for-workspace-agent",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace agent ID",
                        "name": "workspaceagent",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.WorkspaceAgentListeningPortsResponse"
                        }
                    }
                }
            }
        },
        "/workspaceagents/{workspaceagent}/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": "Removed: Get workspace resources for workspace build",
                "operationId": "removed-get-workspace-resources-for-workspace-build",
                "deprecated": true,
                "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, dormant, last_used_after, last_used_before.",
                        "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}/autoupdates": {
            "put": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "Workspaces"
                ],
                "summary": "Update workspace automatic updates by ID",
                "operationId": "update-workspace-automatic-updates-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace ID",
                        "name": "workspace",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Automatic updates request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.UpdateWorkspaceAutomaticUpdatesRequest"
                        }
                    }
                ],
                "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}/favorite": {
            "put": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Workspaces"
                ],
                "summary": "Favorite workspace by ID.",
                "operationId": "favorite-workspace-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace ID",
                        "name": "workspace",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Workspaces"
                ],
                "summary": "Unfavorite workspace by ID.",
                "operationId": "unfavorite-workspace-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace ID",
                        "name": "workspace",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                }
            }
        },
        "/workspaces/{workspace}/port-share": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "PortSharing"
                ],
                "summary": "Get workspace agent port shares",
                "operationId": "get-workspace-agent-port-shares",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace ID",
                        "name": "workspace",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.WorkspaceAgentPortShares"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "PortSharing"
                ],
                "summary": "Upsert workspace agent port share",
                "operationId": "upsert-workspace-agent-port-share",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace ID",
                        "name": "workspace",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Upsert port sharing level request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.UpsertWorkspaceAgentPortShareRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.WorkspaceAgentPortShare"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "PortSharing"
                ],
                "summary": "Get workspace agent port shares",
                "operationId": "get-workspace-agent-port-shares",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace ID",
                        "name": "workspace",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Delete port sharing level request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/codersdk.DeleteWorkspaceAgentPortShareRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/workspaces/{workspace}/resolve-autostart": {
            "get": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Workspaces"
                ],
                "summary": "Resolve workspace autostart by id.",
                "operationId": "resolve-workspace-autostart-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace ID",
                        "name": "workspace",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/codersdk.ResolveAutostartResponse"
                        }
                    }
                }
            }
        },
        "/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}/usage": {
            "post": {
                "security": [
                    {
                        "CoderSessionToken": []
                    }
                ],
                "tags": [
                    "Workspaces"
                ],
                "summary": "Post Workspace Usage by ID",
                "operationId": "post-workspace-usage-by-id",
                "parameters": [
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Workspace ID",
                        "name": "workspace",
                        "in": "path",
                        "required": true
                    }
                ],
                "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.ExternalAuthResponse": {
            "type": "object",
            "properties": {
                "access_token": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "token_extra": {
                    "type": "object",
                    "additionalProperties": true
                },
                "type": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                },
                "username": {
                    "description": "Deprecated: Only supported on ` + "`" + `/workspaceagents/me/gitauth` + "`" + `\nfor backwards compatibility.",
                    "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"
                }
            }
        },
        "agentsdk.Manifest": {
            "type": "object",
            "properties": {
                "agent_id": {
                    "type": "string"
                },
                "agent_name": {
                    "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"
                },
                "owner_name": {
                    "description": "OwnerName and WorkspaceID are used by an open-source user to identify the workspace.\nWe do not provide insurance that this will not be removed in the future,\nbut if it's easy to persist lets keep it around.",
                    "type": "string"
                },
                "scripts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.WorkspaceAgentScript"
                    }
                },
                "vscode_port_proxy_uri": {
                    "type": "string"
                },
                "workspace_id": {
                    "type": "string"
                },
                "workspace_name": {
                    "type": "string"
                }
            }
        },
        "agentsdk.Metadata": {
            "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"
                },
                "key": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "agentsdk.PatchLogs": {
            "type": "object",
            "properties": {
                "log_source_id": {
                    "type": "string"
                },
                "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": {
                "metadata": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/agentsdk.Metadata"
                    }
                }
            }
        },
        "agentsdk.PostMetadataRequestDeprecated": {
            "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"
                }
            }
        },
        "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.ReducedUser"
                    }
                }
            }
        },
        "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": {
                "application_name": {
                    "type": "string"
                },
                "logo_url": {
                    "type": "string"
                },
                "service_banner": {
                    "$ref": "#/definitions/codersdk.ServiceBannerConfig"
                },
                "support_links": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.LinkConfig"
                    }
                }
            }
        },
        "codersdk.ArchiveTemplateVersionsRequest": {
            "type": "object",
            "properties": {
                "all": {
                    "description": "By default, only failed versions are archived. Set this to true\nto archive all unused versions regardless of job status.",
                    "type": "boolean"
                }
            }
        },
        "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"
                },
                "terms_of_service_url": {
                    "type": "string"
                }
            }
        },
        "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.AutomaticUpdates": {
            "type": "string",
            "enum": [
                "always",
                "never"
            ],
            "x-enum-varnames": [
                "AutomaticUpdatesAlways",
                "AutomaticUpdatesNever"
            ]
        },
        "codersdk.BuildInfoResponse": {
            "type": "object",
            "properties": {
                "agent_api_version": {
                    "description": "AgentAPIVersion is the current version of the Agent API (back versions\nMAY still be supported).",
                    "type": "string"
                },
                "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"
                },
                "deployment_id": {
                    "description": "DeploymentID is the unique identifier for this deployment.",
                    "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"
                },
                "upgrade_message": {
                    "description": "UpgradeMessage is the message displayed to users when an outdated client\nis detected.",
                    "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"
                },
                "trial_info": {
                    "$ref": "#/definitions/codersdk.CreateFirstUserTrialInfo"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "codersdk.CreateFirstUserResponse": {
            "type": "object",
            "properties": {
                "organization_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "user_id": {
                    "type": "string",
                    "format": "uuid"
                }
            }
        },
        "codersdk.CreateFirstUserTrialInfo": {
            "type": "object",
            "properties": {
                "company_name": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "developers": {
                    "type": "string"
                },
                "first_name": {
                    "type": "string"
                },
                "job_title": {
                    "type": "string"
                },
                "last_name": {
                    "type": "string"
                },
                "phone_number": {
                    "type": "string"
                }
            }
        },
        "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": {
                "activity_bump_ms": {
                    "description": "ActivityBumpMillis allows optionally specifying the activity bump\nduration for all workspaces created from this template. Defaults to 1h\nbut can be set to 0 to disable activity bumping.",
                    "type": "integer"
                },
                "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"
                },
                "autostart_requirement": {
                    "description": "AutostartRequirement allows optionally specifying the autostart allowed days\nfor workspaces created from this template. This is an enterprise feature.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.TemplateAutostartRequirement"
                        }
                    ]
                },
                "autostop_requirement": {
                    "description": "AutostopRequirement allows optionally specifying the autostop requirement\nfor workspaces created from this template. This is an enterprise feature.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.TemplateAutostopRequirement"
                        }
                    ]
                },
                "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"
                },
                "name": {
                    "description": "Name is the name of the template.",
                    "type": "string"
                },
                "require_active_version": {
                    "description": "RequireActiveVersion mandates that workspaces are built with the active\ntemplate version.",
                    "type": "boolean"
                },
                "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": {
            "description": "CreateWorkspaceRequest provides options for creating a new workspace. Only one of TemplateID or TemplateVersionID can be specified, not both. If TemplateID is specified, the active version of the template will be used.",
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "automatic_updates": {
                    "$ref": "#/definitions/codersdk.AutomaticUpdates"
                },
                "autostart_schedule": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "rich_parameter_values": {
                    "description": "RichParameterValues allows for additional parameters to be provided\nduring the initial provision.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.WorkspaceBuildParameter"
                    }
                },
                "template_id": {
                    "description": "TemplateID specifies which template should be used for creating the workspace.",
                    "type": "string",
                    "format": "uuid"
                },
                "template_version_id": {
                    "description": "TemplateVersionID can be used to specify a specific version of a template for creating the workspace.",
                    "type": "string",
                    "format": "uuid"
                },
                "ttl_ms": {
                    "type": "integer"
                }
            }
        },
        "codersdk.DAUEntry": {
            "type": "object",
            "properties": {
                "amount": {
                    "type": "integer"
                },
                "date": {
                    "description": "Date is a string formatted as 2024-01-31.\nTimezone and time information is not included.",
                    "type": "string"
                }
            }
        },
        "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/serpent.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.DeleteWorkspaceAgentPortShareRequest": {
            "type": "object",
            "properties": {
                "agent_name": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                }
            }
        },
        "codersdk.DeploymentConfig": {
            "type": "object",
            "properties": {
                "config": {
                    "$ref": "#/definitions/codersdk.DeploymentValues"
                },
                "options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serpent.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/serpent.URL"
                },
                "address": {
                    "description": "DEPRECATED: Use HTTPAddress or TLS.Address instead.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/serpent.HostPort"
                        }
                    ]
                },
                "agent_fallback_troubleshooting_url": {
                    "$ref": "#/definitions/serpent.URL"
                },
                "agent_stat_refresh_interval": {
                    "type": "integer"
                },
                "allow_workspace_renames": {
                    "type": "boolean"
                },
                "autobuild_poll_interval": {
                    "type": "integer"
                },
                "browser_only": {
                    "type": "boolean"
                },
                "cache_directory": {
                    "type": "string"
                },
                "cli_upgrade_message": {
                    "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"
                },
                "docs_url": {
                    "$ref": "#/definitions/serpent.URL"
                },
                "enable_terraform_debug_mode": {
                    "type": "boolean"
                },
                "experiments": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "external_auth": {
                    "$ref": "#/definitions/serpent.Struct-array_codersdk_ExternalAuthConfig"
                },
                "external_token_encryption_keys": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "healthcheck": {
                    "$ref": "#/definitions/codersdk.HealthcheckConfig"
                },
                "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"
                },
                "metrics_cache_refresh_interval": {
                    "type": "integer"
                },
                "oauth2": {
                    "$ref": "#/definitions/codersdk.OAuth2Config"
                },
                "oidc": {
                    "$ref": "#/definitions/codersdk.OIDCConfig"
                },
                "pg_auth": {
                    "type": "string"
                },
                "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"
                },
                "session_lifetime": {
                    "$ref": "#/definitions/codersdk.SessionLifetime"
                },
                "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"
                },
                "terms_of_service_url": {
                    "type": "string"
                },
                "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"
                },
                "web_terminal_renderer": {
                    "type": "string"
                },
                "wgtunnel_host": {
                    "type": "string"
                },
                "wildcard_access_url": {
                    "type": "string"
                },
                "write_config": {
                    "type": "boolean"
                }
            }
        },
        "codersdk.DisplayApp": {
            "type": "string",
            "enum": [
                "vscode",
                "vscode_insiders",
                "web_terminal",
                "port_forwarding_helper",
                "ssh_helper"
            ],
            "x-enum-varnames": [
                "DisplayAppVSCodeDesktop",
                "DisplayAppVSCodeInsiders",
                "DisplayAppWebTerminal",
                "DisplayAppPortForward",
                "DisplayAppSSH"
            ]
        },
        "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": [
                "example",
                "auto-fill-parameters"
            ],
            "x-enum-comments": {
                "ExperimentAutoFillParameters": "This should not be taken out of experiments until we have redesigned the feature.",
                "ExperimentExample": "This isn't used for anything."
            },
            "x-enum-varnames": [
                "ExperimentExample",
                "ExperimentAutoFillParameters"
            ]
        },
        "codersdk.ExternalAuth": {
            "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"
                },
                "display_name": {
                    "type": "string"
                },
                "installations": {
                    "description": "AppInstallations are the installations that the user has access to.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.ExternalAuthAppInstallation"
                    }
                },
                "user": {
                    "description": "User is the user that authenticated with the provider.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.ExternalAuthUser"
                        }
                    ]
                }
            }
        },
        "codersdk.ExternalAuthAppInstallation": {
            "type": "object",
            "properties": {
                "account": {
                    "$ref": "#/definitions/codersdk.ExternalAuthUser"
                },
                "configure_url": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                }
            }
        },
        "codersdk.ExternalAuthConfig": {
            "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"
                },
                "display_icon": {
                    "description": "DisplayIcon is a URL to an icon to display in the UI.",
                    "type": "string"
                },
                "display_name": {
                    "description": "DisplayName is shown in the UI to identify the auth config.",
                    "type": "string"
                },
                "extra_token_keys": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "id": {
                    "description": "ID is a unique identifier for the auth config.\nIt defaults to ` + "`" + `type` + "`" + ` when not provided.",
                    "type": "string"
                },
                "no_refresh": {
                    "type": "boolean"
                },
                "regex": {
                    "description": "Regex allows API requesters to match an auth config by\na string (e.g. coder.com) instead of by it's type.\n\nGit clone makes use of this by parsing the URL from:\n'Username for \"https://github.com\":'\nAnd sending it to the Coder server to match against the Regex.",
                    "type": "string"
                },
                "scopes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "token_url": {
                    "type": "string"
                },
                "type": {
                    "description": "Type is the type of external auth config.",
                    "type": "string"
                },
                "validate_url": {
                    "type": "string"
                }
            }
        },
        "codersdk.ExternalAuthDevice": {
            "type": "object",
            "properties": {
                "device_code": {
                    "type": "string"
                },
                "expires_in": {
                    "type": "integer"
                },
                "interval": {
                    "type": "integer"
                },
                "user_code": {
                    "type": "string"
                },
                "verification_uri": {
                    "type": "string"
                }
            }
        },
        "codersdk.ExternalAuthLink": {
            "type": "object",
            "properties": {
                "authenticated": {
                    "type": "boolean"
                },
                "created_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "expires": {
                    "type": "string",
                    "format": "date-time"
                },
                "has_refresh_token": {
                    "type": "boolean"
                },
                "provider_id": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "validate_error": {
                    "type": "string"
                }
            }
        },
        "codersdk.ExternalAuthUser": {
            "type": "object",
            "properties": {
                "avatar_url": {
                    "type": "string"
                },
                "login": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "profile_url": {
                    "type": "string"
                }
            }
        },
        "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.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.ReducedUser"
                    }
                },
                "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.HealthcheckConfig": {
            "type": "object",
            "properties": {
                "refresh": {
                    "type": "integer"
                },
                "threshold_database": {
                    "type": "integer"
                }
            }
        },
        "codersdk.InsightsReportInterval": {
            "type": "string",
            "enum": [
                "day",
                "week"
            ],
            "x-enum-varnames": [
                "InsightsReportIntervalDay",
                "InsightsReportIntervalWeek"
            ]
        },
        "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.JFrogXrayScan": {
            "type": "object",
            "properties": {
                "agent_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "critical": {
                    "type": "integer"
                },
                "high": {
                    "type": "integer"
                },
                "medium": {
                    "type": "integer"
                },
                "results_url": {
                    "type": "string"
                },
                "workspace_id": {
                    "type": "string",
                    "format": "uuid"
                }
            }
        },
        "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",
                    "enum": [
                        "bug",
                        "chat",
                        "docs"
                    ]
                },
                "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.OAuth2AppEndpoints": {
            "type": "object",
            "properties": {
                "authorization": {
                    "type": "string"
                },
                "device_authorization": {
                    "description": "DeviceAuth is optional.",
                    "type": "string"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "codersdk.OAuth2Config": {
            "type": "object",
            "properties": {
                "github": {
                    "$ref": "#/definitions/codersdk.OAuth2GithubConfig"
                }
            }
        },
        "codersdk.OAuth2GithubConfig": {
            "type": "object",
            "properties": {
                "allow_everyone": {
                    "type": "boolean"
                },
                "allow_signups": {
                    "type": "boolean"
                },
                "allowed_orgs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "allowed_teams": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "client_id": {
                    "type": "string"
                },
                "client_secret": {
                    "type": "string"
                },
                "enterprise_base_url": {
                    "type": "string"
                }
            }
        },
        "codersdk.OAuth2ProviderApp": {
            "type": "object",
            "properties": {
                "callback_url": {
                    "type": "string"
                },
                "endpoints": {
                    "description": "Endpoints are included in the app response for easier discovery. The OAuth2\nspec does not have a defined place to find these (for comparison, OIDC has\na '/.well-known/openid-configuration' endpoint).",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.OAuth2AppEndpoints"
                        }
                    ]
                },
                "icon": {
                    "type": "string"
                },
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "codersdk.OAuth2ProviderAppSecret": {
            "type": "object",
            "properties": {
                "client_secret_truncated": {
                    "type": "string"
                },
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "last_used_at": {
                    "type": "string"
                }
            }
        },
        "codersdk.OAuth2ProviderAppSecretFull": {
            "type": "object",
            "properties": {
                "client_secret_full": {
                    "type": "string"
                },
                "id": {
                    "type": "string",
                    "format": "uuid"
                }
            }
        },
        "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_allow_list": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "group_auto_create": {
                    "type": "boolean"
                },
                "group_mapping": {
                    "type": "object"
                },
                "group_regex_filter": {
                    "$ref": "#/definitions/serpent.Regexp"
                },
                "groups_field": {
                    "type": "string"
                },
                "icon_url": {
                    "$ref": "#/definitions/serpent.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"
                },
                "signups_disabled_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",
                "is_default",
                "name",
                "updated_at"
            ],
            "properties": {
                "created_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "is_default": {
                    "type": "boolean"
                },
                "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.PostOAuth2ProviderAppRequest": {
            "type": "object",
            "required": [
                "callback_url",
                "name"
            ],
            "properties": {
                "callback_url": {
                    "type": "string"
                },
                "icon": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "codersdk.PprofConfig": {
            "type": "object",
            "properties": {
                "address": {
                    "$ref": "#/definitions/serpent.HostPort"
                },
                "enable": {
                    "type": "boolean"
                }
            }
        },
        "codersdk.PrometheusConfig": {
            "type": "object",
            "properties": {
                "address": {
                    "$ref": "#/definitions/serpent.HostPort"
                },
                "aggregate_agent_stats_by": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "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": {
                "api_version": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "last_seen_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "name": {
                    "type": "string"
                },
                "provisioners": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "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",
                "unknown"
            ],
            "x-enum-varnames": [
                "ProvisionerJobPending",
                "ProvisionerJobRunning",
                "ProvisionerJobSucceeded",
                "ProvisionerJobCanceling",
                "ProvisionerJobCanceled",
                "ProvisionerJobFailed",
                "ProvisionerJobUnknown"
            ]
        },
        "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.PutOAuth2ProviderAppRequest": {
            "type": "object",
            "required": [
                "callback_url",
                "name"
            ],
            "properties": {
                "callback_url": {
                    "type": "string"
                },
                "icon": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "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",
                "user_workspace_build_parameters",
                "organization_member",
                "license",
                "deployment_config",
                "deployment_stats",
                "replicas",
                "debug_info",
                "system",
                "template_insights"
            ],
            "x-enum-varnames": [
                "ResourceWorkspace",
                "ResourceWorkspaceProxy",
                "ResourceWorkspaceExecution",
                "ResourceWorkspaceApplicationConnect",
                "ResourceAuditLog",
                "ResourceTemplate",
                "ResourceGroup",
                "ResourceFile",
                "ResourceProvisionerDaemon",
                "ResourceOrganization",
                "ResourceRoleAssignment",
                "ResourceOrgRoleAssignment",
                "ResourceAPIKey",
                "ResourceUser",
                "ResourceUserData",
                "ResourceUserWorkspaceBuildParameters",
                "ResourceOrganizationMember",
                "ResourceLicense",
                "ResourceDeploymentValues",
                "ResourceDeploymentStats",
                "ResourceReplicas",
                "ResourceDebugInfo",
                "ResourceSystem",
                "ResourceTemplateInsights"
            ]
        },
        "codersdk.RateLimitConfig": {
            "type": "object",
            "properties": {
                "api": {
                    "type": "integer"
                },
                "disable_all": {
                    "type": "boolean"
                }
            }
        },
        "codersdk.ReducedUser": {
            "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"
                },
                "name": {
                    "type": "string"
                },
                "status": {
                    "enum": [
                        "active",
                        "suspended"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.UserStatus"
                        }
                    ]
                },
                "theme_preference": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "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.ResolveAutostartResponse": {
            "type": "object",
            "properties": {
                "parameter_mismatch": {
                    "type": "boolean"
                }
            }
        },
        "codersdk.ResourceType": {
            "type": "string",
            "enum": [
                "template",
                "template_version",
                "user",
                "workspace",
                "workspace_build",
                "git_ssh_key",
                "api_key",
                "group",
                "license",
                "convert_login",
                "health_settings",
                "workspace_proxy",
                "organization",
                "oauth2_provider_app",
                "oauth2_provider_app_secret"
            ],
            "x-enum-varnames": [
                "ResourceTypeTemplate",
                "ResourceTypeTemplateVersion",
                "ResourceTypeUser",
                "ResourceTypeWorkspace",
                "ResourceTypeWorkspaceBuild",
                "ResourceTypeGitSSHKey",
                "ResourceTypeAPIKey",
                "ResourceTypeGroup",
                "ResourceTypeLicense",
                "ResourceTypeConvertLogin",
                "ResourceTypeHealthSettings",
                "ResourceTypeWorkspaceProxy",
                "ResourceTypeOrganization",
                "ResourceTypeOAuth2ProviderApp",
                "ResourceTypeOAuth2ProviderAppSecret"
            ]
        },
        "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.SessionLifetime": {
            "type": "object",
            "properties": {
                "default_duration": {
                    "description": "DefaultDuration is for api keys, not tokens.",
                    "type": "integer"
                },
                "disable_expiry_refresh": {
                    "description": "DisableExpiryRefresh will disable automatically refreshing api\nkeys when they are used from the api. This means the api key lifetime at\ncreation is the lifetime of the api key.",
                    "type": "boolean"
                },
                "max_token_lifetime": {
                    "type": "integer"
                }
            }
        },
        "codersdk.SupportConfig": {
            "type": "object",
            "properties": {
                "links": {
                    "$ref": "#/definitions/serpent.Struct-array_codersdk_LinkConfig"
                }
            }
        },
        "codersdk.SwaggerConfig": {
            "type": "object",
            "properties": {
                "enable": {
                    "type": "boolean"
                }
            }
        },
        "codersdk.TLSConfig": {
            "type": "object",
            "properties": {
                "address": {
                    "$ref": "#/definitions/serpent.HostPort"
                },
                "allow_insecure_ciphers": {
                    "type": "boolean"
                },
                "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"
                },
                "supported_ciphers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "codersdk.TelemetryConfig": {
            "type": "object",
            "properties": {
                "enable": {
                    "type": "boolean"
                },
                "trace": {
                    "type": "boolean"
                },
                "url": {
                    "$ref": "#/definitions/serpent.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"
                },
                "activity_bump_ms": {
                    "type": "integer"
                },
                "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"
                },
                "autostart_requirement": {
                    "$ref": "#/definitions/codersdk.TemplateAutostartRequirement"
                },
                "autostop_requirement": {
                    "description": "AutostopRequirement and AutostartRequirement are enterprise features. Its\nvalue is only used if your license is entitled to use the advanced template\nscheduling feature.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.TemplateAutostopRequirement"
                        }
                    ]
                },
                "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"
                },
                "deprecated": {
                    "type": "boolean"
                },
                "deprecation_message": {
                    "type": "string"
                },
                "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_port_share_level": {
                    "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel"
                },
                "name": {
                    "type": "string"
                },
                "organization_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "provisioner": {
                    "type": "string",
                    "enum": [
                        "terraform"
                    ]
                },
                "require_active_version": {
                    "description": "RequireActiveVersion mandates that workspaces are built with the active\ntemplate version.",
                    "type": "boolean"
                },
                "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.TemplateAutostartRequirement": {
            "type": "object",
            "properties": {
                "days_of_week": {
                    "description": "DaysOfWeek is a list of days of the week in which autostart is allowed\nto happen. If no days are specified, autostart is not allowed.",
                    "type": "array",
                    "items": {
                        "type": "string",
                        "enum": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ]
                    }
                }
            }
        },
        "codersdk.TemplateAutostopRequirement": {
            "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.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": {
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.InsightsReportInterval"
                        }
                    ],
                    "example": "week"
                },
                "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.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"
                },
                "name": {
                    "type": "string"
                },
                "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"
                        }
                    ]
                },
                "theme_preference": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "codersdk.TemplateVersion": {
            "type": "object",
            "properties": {
                "archived": {
                    "type": "boolean"
                },
                "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.TemplateVersionExternalAuth": {
            "type": "object",
            "properties": {
                "authenticate_url": {
                    "type": "string"
                },
                "authenticated": {
                    "type": "boolean"
                },
                "display_icon": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "optional": {
                    "type": "boolean"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "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"
                },
                "data_dog": {
                    "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": {
                "application_name": {
                    "type": "string"
                },
                "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.UpdateUserAppearanceSettingsRequest": {
            "type": "object",
            "required": [
                "theme_preference"
            ],
            "properties": {
                "theme_preference": {
                    "type": "string"
                }
            }
        },
        "codersdk.UpdateUserPasswordRequest": {
            "type": "object",
            "required": [
                "password"
            ],
            "properties": {
                "old_password": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                }
            }
        },
        "codersdk.UpdateUserProfileRequest": {
            "type": "object",
            "required": [
                "username"
            ],
            "properties": {
                "name": {
                    "type": "string"
                },
                "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 schedule.\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.UpdateWorkspaceAutomaticUpdatesRequest": {
            "type": "object",
            "properties": {
                "automatic_updates": {
                    "$ref": "#/definitions/codersdk.AutomaticUpdates"
                }
            }
        },
        "codersdk.UpdateWorkspaceAutostartRequest": {
            "type": "object",
            "properties": {
                "schedule": {
                    "description": "Schedule is expected to be of the form ` + "`" + `CRON_TZ=\u003cIANA Timezone\u003e \u003cmin\u003e \u003chour\u003e * * \u003cdow\u003e` + "`" + `\nExample: ` + "`" + `CRON_TZ=US/Central 30 9 * * 1-5` + "`" + ` represents 0930 in the timezone US/Central\non weekdays (Mon-Fri). ` + "`" + `CRON_TZ` + "`" + ` defaults to UTC if not present.",
                    "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.UpsertWorkspaceAgentPortShareRequest": {
            "type": "object",
            "properties": {
                "agent_name": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                },
                "protocol": {
                    "enum": [
                        "http",
                        "https"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareProtocol"
                        }
                    ]
                },
                "share_level": {
                    "enum": [
                        "owner",
                        "authenticated",
                        "public"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel"
                        }
                    ]
                }
            }
        },
        "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"
                },
                "name": {
                    "type": "string"
                },
                "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"
                        }
                    ]
                },
                "theme_preference": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "codersdk.UserActivity": {
            "type": "object",
            "properties": {
                "avatar_url": {
                    "type": "string",
                    "format": "uri"
                },
                "seconds": {
                    "type": "integer",
                    "example": 80500
                },
                "template_ids": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    }
                },
                "user_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "codersdk.UserActivityInsightsReport": {
            "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.UserActivity"
                    }
                }
            }
        },
        "codersdk.UserActivityInsightsResponse": {
            "type": "object",
            "properties": {
                "report": {
                    "$ref": "#/definitions/codersdk.UserActivityInsightsReport"
                }
            }
        },
        "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.UserParameter": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "codersdk.UserQuietHoursScheduleConfig": {
            "type": "object",
            "properties": {
                "allow_user_custom": {
                    "type": "boolean"
                },
                "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_can_set": {
                    "description": "UserCanSet is true if the user is allowed to set their own quiet hours\nschedule. If false, the user cannot set a custom schedule and the default\nschedule will always be used.",
                    "type": "boolean"
                },
                "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": {
                "allow_renames": {
                    "type": "boolean"
                },
                "automatic_updates": {
                    "enum": [
                        "always",
                        "never"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.AutomaticUpdates"
                        }
                    ]
                },
                "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"
                },
                "favorite": {
                    "type": "boolean"
                },
                "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_avatar_url": {
                    "type": "string"
                },
                "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"
                },
                "template_require_active_version": {
                    "type": "boolean"
                },
                "ttl_ms": {
                    "type": "integer"
                },
                "updated_at": {
                    "type": "string",
                    "format": "date-time"
                }
            }
        },
        "codersdk.WorkspaceAgent": {
            "type": "object",
            "properties": {
                "api_version": {
                    "type": "string"
                },
                "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"
                },
                "display_apps": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.DisplayApp"
                    }
                },
                "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"
                },
                "log_sources": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.WorkspaceAgentLogSource"
                    }
                },
                "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"
                },
                "scripts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.WorkspaceAgentScript"
                    }
                },
                "started_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "startup_script_behavior": {
                    "description": "StartupScriptBehavior is a legacy field that is deprecated in favor\nof the ` + "`" + `coder_script` + "`" + ` resource. It's only referenced by old clients.\nDeprecated: Remove in the future!",
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.WorkspaceAgentStartupScriptBehavior"
                        }
                    ]
                },
                "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.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"
                },
                "source_id": {
                    "type": "string",
                    "format": "uuid"
                }
            }
        },
        "codersdk.WorkspaceAgentLogSource": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "display_name": {
                    "type": "string"
                },
                "icon": {
                    "type": "string"
                },
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "workspace_agent_id": {
                    "type": "string",
                    "format": "uuid"
                }
            }
        },
        "codersdk.WorkspaceAgentMetadataDescription": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "interval": {
                    "type": "integer"
                },
                "key": {
                    "type": "string"
                },
                "script": {
                    "type": "string"
                },
                "timeout": {
                    "type": "integer"
                }
            }
        },
        "codersdk.WorkspaceAgentPortShare": {
            "type": "object",
            "properties": {
                "agent_name": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                },
                "protocol": {
                    "enum": [
                        "http",
                        "https"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareProtocol"
                        }
                    ]
                },
                "share_level": {
                    "enum": [
                        "owner",
                        "authenticated",
                        "public"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel"
                        }
                    ]
                },
                "workspace_id": {
                    "type": "string",
                    "format": "uuid"
                }
            }
        },
        "codersdk.WorkspaceAgentPortShareLevel": {
            "type": "string",
            "enum": [
                "owner",
                "authenticated",
                "public"
            ],
            "x-enum-varnames": [
                "WorkspaceAgentPortShareLevelOwner",
                "WorkspaceAgentPortShareLevelAuthenticated",
                "WorkspaceAgentPortShareLevelPublic"
            ]
        },
        "codersdk.WorkspaceAgentPortShareProtocol": {
            "type": "string",
            "enum": [
                "http",
                "https"
            ],
            "x-enum-varnames": [
                "WorkspaceAgentPortShareProtocolHTTP",
                "WorkspaceAgentPortShareProtocolHTTPS"
            ]
        },
        "codersdk.WorkspaceAgentPortShares": {
            "type": "object",
            "properties": {
                "shares": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.WorkspaceAgentPortShare"
                    }
                }
            }
        },
        "codersdk.WorkspaceAgentScript": {
            "type": "object",
            "properties": {
                "cron": {
                    "type": "string"
                },
                "log_path": {
                    "type": "string"
                },
                "log_source_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "run_on_start": {
                    "type": "boolean"
                },
                "run_on_stop": {
                    "type": "boolean"
                },
                "script": {
                    "type": "string"
                },
                "start_blocks_login": {
                    "type": "boolean"
                },
                "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"
                },
                "subdomain_name": {
                    "description": "SubdomainName is the application domain exposed on the ` + "`" + `coder server` + "`" + `.",
                    "type": "string"
                },
                "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_avatar_url": {
                    "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"
                },
                "version": {
                    "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.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.BytesSentRecv": {
            "type": "object",
            "properties": {
                "key": {
                    "description": "Key is the public key of the client which sent/received these bytes.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/key.NodePublic"
                        }
                    ]
                },
                "recv": {
                    "type": "integer"
                },
                "sent": {
                    "type": "integer"
                }
            }
        },
        "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"
                }
            }
        },
        "health.Code": {
            "type": "string",
            "enum": [
                "EUNKNOWN",
                "EWP01",
                "EWP02",
                "EWP04",
                "EDB01",
                "EDB02",
                "EWS01",
                "EWS02",
                "EWS03",
                "EACS01",
                "EACS02",
                "EACS03",
                "EACS04",
                "EDERP01",
                "EDERP02",
                "EPD01",
                "EPD02",
                "EPD03"
            ],
            "x-enum-varnames": [
                "CodeUnknown",
                "CodeProxyUpdate",
                "CodeProxyFetch",
                "CodeProxyUnhealthy",
                "CodeDatabasePingFailed",
                "CodeDatabasePingSlow",
                "CodeWebsocketDial",
                "CodeWebsocketEcho",
                "CodeWebsocketMsg",
                "CodeAccessURLNotSet",
                "CodeAccessURLInvalid",
                "CodeAccessURLFetch",
                "CodeAccessURLNotOK",
                "CodeDERPNodeUsesWebsocket",
                "CodeDERPOneNodeUnhealthy",
                "CodeProvisionerDaemonsNoProvisionerDaemons",
                "CodeProvisionerDaemonVersionMismatch",
                "CodeProvisionerDaemonAPIMajorVersionDeprecated"
            ]
        },
        "health.Message": {
            "type": "object",
            "properties": {
                "code": {
                    "$ref": "#/definitions/health.Code"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "health.Severity": {
            "type": "string",
            "enum": [
                "ok",
                "warning",
                "error"
            ],
            "x-enum-varnames": [
                "SeverityOK",
                "SeverityWarning",
                "SeverityError"
            ]
        },
        "healthsdk.AccessURLReport": {
            "type": "object",
            "properties": {
                "access_url": {
                    "type": "string"
                },
                "dismissed": {
                    "type": "boolean"
                },
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
                    "type": "boolean"
                },
                "healthz_response": {
                    "type": "string"
                },
                "reachable": {
                    "type": "boolean"
                },
                "severity": {
                    "enum": [
                        "ok",
                        "warning",
                        "error"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/health.Severity"
                        }
                    ]
                },
                "status_code": {
                    "type": "integer"
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/health.Message"
                    }
                }
            }
        },
        "healthsdk.DERPHealthReport": {
            "type": "object",
            "properties": {
                "dismissed": {
                    "type": "boolean"
                },
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
                    "type": "boolean"
                },
                "netcheck": {
                    "$ref": "#/definitions/netcheck.Report"
                },
                "netcheck_err": {
                    "type": "string"
                },
                "netcheck_logs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "regions": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/healthsdk.DERPRegionReport"
                    }
                },
                "severity": {
                    "enum": [
                        "ok",
                        "warning",
                        "error"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/health.Severity"
                        }
                    ]
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/health.Message"
                    }
                }
            }
        },
        "healthsdk.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": {
                    "description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
                    "type": "boolean"
                },
                "node": {
                    "$ref": "#/definitions/tailcfg.DERPNode"
                },
                "node_info": {
                    "$ref": "#/definitions/derp.ServerInfoMessage"
                },
                "round_trip_ping": {
                    "type": "string"
                },
                "round_trip_ping_ms": {
                    "type": "integer"
                },
                "severity": {
                    "enum": [
                        "ok",
                        "warning",
                        "error"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/health.Severity"
                        }
                    ]
                },
                "stun": {
                    "$ref": "#/definitions/healthsdk.STUNReport"
                },
                "uses_websocket": {
                    "type": "boolean"
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/health.Message"
                    }
                }
            }
        },
        "healthsdk.DERPRegionReport": {
            "type": "object",
            "properties": {
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
                    "type": "boolean"
                },
                "node_reports": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/healthsdk.DERPNodeReport"
                    }
                },
                "region": {
                    "$ref": "#/definitions/tailcfg.DERPRegion"
                },
                "severity": {
                    "enum": [
                        "ok",
                        "warning",
                        "error"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/health.Severity"
                        }
                    ]
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/health.Message"
                    }
                }
            }
        },
        "healthsdk.DatabaseReport": {
            "type": "object",
            "properties": {
                "dismissed": {
                    "type": "boolean"
                },
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
                    "type": "boolean"
                },
                "latency": {
                    "type": "string"
                },
                "latency_ms": {
                    "type": "integer"
                },
                "reachable": {
                    "type": "boolean"
                },
                "severity": {
                    "enum": [
                        "ok",
                        "warning",
                        "error"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/health.Severity"
                        }
                    ]
                },
                "threshold_ms": {
                    "type": "integer"
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/health.Message"
                    }
                }
            }
        },
        "healthsdk.HealthSection": {
            "type": "string",
            "enum": [
                "DERP",
                "AccessURL",
                "Websocket",
                "Database",
                "WorkspaceProxy",
                "ProvisionerDaemons"
            ],
            "x-enum-varnames": [
                "HealthSectionDERP",
                "HealthSectionAccessURL",
                "HealthSectionWebsocket",
                "HealthSectionDatabase",
                "HealthSectionWorkspaceProxy",
                "HealthSectionProvisionerDaemons"
            ]
        },
        "healthsdk.HealthSettings": {
            "type": "object",
            "properties": {
                "dismissed_healthchecks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/healthsdk.HealthSection"
                    }
                }
            }
        },
        "healthsdk.HealthcheckReport": {
            "type": "object",
            "properties": {
                "access_url": {
                    "$ref": "#/definitions/healthsdk.AccessURLReport"
                },
                "coder_version": {
                    "description": "The Coder version of the server that the report was generated on.",
                    "type": "string"
                },
                "database": {
                    "$ref": "#/definitions/healthsdk.DatabaseReport"
                },
                "derp": {
                    "$ref": "#/definitions/healthsdk.DERPHealthReport"
                },
                "failing_sections": {
                    "description": "FailingSections is a list of sections that have failed their healthcheck.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/healthsdk.HealthSection"
                    }
                },
                "healthy": {
                    "description": "Healthy is true if the report returns no errors.\nDeprecated: use ` + "`" + `Severity` + "`" + ` instead",
                    "type": "boolean"
                },
                "provisioner_daemons": {
                    "$ref": "#/definitions/healthsdk.ProvisionerDaemonsReport"
                },
                "severity": {
                    "description": "Severity indicates the status of Coder health.",
                    "enum": [
                        "ok",
                        "warning",
                        "error"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/health.Severity"
                        }
                    ]
                },
                "time": {
                    "description": "Time is the time the report was generated at.",
                    "type": "string",
                    "format": "date-time"
                },
                "websocket": {
                    "$ref": "#/definitions/healthsdk.WebsocketReport"
                },
                "workspace_proxy": {
                    "$ref": "#/definitions/healthsdk.WorkspaceProxyReport"
                }
            }
        },
        "healthsdk.ProvisionerDaemonsReport": {
            "type": "object",
            "properties": {
                "dismissed": {
                    "type": "boolean"
                },
                "error": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/healthsdk.ProvisionerDaemonsReportItem"
                    }
                },
                "severity": {
                    "enum": [
                        "ok",
                        "warning",
                        "error"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/health.Severity"
                        }
                    ]
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/health.Message"
                    }
                }
            }
        },
        "healthsdk.ProvisionerDaemonsReportItem": {
            "type": "object",
            "properties": {
                "provisioner_daemon": {
                    "$ref": "#/definitions/codersdk.ProvisionerDaemon"
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/health.Message"
                    }
                }
            }
        },
        "healthsdk.STUNReport": {
            "type": "object",
            "properties": {
                "canSTUN": {
                    "type": "boolean"
                },
                "enabled": {
                    "type": "boolean"
                },
                "error": {
                    "type": "string"
                }
            }
        },
        "healthsdk.UpdateHealthSettings": {
            "type": "object",
            "properties": {
                "dismissed_healthchecks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/healthsdk.HealthSection"
                    }
                }
            }
        },
        "healthsdk.WebsocketReport": {
            "type": "object",
            "properties": {
                "body": {
                    "type": "string"
                },
                "code": {
                    "type": "integer"
                },
                "dismissed": {
                    "type": "boolean"
                },
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
                    "type": "boolean"
                },
                "severity": {
                    "enum": [
                        "ok",
                        "warning",
                        "error"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/health.Severity"
                        }
                    ]
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/health.Message"
                    }
                }
            }
        },
        "healthsdk.WorkspaceProxyReport": {
            "type": "object",
            "properties": {
                "dismissed": {
                    "type": "boolean"
                },
                "error": {
                    "type": "string"
                },
                "healthy": {
                    "description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
                    "type": "boolean"
                },
                "severity": {
                    "enum": [
                        "ok",
                        "warning",
                        "error"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/health.Severity"
                        }
                    ]
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/health.Message"
                    }
                },
                "workspace_proxies": {
                    "$ref": "#/definitions/codersdk.RegionsResponse-codersdk_WorkspaceProxy"
                }
            }
        },
        "key.NodePublic": {
            "type": "object"
        },
        "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"
                }
            }
        },
        "oauth2.Token": {
            "type": "object",
            "properties": {
                "access_token": {
                    "description": "AccessToken is the token that authorizes and authenticates\nthe requests.",
                    "type": "string"
                },
                "expiry": {
                    "description": "Expiry is the optional expiration time of the access token.\n\nIf zero, TokenSource implementations will reuse the same\ntoken forever and RefreshToken or equivalent\nmechanisms for that TokenSource will not be used.",
                    "type": "string"
                },
                "refresh_token": {
                    "description": "RefreshToken is a token that's used by the application\n(as opposed to the user) to refresh the access token\nif it expires.",
                    "type": "string"
                },
                "token_type": {
                    "description": "TokenType is the type of token.\nThe Type method returns either this or \"Bearer\", the default.",
                    "type": "string"
                }
            }
        },
        "serpent.Annotations": {
            "type": "object",
            "additionalProperties": {
                "type": "string"
            }
        },
        "serpent.Group": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "parent": {
                    "$ref": "#/definitions/serpent.Group"
                },
                "yaml": {
                    "type": "string"
                }
            }
        },
        "serpent.HostPort": {
            "type": "object",
            "properties": {
                "host": {
                    "type": "string"
                },
                "port": {
                    "type": "string"
                }
            }
        },
        "serpent.Option": {
            "type": "object",
            "properties": {
                "annotations": {
                    "description": "Annotations enable extensions to serpent higher up in the stack. It's useful for\nhelp formatting and documentation generation.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/serpent.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/serpent.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/serpent.Option"
                    }
                },
                "value": {
                    "description": "Value includes the types listed in values.go."
                },
                "value_source": {
                    "$ref": "#/definitions/serpent.ValueSource"
                },
                "yaml": {
                    "description": "YAML is the YAML key used to configure this option. If unset, YAML\nconfiguring is disabled.",
                    "type": "string"
                }
            }
        },
        "serpent.Regexp": {
            "type": "object"
        },
        "serpent.Struct-array_codersdk_ExternalAuthConfig": {
            "type": "object",
            "properties": {
                "value": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.ExternalAuthConfig"
                    }
                }
            }
        },
        "serpent.Struct-array_codersdk_LinkConfig": {
            "type": "object",
            "properties": {
                "value": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/codersdk.LinkConfig"
                    }
                }
            }
        },
        "serpent.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"
                        }
                    ]
                }
            }
        },
        "serpent.ValueSource": {
            "type": "string",
            "enum": [
                "",
                "flag",
                "env",
                "yaml",
                "default"
            ],
            "x-enum-varnames": [
                "ValueSourceNone",
                "ValueSourceFlag",
                "ValueSourceEnv",
                "ValueSourceYAML",
                "ValueSourceDefault"
            ]
        },
        "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_prefix": {
                    "description": "Prefix is the prefix of the subdomain app URL. Prefix should have a\ntrailing \"---\" if set.",
                    "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"
                }
            }
        },
        "workspacesdk.AgentConnectionInfo": {
            "type": "object",
            "properties": {
                "derp_force_websockets": {
                    "type": "boolean"
                },
                "derp_map": {
                    "$ref": "#/definitions/tailcfg.DERPMap"
                },
                "disable_direct_connections": {
                    "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)
}
