From 9dd3abe683b22781ca40d57f3fa4a122a3d65e85 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Sat, 13 Dec 2025 12:12:12 +0000 Subject: [PATCH 01/22] feat: return all the models from the db --- coderd/database/dbauthz/dbauthz.go | 15 ++++++++++ coderd/database/dbmetrics/querymetrics.go | 14 +++++++++ coderd/database/dbmock/dbmock.go | 30 +++++++++++++++++++ coderd/database/modelqueries.go | 30 +++++++++++++++++++ coderd/database/querier.go | 1 + coderd/database/queries.sql.go | 36 +++++++++++++++++++++++ coderd/database/queries/aibridge.sql | 13 ++++++++ enterprise/coderd/aibridge.go | 25 ++++++++++++++++ 8 files changed, 164 insertions(+) diff --git a/coderd/database/dbauthz/dbauthz.go b/coderd/database/dbauthz/dbauthz.go index 4962949f7fd49..9d39d1ae87695 100644 --- a/coderd/database/dbauthz/dbauthz.go +++ b/coderd/database/dbauthz/dbauthz.go @@ -4647,6 +4647,14 @@ func (q *querier) ListAIBridgeInterceptionsTelemetrySummaries(ctx context.Contex return q.db.ListAIBridgeInterceptionsTelemetrySummaries(ctx, arg) } +func (q *querier) ListAIBridgeModels(ctx context.Context) ([]string, error) { + prep, err := prepareSQLFilter(ctx, q.auth, policy.ActionRead, rbac.ResourceAibridgeInterception.Type) + if err != nil { + return nil, xerrors.Errorf("(dev error) prepare sql filter: %w", err) + } + return q.db.ListAuthorizedAIBridgeModels(ctx, prep) +} + func (q *querier) ListAIBridgeTokenUsagesByInterceptionIDs(ctx context.Context, interceptionIDs []uuid.UUID) ([]database.AIBridgeTokenUsage, error) { // This function is a system function until we implement a join for aibridge interceptions. // Matches the behavior of the workspaces listing endpoint. @@ -6156,3 +6164,10 @@ func (q *querier) CountAuthorizedAIBridgeInterceptions(ctx context.Context, arg // database.Store interface, so dbauthz needs to implement it. return q.CountAIBridgeInterceptions(ctx, arg) } + +func (q *querier) ListAuthorizedAIBridgeModels(ctx context.Context, prepared rbac.PreparedAuthorized) ([]string, error) { + // TODO: Delete this function, all ListAIBridgeModels should be authorized. For now just call ListAIBridgeModels on the authz querier. + // This cannot be deleted for now because it's included in the + // database.Store interface, so dbauthz needs to implement it. + return q.db.ListAuthorizedAIBridgeModels(ctx, prepared) +} diff --git a/coderd/database/dbmetrics/querymetrics.go b/coderd/database/dbmetrics/querymetrics.go index 6a018f41905f1..b6b5a9d099858 100644 --- a/coderd/database/dbmetrics/querymetrics.go +++ b/coderd/database/dbmetrics/querymetrics.go @@ -2811,6 +2811,13 @@ func (m queryMetricsStore) ListAIBridgeInterceptionsTelemetrySummaries(ctx conte return r0, r1 } +func (m queryMetricsStore) ListAIBridgeModels(ctx context.Context) ([]string, error) { + start := time.Now() + r0, r1 := m.s.ListAIBridgeModels(ctx) + m.queryLatencies.WithLabelValues("ListAIBridgeModels").Observe(time.Since(start).Seconds()) + return r0, r1 +} + func (m queryMetricsStore) ListAIBridgeTokenUsagesByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]database.AIBridgeTokenUsage, error) { start := time.Now() r0, r1 := m.s.ListAIBridgeTokenUsagesByInterceptionIDs(ctx, interceptionIds) @@ -3867,3 +3874,10 @@ func (m queryMetricsStore) CountAuthorizedAIBridgeInterceptions(ctx context.Cont m.queryLatencies.WithLabelValues("CountAuthorizedAIBridgeInterceptions").Observe(time.Since(start).Seconds()) return r0, r1 } + +func (m queryMetricsStore) ListAuthorizedAIBridgeModels(ctx context.Context, prepared rbac.PreparedAuthorized) ([]string, error) { + start := time.Now() + r0, r1 := m.s.ListAuthorizedAIBridgeModels(ctx, prepared) + m.queryLatencies.WithLabelValues("ListAuthorizedAIBridgeModels").Observe(time.Since(start).Seconds()) + return r0, r1 +} diff --git a/coderd/database/dbmock/dbmock.go b/coderd/database/dbmock/dbmock.go index f25e91e90c249..de9989a136ae9 100644 --- a/coderd/database/dbmock/dbmock.go +++ b/coderd/database/dbmock/dbmock.go @@ -6011,6 +6011,21 @@ func (mr *MockStoreMockRecorder) ListAIBridgeInterceptionsTelemetrySummaries(ctx return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeInterceptionsTelemetrySummaries", reflect.TypeOf((*MockStore)(nil).ListAIBridgeInterceptionsTelemetrySummaries), ctx, arg) } +// ListAIBridgeModels mocks base method. +func (m *MockStore) ListAIBridgeModels(ctx context.Context) ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAIBridgeModels", ctx) + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAIBridgeModels indicates an expected call of ListAIBridgeModels. +func (mr *MockStoreMockRecorder) ListAIBridgeModels(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeModels", reflect.TypeOf((*MockStore)(nil).ListAIBridgeModels), ctx) +} + // ListAIBridgeTokenUsagesByInterceptionIDs mocks base method. func (m *MockStore) ListAIBridgeTokenUsagesByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]database.AIBridgeTokenUsage, error) { m.ctrl.T.Helper() @@ -6071,6 +6086,21 @@ func (mr *MockStoreMockRecorder) ListAuthorizedAIBridgeInterceptions(ctx, arg, p return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAuthorizedAIBridgeInterceptions", reflect.TypeOf((*MockStore)(nil).ListAuthorizedAIBridgeInterceptions), ctx, arg, prepared) } +// ListAuthorizedAIBridgeModels mocks base method. +func (m *MockStore) ListAuthorizedAIBridgeModels(ctx context.Context, prepared rbac.PreparedAuthorized) ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAuthorizedAIBridgeModels", ctx, prepared) + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAuthorizedAIBridgeModels indicates an expected call of ListAuthorizedAIBridgeModels. +func (mr *MockStoreMockRecorder) ListAuthorizedAIBridgeModels(ctx, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAuthorizedAIBridgeModels", reflect.TypeOf((*MockStore)(nil).ListAuthorizedAIBridgeModels), ctx, prepared) +} + // ListProvisionerKeysByOrganization mocks base method. func (m *MockStore) ListProvisionerKeysByOrganization(ctx context.Context, organizationID uuid.UUID) ([]database.ProvisionerKey, error) { m.ctrl.T.Helper() diff --git a/coderd/database/modelqueries.go b/coderd/database/modelqueries.go index fae0f3eca4fa4..c82e3635dcd4b 100644 --- a/coderd/database/modelqueries.go +++ b/coderd/database/modelqueries.go @@ -766,6 +766,7 @@ func (q *sqlQuerier) CountAuthorizedConnectionLogs(ctx context.Context, arg Coun type aibridgeQuerier interface { ListAuthorizedAIBridgeInterceptions(ctx context.Context, arg ListAIBridgeInterceptionsParams, prepared rbac.PreparedAuthorized) ([]ListAIBridgeInterceptionsRow, error) CountAuthorizedAIBridgeInterceptions(ctx context.Context, arg CountAIBridgeInterceptionsParams, prepared rbac.PreparedAuthorized) (int64, error) + ListAuthorizedAIBridgeModels(ctx context.Context, prepared rbac.PreparedAuthorized) ([]string, error) } func (q *sqlQuerier) ListAuthorizedAIBridgeInterceptions(ctx context.Context, arg ListAIBridgeInterceptionsParams, prepared rbac.PreparedAuthorized) ([]ListAIBridgeInterceptionsRow, error) { @@ -864,6 +865,35 @@ func (q *sqlQuerier) CountAuthorizedAIBridgeInterceptions(ctx context.Context, a return count, nil } +func (q *sqlQuerier) ListAuthorizedAIBridgeModels(ctx context.Context, prepared rbac.PreparedAuthorized) ([]string, error) { + authorizedFilter, err := prepared.CompileToSQL(ctx, regosql.ConvertConfig{ + VariableConverter: regosql.AIBridgeInterceptionConverter(), + }) + if err != nil { + return nil, xerrors.Errorf("compile authorized filter: %w", err) + } + filtered, err := insertAuthorizedFilter(listAIBridgeModels, fmt.Sprintf(" AND %s", authorizedFilter)) + if err != nil { + return nil, xerrors.Errorf("insert authorized filter: %w", err) + } + + query := fmt.Sprintf("-- name: ListAIBridgeModels :many\n%s", filtered) + rows, err := q.db.QueryContext(ctx, query) + if err != nil { + return nil, err + } + defer rows.Close() + var items []string + for rows.Next() { + var model string + if err := rows.Scan(&model); err != nil { + return nil, err + } + items = append(items, model) + } + return items, nil +} + func insertAuthorizedFilter(query string, replaceWith string) (string, error) { if !strings.Contains(query, authorizedQueryPlaceholder) { return "", xerrors.Errorf("query does not contain authorized replace string, this is not an authorized query") diff --git a/coderd/database/querier.go b/coderd/database/querier.go index 7202d22f3d142..421efa8482543 100644 --- a/coderd/database/querier.go +++ b/coderd/database/querier.go @@ -622,6 +622,7 @@ type sqlcQuerier interface { // Finds all unique AI Bridge interception telemetry summaries combinations // (provider, model, client) in the given timeframe for telemetry reporting. ListAIBridgeInterceptionsTelemetrySummaries(ctx context.Context, arg ListAIBridgeInterceptionsTelemetrySummariesParams) ([]ListAIBridgeInterceptionsTelemetrySummariesRow, error) + ListAIBridgeModels(ctx context.Context) ([]string, error) ListAIBridgeTokenUsagesByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]AIBridgeTokenUsage, error) ListAIBridgeToolUsagesByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]AIBridgeToolUsage, error) ListAIBridgeUserPromptsByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]AIBridgeUserPrompt, error) diff --git a/coderd/database/queries.sql.go b/coderd/database/queries.sql.go index 4c81d43441cd0..8eda7c1887986 100644 --- a/coderd/database/queries.sql.go +++ b/coderd/database/queries.sql.go @@ -910,6 +910,42 @@ func (q *sqlQuerier) ListAIBridgeInterceptionsTelemetrySummaries(ctx context.Con return items, nil } +const listAIBridgeModels = `-- name: ListAIBridgeModels :many +SELECT + model +FROM + aibridge_interceptions +WHERE + ended_at IS NOT NULL + -- Authorize Filter clause will be injected below in ListAIBridgeModelsAuthorized + -- @authorize_filter +GROUP BY + model +` + +func (q *sqlQuerier) ListAIBridgeModels(ctx context.Context) ([]string, error) { + rows, err := q.db.QueryContext(ctx, listAIBridgeModels) + if err != nil { + return nil, err + } + defer rows.Close() + var items []string + for rows.Next() { + var model string + if err := rows.Scan(&model); err != nil { + return nil, err + } + items = append(items, model) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const listAIBridgeTokenUsagesByInterceptionIDs = `-- name: ListAIBridgeTokenUsagesByInterceptionIDs :many SELECT id, interception_id, provider_response_id, input_tokens, output_tokens, metadata, created_at diff --git a/coderd/database/queries/aibridge.sql b/coderd/database/queries/aibridge.sql index 960fe18ec07ca..1146d75061859 100644 --- a/coderd/database/queries/aibridge.sql +++ b/coderd/database/queries/aibridge.sql @@ -366,3 +366,16 @@ SELECT ( (SELECT COUNT(*) FROM user_prompts) + (SELECT COUNT(*) FROM interceptions) )::bigint as total_deleted; + +-- name: ListAIBridgeModels :many +SELECT + model +FROM + aibridge_interceptions +WHERE + ended_at IS NOT NULL + -- Authorize Filter clause will be injected below in ListAIBridgeModelsAuthorized + -- @authorize_filter +GROUP BY + model +; diff --git a/enterprise/coderd/aibridge.go b/enterprise/coderd/aibridge.go index d1d12d7b027c9..357a2d15c462b 100644 --- a/enterprise/coderd/aibridge.go +++ b/enterprise/coderd/aibridge.go @@ -42,6 +42,7 @@ func aibridgeHandler(api *API, middlewares ...func(http.Handler) http.Handler) f r.Group(func(r chi.Router) { r.Use(middlewares...) r.Get("/interceptions", api.aiBridgeListInterceptions) + r.Get("/models", api.aiBridgeListModels) }) // Apply overload protection middleware to the aibridged handler. @@ -230,3 +231,27 @@ func populatedAndConvertAIBridgeInterceptions(ctx context.Context, db database.S return items, nil } + +// aiBridgeListModels returns all AI Bridge models a user can see. +// +// @Summary List AI Bridge models +// @ID list-ai-bridge-models +// @Security CoderSessionToken +// @Produce json +// @Tags AI Bridge +// @Success 200 {array} string +// @Router /aibridge/models [get] +func (api *API) aiBridgeListModels(rw http.ResponseWriter, r *http.Request) { + ctx := r.Context() + + models, err := api.Database.ListAIBridgeModels(ctx) + if err != nil { + httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ + Message: "Internal error getting AI Bridge models.", + Detail: err.Error(), + }) + return + } + + httpapi.Write(ctx, rw, http.StatusOK, models) +} From 020daf638e2a168b6cea9dad0b7f71a7d6d0503a Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Sat, 13 Dec 2025 12:28:30 +0000 Subject: [PATCH 02/22] feat: implement filtering by `model` --- site/src/api/api.ts | 10 +++ .../RequestLogsFilter/ModelFilter.tsx | 76 +++++++++++++++++++ .../ProviderFilter.tsx} | 0 .../RequestLogsFilter.tsx | 5 +- .../RequestLogsPage/RequestLogsPage.tsx | 13 +++- .../RequestLogsPage/RequestLogsPageView.tsx | 2 +- 6 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx rename site/src/pages/AIBridgePage/RequestLogsPage/{filter/filter.tsx => RequestLogsFilter/ProviderFilter.tsx} (100%) rename site/src/pages/AIBridgePage/RequestLogsPage/{filter => RequestLogsFilter}/RequestLogsFilter.tsx (80%) diff --git a/site/src/api/api.ts b/site/src/api/api.ts index 530bb7c6c73a7..bd3fc9dfe90ba 100644 --- a/site/src/api/api.ts +++ b/site/src/api/api.ts @@ -2760,6 +2760,16 @@ class ExperimentalApiMethods { await this.axios.get(url); return response.data; }; + + getAIBridgeModels = async (options: SearchParamOptions) => { + const url = getURLWithSearchParams( + "/api/experimental/aibridge/models", + options, + ); + + const response = await this.axios.get(url); + return response.data; + }; } // This is a hard coded CSRF token/cookie pair for local development. In prod, diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx new file mode 100644 index 0000000000000..50df1339ee4d1 --- /dev/null +++ b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx @@ -0,0 +1,76 @@ +import { API } from "api/api"; +import { + type UseFilterMenuOptions, + useFilterMenu, +} from "components/Filter/menu"; +import { + SelectFilter, + SelectFilterSearch, +} from "components/Filter/SelectFilter"; +import type { FC } from "react"; + +export const useModelFilterMenu = ({ + value, + onChange, + enabled, +}: Pick) => { + return useFilterMenu({ + id: "model", + getSelectedOption: async () => { + const modelsRes = await API.experimental.getAIBridgeModels({ + q: value, + limit: 1, + }); + const firstModel = modelsRes.at(0); + + if (firstModel) { + return { + label: firstModel, + value: firstModel, + }; + } + + return null; + }, + getOptions: async (query) => { + const modelsRes = await API.experimental.getAIBridgeModels({ + q: query, + limit: 25, + }); + return modelsRes.map((model) => ({ + label: model, + value: model, + })); + }, + value, + onChange, + enabled, + }); +}; + +export type ModelFilterMenu = ReturnType; + +interface ModelFilterProps { + menu: ModelFilterMenu; +} + +export const ModelFilter: FC = ({ menu }) => { + return ( + menu.selectOption(option)} + selectedOption={menu.selectedOption ?? undefined} + selectFilterSearch={ + + } + /> + ); +}; diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/filter/filter.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ProviderFilter.tsx similarity index 100% rename from site/src/pages/AIBridgePage/RequestLogsPage/filter/filter.tsx rename to site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ProviderFilter.tsx diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/filter/RequestLogsFilter.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/RequestLogsFilter.tsx similarity index 80% rename from site/src/pages/AIBridgePage/RequestLogsPage/filter/RequestLogsFilter.tsx rename to site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/RequestLogsFilter.tsx index 34efa48a38aa4..5ae101704b895 100644 --- a/site/src/pages/AIBridgePage/RequestLogsPage/filter/RequestLogsFilter.tsx +++ b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/RequestLogsFilter.tsx @@ -1,7 +1,8 @@ import { Filter, MenuSkeleton, type useFilter } from "components/Filter/Filter"; import { type UserFilterMenu, UserMenu } from "components/Filter/UserFilter"; import type { FC } from "react"; -import { ProviderFilter, type ProviderFilterMenu } from "./filter"; +import { ModelFilter, type ModelFilterMenu } from "./ModelFilter"; +import { ProviderFilter, type ProviderFilterMenu } from "./ProviderFilter"; interface RequestLogsFilterProps { filter: ReturnType; @@ -9,6 +10,7 @@ interface RequestLogsFilterProps { menus: { user: UserFilterMenu; provider: ProviderFilterMenu; + model: ModelFilterMenu; }; } @@ -37,6 +39,7 @@ export const RequestLogsFilter: FC = ({ <> + } /> diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPage.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPage.tsx index 07d48e2c26021..da740ef42f087 100644 --- a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPage.tsx +++ b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPage.tsx @@ -6,7 +6,8 @@ import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; import type { FC } from "react"; import { useSearchParams } from "react-router"; import { pageTitle } from "utils/page"; -import { useProviderFilterMenu } from "./filter/filter"; +import { useModelFilterMenu } from "./RequestLogsFilter/ModelFilter"; +import { useProviderFilterMenu } from "./RequestLogsFilter/ProviderFilter"; import { RequestLogsPageView } from "./RequestLogsPageView"; const RequestLogsPage: FC = () => { @@ -41,6 +42,15 @@ const RequestLogsPage: FC = () => { }), }); + const modelMenu = useModelFilterMenu({ + value: filter.values.model, + onChange: (option) => + filter.update({ + ...filter.values, + model: option?.value, + }), + }); + return ( <> {pageTitle("Request Logs", "AI Bridge")} @@ -56,6 +66,7 @@ const RequestLogsPage: FC = () => { menus: { user: userMenu, provider: providerMenu, + model: modelMenu, }, }} /> diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.tsx index 2ee5e6d9c7fcd..04e6c9a90a876 100644 --- a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.tsx +++ b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.tsx @@ -15,7 +15,7 @@ import { TableEmpty } from "components/TableEmpty/TableEmpty"; import { TableLoader } from "components/TableLoader/TableLoader"; import type { ComponentProps, FC } from "react"; import { docs } from "utils/docs"; -import { RequestLogsFilter } from "./filter/RequestLogsFilter"; +import { RequestLogsFilter } from "./RequestLogsFilter/RequestLogsFilter"; import { RequestLogsRow } from "./RequestLogsRow/RequestLogsRow"; interface RequestLogsPageViewProps { From 7caae7ad807733b72e078961efd49253bec007ca Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Sat, 13 Dec 2025 12:58:29 +0000 Subject: [PATCH 03/22] feat: implement `q`, `limit` and `offset` --- coderd/database/dbauthz/dbauthz.go | 8 +++--- coderd/database/dbmetrics/querymetrics.go | 8 +++--- coderd/database/dbmock/dbmock.go | 8 +++--- coderd/database/modelqueries.go | 6 ++--- coderd/database/querier.go | 2 +- coderd/database/queries.sql.go | 17 ++++++++++-- coderd/database/queries/aibridge.sql | 7 +++++ coderd/searchquery/search.go | 29 ++++++++++++++++++++ enterprise/coderd/aibridge.go | 32 ++++++++++++++++++++++- 9 files changed, 98 insertions(+), 19 deletions(-) diff --git a/coderd/database/dbauthz/dbauthz.go b/coderd/database/dbauthz/dbauthz.go index 9d39d1ae87695..8d12b2d0c4e7e 100644 --- a/coderd/database/dbauthz/dbauthz.go +++ b/coderd/database/dbauthz/dbauthz.go @@ -4647,12 +4647,12 @@ func (q *querier) ListAIBridgeInterceptionsTelemetrySummaries(ctx context.Contex return q.db.ListAIBridgeInterceptionsTelemetrySummaries(ctx, arg) } -func (q *querier) ListAIBridgeModels(ctx context.Context) ([]string, error) { +func (q *querier) ListAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams) ([]string, error) { prep, err := prepareSQLFilter(ctx, q.auth, policy.ActionRead, rbac.ResourceAibridgeInterception.Type) if err != nil { return nil, xerrors.Errorf("(dev error) prepare sql filter: %w", err) } - return q.db.ListAuthorizedAIBridgeModels(ctx, prep) + return q.db.ListAuthorizedAIBridgeModels(ctx, arg, prep) } func (q *querier) ListAIBridgeTokenUsagesByInterceptionIDs(ctx context.Context, interceptionIDs []uuid.UUID) ([]database.AIBridgeTokenUsage, error) { @@ -6165,9 +6165,9 @@ func (q *querier) CountAuthorizedAIBridgeInterceptions(ctx context.Context, arg return q.CountAIBridgeInterceptions(ctx, arg) } -func (q *querier) ListAuthorizedAIBridgeModels(ctx context.Context, prepared rbac.PreparedAuthorized) ([]string, error) { +func (q *querier) ListAuthorizedAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams, prepared rbac.PreparedAuthorized) ([]string, error) { // TODO: Delete this function, all ListAIBridgeModels should be authorized. For now just call ListAIBridgeModels on the authz querier. // This cannot be deleted for now because it's included in the // database.Store interface, so dbauthz needs to implement it. - return q.db.ListAuthorizedAIBridgeModels(ctx, prepared) + return q.db.ListAuthorizedAIBridgeModels(ctx, arg, prepared) } diff --git a/coderd/database/dbmetrics/querymetrics.go b/coderd/database/dbmetrics/querymetrics.go index b6b5a9d099858..7965f65d5a8b0 100644 --- a/coderd/database/dbmetrics/querymetrics.go +++ b/coderd/database/dbmetrics/querymetrics.go @@ -2811,9 +2811,9 @@ func (m queryMetricsStore) ListAIBridgeInterceptionsTelemetrySummaries(ctx conte return r0, r1 } -func (m queryMetricsStore) ListAIBridgeModels(ctx context.Context) ([]string, error) { +func (m queryMetricsStore) ListAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams) ([]string, error) { start := time.Now() - r0, r1 := m.s.ListAIBridgeModels(ctx) + r0, r1 := m.s.ListAIBridgeModels(ctx, arg) m.queryLatencies.WithLabelValues("ListAIBridgeModels").Observe(time.Since(start).Seconds()) return r0, r1 } @@ -3875,9 +3875,9 @@ func (m queryMetricsStore) CountAuthorizedAIBridgeInterceptions(ctx context.Cont return r0, r1 } -func (m queryMetricsStore) ListAuthorizedAIBridgeModels(ctx context.Context, prepared rbac.PreparedAuthorized) ([]string, error) { +func (m queryMetricsStore) ListAuthorizedAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams, prepared rbac.PreparedAuthorized) ([]string, error) { start := time.Now() - r0, r1 := m.s.ListAuthorizedAIBridgeModels(ctx, prepared) + r0, r1 := m.s.ListAuthorizedAIBridgeModels(ctx, arg, prepared) m.queryLatencies.WithLabelValues("ListAuthorizedAIBridgeModels").Observe(time.Since(start).Seconds()) return r0, r1 } diff --git a/coderd/database/dbmock/dbmock.go b/coderd/database/dbmock/dbmock.go index de9989a136ae9..c462b0257c4f7 100644 --- a/coderd/database/dbmock/dbmock.go +++ b/coderd/database/dbmock/dbmock.go @@ -6012,18 +6012,18 @@ func (mr *MockStoreMockRecorder) ListAIBridgeInterceptionsTelemetrySummaries(ctx } // ListAIBridgeModels mocks base method. -func (m *MockStore) ListAIBridgeModels(ctx context.Context) ([]string, error) { +func (m *MockStore) ListAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams) ([]string, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAIBridgeModels", ctx) + ret := m.ctrl.Call(m, "ListAIBridgeModels", ctx, arg) ret0, _ := ret[0].([]string) ret1, _ := ret[1].(error) return ret0, ret1 } // ListAIBridgeModels indicates an expected call of ListAIBridgeModels. -func (mr *MockStoreMockRecorder) ListAIBridgeModels(ctx any) *gomock.Call { +func (mr *MockStoreMockRecorder) ListAIBridgeModels(ctx, arg any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeModels", reflect.TypeOf((*MockStore)(nil).ListAIBridgeModels), ctx) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeModels", reflect.TypeOf((*MockStore)(nil).ListAIBridgeModels), ctx, arg) } // ListAIBridgeTokenUsagesByInterceptionIDs mocks base method. diff --git a/coderd/database/modelqueries.go b/coderd/database/modelqueries.go index c82e3635dcd4b..d12adfed41b8b 100644 --- a/coderd/database/modelqueries.go +++ b/coderd/database/modelqueries.go @@ -766,7 +766,7 @@ func (q *sqlQuerier) CountAuthorizedConnectionLogs(ctx context.Context, arg Coun type aibridgeQuerier interface { ListAuthorizedAIBridgeInterceptions(ctx context.Context, arg ListAIBridgeInterceptionsParams, prepared rbac.PreparedAuthorized) ([]ListAIBridgeInterceptionsRow, error) CountAuthorizedAIBridgeInterceptions(ctx context.Context, arg CountAIBridgeInterceptionsParams, prepared rbac.PreparedAuthorized) (int64, error) - ListAuthorizedAIBridgeModels(ctx context.Context, prepared rbac.PreparedAuthorized) ([]string, error) + ListAuthorizedAIBridgeModels(ctx context.Context, arg ListAIBridgeModelsParams, prepared rbac.PreparedAuthorized) ([]string, error) } func (q *sqlQuerier) ListAuthorizedAIBridgeInterceptions(ctx context.Context, arg ListAIBridgeInterceptionsParams, prepared rbac.PreparedAuthorized) ([]ListAIBridgeInterceptionsRow, error) { @@ -865,7 +865,7 @@ func (q *sqlQuerier) CountAuthorizedAIBridgeInterceptions(ctx context.Context, a return count, nil } -func (q *sqlQuerier) ListAuthorizedAIBridgeModels(ctx context.Context, prepared rbac.PreparedAuthorized) ([]string, error) { +func (q *sqlQuerier) ListAuthorizedAIBridgeModels(ctx context.Context, arg ListAIBridgeModelsParams, prepared rbac.PreparedAuthorized) ([]string, error) { authorizedFilter, err := prepared.CompileToSQL(ctx, regosql.ConvertConfig{ VariableConverter: regosql.AIBridgeInterceptionConverter(), }) @@ -878,7 +878,7 @@ func (q *sqlQuerier) ListAuthorizedAIBridgeModels(ctx context.Context, prepared } query := fmt.Sprintf("-- name: ListAIBridgeModels :many\n%s", filtered) - rows, err := q.db.QueryContext(ctx, query) + rows, err := q.db.QueryContext(ctx, query, arg.Model, arg.Offset, arg.Limit) if err != nil { return nil, err } diff --git a/coderd/database/querier.go b/coderd/database/querier.go index 421efa8482543..0a698f968f5bf 100644 --- a/coderd/database/querier.go +++ b/coderd/database/querier.go @@ -622,7 +622,7 @@ type sqlcQuerier interface { // Finds all unique AI Bridge interception telemetry summaries combinations // (provider, model, client) in the given timeframe for telemetry reporting. ListAIBridgeInterceptionsTelemetrySummaries(ctx context.Context, arg ListAIBridgeInterceptionsTelemetrySummariesParams) ([]ListAIBridgeInterceptionsTelemetrySummariesRow, error) - ListAIBridgeModels(ctx context.Context) ([]string, error) + ListAIBridgeModels(ctx context.Context, arg ListAIBridgeModelsParams) ([]string, error) ListAIBridgeTokenUsagesByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]AIBridgeTokenUsage, error) ListAIBridgeToolUsagesByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]AIBridgeToolUsage, error) ListAIBridgeUserPromptsByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]AIBridgeUserPrompt, error) diff --git a/coderd/database/queries.sql.go b/coderd/database/queries.sql.go index 8eda7c1887986..8481ff5107293 100644 --- a/coderd/database/queries.sql.go +++ b/coderd/database/queries.sql.go @@ -917,14 +917,27 @@ FROM aibridge_interceptions WHERE ended_at IS NOT NULL + -- Filter model + AND CASE + WHEN $1::text != '' THEN aibridge_interceptions.model = $1::text + ELSE true + END -- Authorize Filter clause will be injected below in ListAIBridgeModelsAuthorized -- @authorize_filter GROUP BY model +LIMIT COALESCE(NULLIF($3::integer, 0), 100) +OFFSET $2 ` -func (q *sqlQuerier) ListAIBridgeModels(ctx context.Context) ([]string, error) { - rows, err := q.db.QueryContext(ctx, listAIBridgeModels) +type ListAIBridgeModelsParams struct { + Model string `db:"model" json:"model"` + Offset int32 `db:"offset_" json:"offset_"` + Limit int32 `db:"limit_" json:"limit_"` +} + +func (q *sqlQuerier) ListAIBridgeModels(ctx context.Context, arg ListAIBridgeModelsParams) ([]string, error) { + rows, err := q.db.QueryContext(ctx, listAIBridgeModels, arg.Model, arg.Offset, arg.Limit) if err != nil { return nil, err } diff --git a/coderd/database/queries/aibridge.sql b/coderd/database/queries/aibridge.sql index 1146d75061859..2307af198a074 100644 --- a/coderd/database/queries/aibridge.sql +++ b/coderd/database/queries/aibridge.sql @@ -374,8 +374,15 @@ FROM aibridge_interceptions WHERE ended_at IS NOT NULL + -- Filter model + AND CASE + WHEN @model::text != '' THEN aibridge_interceptions.model = @model::text + ELSE true + END -- Authorize Filter clause will be injected below in ListAIBridgeModelsAuthorized -- @authorize_filter GROUP BY model +LIMIT COALESCE(NULLIF(@limit_::integer, 0), 100) +OFFSET @offset_ ; diff --git a/coderd/searchquery/search.go b/coderd/searchquery/search.go index 59ec3e04923ff..f9c7a4c222d20 100644 --- a/coderd/searchquery/search.go +++ b/coderd/searchquery/search.go @@ -391,6 +391,35 @@ func AIBridgeInterceptions(ctx context.Context, db database.Store, query string, return filter, parser.Errors } +func AIBridgeModels(db database.Store, query string, page codersdk.Pagination) (database.ListAIBridgeModelsParams, []codersdk.ValidationError) { + // nolint:exhaustruct // Empty values just means "don't filter by that field". + filter := database.ListAIBridgeModelsParams{ + // #nosec G115 - Safe conversion for pagination offset which is expected to be within int32 range + Offset: int32(page.Offset), + // #nosec G115 - Safe conversion for pagination limit which is expected to be within int32 range + Limit: int32(page.Limit), + } + + if query == "" { + return filter, nil + } + + values, errors := searchTerms(query, func(term string, values url.Values) error { + // Default to the model + values.Add("model", term) + return nil + }) + if len(errors) > 0 { + return filter, errors + } + + parser := httpapi.NewQueryParamParser() + filter.Model = parser.String(values, "", "model") + + parser.ErrorExcessParams(values) + return filter, parser.Errors +} + // Tasks parses a search query for tasks. // // Supported query parameters: diff --git a/enterprise/coderd/aibridge.go b/enterprise/coderd/aibridge.go index 357a2d15c462b..487ca04f06c85 100644 --- a/enterprise/coderd/aibridge.go +++ b/enterprise/coderd/aibridge.go @@ -23,7 +23,9 @@ import ( const ( maxListInterceptionsLimit = 1000 + maxListModelsLimit = 1000 defaultListInterceptionsLimit = 100 + defaultListModelsLimit = 100 // aiBridgeRateLimitWindow is the fixed duration for rate limiting AI Bridge // requests. This is hardcoded to keep configuration simple. aiBridgeRateLimitWindow = time.Second @@ -244,7 +246,35 @@ func populatedAndConvertAIBridgeInterceptions(ctx context.Context, db database.S func (api *API) aiBridgeListModels(rw http.ResponseWriter, r *http.Request) { ctx := r.Context() - models, err := api.Database.ListAIBridgeModels(ctx) + page, ok := coderd.ParsePagination(rw, r) + if !ok { + return + } + + if page.Limit == 0 { + page.Limit = defaultListModelsLimit + } + + if page.Limit > maxListModelsLimit || page.Limit < 1 { + httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{ + Message: "Invalid pagination limit value.", + Detail: fmt.Sprintf("Pagination limit must be in range (0, %d]", maxListModelsLimit), + }) + return + } + + queryStr := r.URL.Query().Get("q") + filter, errs := searchquery.AIBridgeModels(api.Database, queryStr, page) + + if len(errs) > 0 { + httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{ + Message: "Invalid AI Bridge models search query.", + Validations: errs, + }) + return + } + + models, err := api.Database.ListAIBridgeModels(ctx, filter) if err != nil { httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ Message: "Internal error getting AI Bridge models.", From d98267e7adbd3d4ae7d91df3985c04ac07218779 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Sat, 13 Dec 2025 14:46:06 +0000 Subject: [PATCH 04/22] feat: add missing docs --- coderd/apidoc/docs.go | 28 + coderd/apidoc/swagger.json | 43487 ++++++++++++++++--------------- docs/reference/api/aibridge.md | 33 + 3 files changed, 22704 insertions(+), 20844 deletions(-) diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index 800058b759cad..054a4c697e947 100644 --- a/coderd/apidoc/docs.go +++ b/coderd/apidoc/docs.go @@ -136,6 +136,34 @@ const docTemplate = `{ } } }, + "/aibridge/models": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "AI Bridge" + ], + "summary": "List AI Bridge models", + "operationId": "list-ai-bridge-models", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, "/appearance": { "get": { "security": [ diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index ea54c1b219a98..45c21449b7900 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -1,20845 +1,22644 @@ { - "swagger": "2.0", - "info": { - "description": "Coderd is the service created by running coder server. It is a thin API that connects workspaces, provisioners and users. coderd stores its state in Postgres and is the only service that communicates with Postgres.", - "title": "Coder API", - "termsOfService": "https://coder.com/legal/terms-of-service", - "contact": { - "name": "API Support", - "url": "https://coder.com", - "email": "support@coder.com" - }, - "license": { - "name": "AGPL-3.0", - "url": "https://github.com/coder/coder/blob/main/LICENSE" - }, - "version": "2.0" - }, - "basePath": "/api/v2", - "paths": { - "/": { - "get": { - "produces": ["application/json"], - "tags": ["General"], - "summary": "API root handler", - "operationId": "api-root-handler", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/.well-known/oauth-authorization-server": { - "get": { - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "OAuth2 authorization server metadata.", - "operationId": "oauth2-authorization-server-metadata", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OAuth2AuthorizationServerMetadata" - } - } - } - } - }, - "/.well-known/oauth-protected-resource": { - "get": { - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "OAuth2 protected resource metadata.", - "operationId": "oauth2-protected-resource-metadata", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ProtectedResourceMetadata" - } - } - } - } - }, - "/aibridge/interceptions": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["AI Bridge"], - "summary": "List AI Bridge interceptions", - "operationId": "list-ai-bridge-interceptions", - "parameters": [ - { - "type": "string", - "description": "Search query in the format `key:value`. Available keys are: initiator, provider, model, started_after, started_before.", - "name": "q", - "in": "query" - }, - { - "type": "integer", - "description": "Page limit", - "name": "limit", - "in": "query" - }, - { - "type": "string", - "description": "Cursor pagination after ID (cannot be used with offset)", - "name": "after_id", - "in": "query" - }, - { - "type": "integer", - "description": "Offset pagination (cannot be used with after_id)", - "name": "offset", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.AIBridgeListInterceptionsResponse" - } - } - } - } - }, - "/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 - } - } - }, - "/auth/scopes": { - "get": { - "produces": ["application/json"], - "tags": ["Authorization"], - "summary": "List API key scopes", - "operationId": "list-api-key-scopes", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ExternalAPIKeyScopes" - } - } - } - } - }, - "/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" - } - } - } - } - }, - "/connectionlog": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get connection logs", - "operationId": "get-connection-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.ConnectionLogResponse" - } - } - } - } - }, - "/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/metrics": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Debug"], - "summary": "Debug metrics", - "operationId": "debug-metrics", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/debug/pprof": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Debug"], - "summary": "Debug pprof index", - "operationId": "debug-pprof-index", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/debug/pprof/cmdline": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Debug"], - "summary": "Debug pprof cmdline", - "operationId": "debug-pprof-cmdline", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/debug/pprof/profile": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Debug"], - "summary": "Debug pprof profile", - "operationId": "debug-pprof-profile", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/debug/pprof/symbol": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Debug"], - "summary": "Debug pprof symbol", - "operationId": "debug-pprof-symbol", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/debug/pprof/trace": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Debug"], - "summary": "Debug pprof trace", - "operationId": "debug-pprof-trace", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/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": [] - } - ], - "produces": ["application/json"], - "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", - "schema": { - "$ref": "#/definitions/codersdk.DeleteExternalAuthByIDResponse" - } - } - } - } - }, - "/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. If using tar format, file must conform to ustar (pax may cause problems).", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "Returns existing file if duplicate", - "schema": { - "$ref": "#/definitions/codersdk.UploadResponse" - } - }, - "201": { - "description": "Returns newly created file", - "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": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get groups", - "operationId": "get-groups", - "parameters": [ - { - "type": "string", - "description": "Organization ID or name", - "name": "organization", - "in": "query", - "required": true - }, - { - "type": "string", - "description": "User ID or name", - "name": "has_member", - "in": "query", - "required": true - }, - { - "type": "string", - "description": "Comma separated list of group IDs", - "name": "group_ids", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Group" - } - } - } - } - } - }, - "/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" - } - } - } - } - }, - "/init-script/{os}/{arch}": { - "get": { - "produces": ["text/plain"], - "tags": ["InitScript"], - "summary": "Get agent init script", - "operationId": "get-agent-init-script", - "parameters": [ - { - "type": "string", - "description": "Operating system", - "name": "os", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Architecture", - "name": "arch", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/insights/daus": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Insights"], - "summary": "Get deployment DAUs", - "operationId": "get-deployment-daus", - "parameters": [ - { - "type": "integer", - "description": "Time-zone offset (e.g. -2)", - "name": "tz_offset", - "in": "query", - "required": true - } - ], - "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": "string", - "format": "date-time", - "description": "Start time", - "name": "start_time", - "in": "query", - "required": true - }, - { - "type": "string", - "format": "date-time", - "description": "End time", - "name": "end_time", - "in": "query", - "required": true - }, - { - "enum": ["week", "day"], - "type": "string", - "description": "Interval", - "name": "interval", - "in": "query", - "required": true - }, - { - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "csv", - "description": "Template IDs", - "name": "template_ids", - "in": "query" - } - ], - "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": "string", - "format": "date-time", - "description": "Start time", - "name": "start_time", - "in": "query", - "required": true - }, - { - "type": "string", - "format": "date-time", - "description": "End time", - "name": "end_time", - "in": "query", - "required": true - }, - { - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "csv", - "description": "Template IDs", - "name": "template_ids", - "in": "query" - } - ], - "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": "string", - "format": "date-time", - "description": "Start time", - "name": "start_time", - "in": "query", - "required": true - }, - { - "type": "string", - "format": "date-time", - "description": "End time", - "name": "end_time", - "in": "query", - "required": true - }, - { - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "csv", - "description": "Template IDs", - "name": "template_ids", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.UserLatencyInsightsResponse" - } - } - } - } - }, - "/insights/user-status-counts": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Insights"], - "summary": "Get insights about user status counts", - "operationId": "get-insights-about-user-status-counts", - "parameters": [ - { - "type": "integer", - "description": "Time-zone offset (e.g. -2)", - "name": "tz_offset", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GetUserStatusCountsResponse" - } - } - } - } - }, - "/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": ["Enterprise"], - "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": ["Enterprise"], - "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" - } - } - } - }, - "/notifications/custom": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Notifications"], - "summary": "Send a custom notification", - "operationId": "send-a-custom-notification", - "parameters": [ - { - "description": "Provide a non-empty title or message", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.CustomNotificationRequest" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Invalid request body", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - }, - "403": { - "description": "System users cannot send custom notifications", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - }, - "500": { - "description": "Failed to send custom notification", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/notifications/dispatch-methods": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Notifications"], - "summary": "Get notification dispatch methods", - "operationId": "get-notification-dispatch-methods", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.NotificationMethodsResponse" - } - } - } - } - } - }, - "/notifications/inbox": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Notifications"], - "summary": "List inbox notifications", - "operationId": "list-inbox-notifications", - "parameters": [ - { - "type": "string", - "description": "Comma-separated list of target IDs to filter notifications", - "name": "targets", - "in": "query" - }, - { - "type": "string", - "description": "Comma-separated list of template IDs to filter notifications", - "name": "templates", - "in": "query" - }, - { - "type": "string", - "description": "Filter notifications by read status. Possible values: read, unread, all", - "name": "read_status", - "in": "query" - }, - { - "type": "string", - "format": "uuid", - "description": "ID of the last notification from the current page. Notifications returned will be older than the associated one", - "name": "starting_before", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ListInboxNotificationsResponse" - } - } - } - } - }, - "/notifications/inbox/mark-all-as-read": { - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Notifications"], - "summary": "Mark all unread notifications as read", - "operationId": "mark-all-unread-notifications-as-read", - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/notifications/inbox/watch": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Notifications"], - "summary": "Watch for new inbox notifications", - "operationId": "watch-for-new-inbox-notifications", - "parameters": [ - { - "type": "string", - "description": "Comma-separated list of target IDs to filter notifications", - "name": "targets", - "in": "query" - }, - { - "type": "string", - "description": "Comma-separated list of template IDs to filter notifications", - "name": "templates", - "in": "query" - }, - { - "type": "string", - "description": "Filter notifications by read status. Possible values: read, unread, all", - "name": "read_status", - "in": "query" - }, - { - "enum": ["plaintext", "markdown"], - "type": "string", - "description": "Define the output format for notifications title and body.", - "name": "format", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GetInboxNotificationResponse" - } - } - } - } - }, - "/notifications/inbox/{id}/read-status": { - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Notifications"], - "summary": "Update read status of a notification", - "operationId": "update-read-status-of-a-notification", - "parameters": [ - { - "type": "string", - "description": "id of the notification", - "name": "id", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/notifications/settings": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Notifications"], - "summary": "Get notifications settings", - "operationId": "get-notifications-settings", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.NotificationsSettings" - } - } - } - }, - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Notifications"], - "summary": "Update notifications settings", - "operationId": "update-notifications-settings", - "parameters": [ - { - "description": "Notifications settings request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.NotificationsSettings" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.NotificationsSettings" - } - }, - "304": { - "description": "Not Modified" - } - } - } - }, - "/notifications/templates/custom": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Notifications"], - "summary": "Get custom notification templates", - "operationId": "get-custom-notification-templates", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.NotificationTemplate" - } - } - }, - "500": { - "description": "Failed to retrieve 'custom' notifications template", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/notifications/templates/system": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Notifications"], - "summary": "Get system notification templates", - "operationId": "get-system-notification-templates", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.NotificationTemplate" - } - } - }, - "500": { - "description": "Failed to retrieve 'system' notifications template", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/notifications/templates/{notification_template}/method": { - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Update notification template dispatch method", - "operationId": "update-notification-template-dispatch-method", - "parameters": [ - { - "type": "string", - "description": "Notification template UUID", - "name": "notification_template", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "Success" - }, - "304": { - "description": "Not modified" - } - } - } - }, - "/notifications/test": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Notifications"], - "summary": "Send a test notification", - "operationId": "send-a-test-notification", - "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": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Enterprise"], - "summary": "OAuth2 authorization request (GET - show authorization page).", - "operationId": "oauth2-authorization-request-get", - "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": { - "200": { - "description": "Returns HTML authorization page" - } - } - }, - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Enterprise"], - "summary": "OAuth2 authorization request (POST - process authorization).", - "operationId": "oauth2-authorization-request-post", - "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": "Returns redirect with authorization code" - } - } - } - }, - "/oauth2/clients/{client_id}": { - "get": { - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get OAuth2 client configuration (RFC 7592)", - "operationId": "get-oauth2-client-configuration", - "parameters": [ - { - "type": "string", - "description": "Client ID", - "name": "client_id", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ClientConfiguration" - } - } - } - }, - "put": { - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Update OAuth2 client configuration (RFC 7592)", - "operationId": "put-oauth2-client-configuration", - "parameters": [ - { - "type": "string", - "description": "Client ID", - "name": "client_id", - "in": "path", - "required": true - }, - { - "description": "Client update request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ClientConfiguration" - } - } - } - }, - "delete": { - "tags": ["Enterprise"], - "summary": "Delete OAuth2 client registration (RFC 7592)", - "operationId": "delete-oauth2-client-configuration", - "parameters": [ - { - "type": "string", - "description": "Client ID", - "name": "client_id", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/oauth2/register": { - "post": { - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "OAuth2 dynamic client registration (RFC 7591)", - "operationId": "oauth2-dynamic-client-registration", - "parameters": [ - { - "description": "Client registration request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationRequest" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationResponse" - } - } - } - } - }, - "/oauth2/revoke": { - "post": { - "consumes": ["application/x-www-form-urlencoded"], - "tags": ["Enterprise"], - "summary": "Revoke OAuth2 tokens (RFC 7009).", - "operationId": "oauth2-token-revocation", - "parameters": [ - { - "type": "string", - "description": "Client ID for authentication", - "name": "client_id", - "in": "formData", - "required": true - }, - { - "type": "string", - "description": "The token to revoke", - "name": "token", - "in": "formData", - "required": true - }, - { - "type": "string", - "description": "Hint about token type (access_token or refresh_token)", - "name": "token_type_hint", - "in": "formData" - } - ], - "responses": { - "200": { - "description": "Token successfully revoked" - } - } - } - }, - "/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": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Organizations"], - "summary": "Get organizations", - "operationId": "get-organizations", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Organization" - } - } - } - } - }, - "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" - } - } - } - }, - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Organizations"], - "summary": "Delete organization", - "operationId": "delete-organization", - "parameters": [ - { - "type": "string", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - }, - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Organizations"], - "summary": "Update organization", - "operationId": "update-organization", - "parameters": [ - { - "type": "string", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "Patch organization request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateOrganizationRequest" - } - } - ], - "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": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Members"], - "summary": "List organization members", - "operationId": "list-organization-members", - "deprecated": true, - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.OrganizationMemberWithUserData" - } - } - } - } - } - }, - "/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" - } - } - } - } - }, - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Members"], - "summary": "Upsert a custom organization role", - "operationId": "upsert-a-custom-organization-role", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "Upsert role request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.CustomRoleRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Role" - } - } - } - } - }, - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Members"], - "summary": "Insert a custom organization role", - "operationId": "insert-a-custom-organization-role", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "Insert role request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.CustomRoleRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Role" - } - } - } - } - } - }, - "/organizations/{organization}/members/roles/{roleName}": { - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Members"], - "summary": "Delete a custom organization role", - "operationId": "delete-a-custom-organization-role", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Role name", - "name": "roleName", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Role" - } - } - } - } - } - }, - "/organizations/{organization}/members/{user}": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Members"], - "summary": "Add organization member", - "operationId": "add-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 - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OrganizationMember" - } - } - } - }, - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Members"], - "summary": "Remove organization member", - "operationId": "remove-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 - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/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}/workspace-quota": { - "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 - }, - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceQuota" - } - } - } - } - }, - "/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", - "deprecated": true, - "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}/paginated-members": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Members"], - "summary": "Paginated organization members", - "operationId": "paginated-organization-members", - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "integer", - "description": "Page limit, if 0 returns all members", - "name": "limit", - "in": "query" - }, - { - "type": "integer", - "description": "Page offset", - "name": "offset", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.PaginatedMembersResponse" - } - } - } - } - } - }, - "/organizations/{organization}/provisionerdaemons": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Provisioning"], - "summary": "Get provisioner daemons", - "operationId": "get-provisioner-daemons", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "integer", - "description": "Page limit", - "name": "limit", - "in": "query" - }, - { - "type": "array", - "format": "uuid", - "items": { - "type": "string" - }, - "description": "Filter results by job IDs", - "name": "ids", - "in": "query" - }, - { - "enum": [ - "pending", - "running", - "succeeded", - "canceling", - "canceled", - "failed", - "unknown", - "pending", - "running", - "succeeded", - "canceling", - "canceled", - "failed" - ], - "type": "string", - "description": "Filter results by status", - "name": "status", - "in": "query" - }, - { - "type": "object", - "description": "Provisioner tags to filter by (JSON of the form {'tag1':'value1','tag2':'value2'})", - "name": "tags", - "in": "query" - } - ], - "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}/provisionerjobs": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Organizations"], - "summary": "Get provisioner jobs", - "operationId": "get-provisioner-jobs", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "integer", - "description": "Page limit", - "name": "limit", - "in": "query" - }, - { - "type": "array", - "format": "uuid", - "items": { - "type": "string" - }, - "description": "Filter results by job IDs", - "name": "ids", - "in": "query" - }, - { - "enum": [ - "pending", - "running", - "succeeded", - "canceling", - "canceled", - "failed", - "unknown", - "pending", - "running", - "succeeded", - "canceling", - "canceled", - "failed" - ], - "type": "string", - "description": "Filter results by status", - "name": "status", - "in": "query" - }, - { - "type": "object", - "description": "Provisioner tags to filter by (JSON of the form {'tag1':'value1','tag2':'value2'})", - "name": "tags", - "in": "query" - }, - { - "type": "string", - "format": "uuid", - "description": "Filter results by initiator", - "name": "initiator", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ProvisionerJob" - } - } - } - } - } - }, - "/organizations/{organization}/provisionerjobs/{job}": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Organizations"], - "summary": "Get provisioner job", - "operationId": "get-provisioner-job", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "string", - "format": "uuid", - "description": "Job ID", - "name": "job", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ProvisionerJob" - } - } - } - } - }, - "/organizations/{organization}/provisionerkeys": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "List provisioner key", - "operationId": "list-provisioner-key", - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ProvisionerKey" - } - } - } - } - }, - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Create provisioner key", - "operationId": "create-provisioner-key", - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/codersdk.CreateProvisionerKeyResponse" - } - } - } - } - }, - "/organizations/{organization}/provisionerkeys/daemons": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "List provisioner key daemons", - "operationId": "list-provisioner-key-daemons", - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ProvisionerKeyDaemons" - } - } - } - } - } - }, - "/organizations/{organization}/provisionerkeys/{provisionerkey}": { - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Enterprise"], - "summary": "Delete provisioner key", - "operationId": "delete-provisioner-key", - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Provisioner key name", - "name": "provisionerkey", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/organizations/{organization}/settings/idpsync/available-fields": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get the available organization idp sync claim fields", - "operationId": "get-the-available-organization-idp-sync-claim-fields", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/field-values": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get the organization idp sync claim field values", - "operationId": "get-the-organization-idp-sync-claim-field-values", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "string", - "format": "string", - "description": "Claim Field", - "name": "claimField", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/groups": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get group IdP Sync settings by organization", - "operationId": "get-group-idp-sync-settings-by-organization", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GroupSyncSettings" - } - } - } - }, - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Update group IdP Sync settings by organization", - "operationId": "update-group-idp-sync-settings-by-organization", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "New settings", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.GroupSyncSettings" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GroupSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/groups/config": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Update group IdP Sync config", - "operationId": "update-group-idp-sync-config", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "New config values", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchGroupIDPSyncConfigRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GroupSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/groups/mapping": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Update group IdP Sync mapping", - "operationId": "update-group-idp-sync-mapping", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "Description of the mappings to add and remove", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchGroupIDPSyncMappingRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GroupSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/roles": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get role IdP Sync settings by organization", - "operationId": "get-role-idp-sync-settings-by-organization", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.RoleSyncSettings" - } - } - } - }, - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Update role IdP Sync settings by organization", - "operationId": "update-role-idp-sync-settings-by-organization", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "New settings", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.RoleSyncSettings" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.RoleSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/roles/config": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Update role IdP Sync config", - "operationId": "update-role-idp-sync-config", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "New config values", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchRoleIDPSyncConfigRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.RoleSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/roles/mapping": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Update role IdP Sync mapping", - "operationId": "update-role-idp-sync-mapping", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "Description of the mappings to add and remove", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchRoleIDPSyncMappingRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.RoleSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/templates": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "description": "Returns a list of templates for the specified organization.\nBy default, only non-deprecated templates are returned.\nTo include deprecated templates, specify `deprecated:true` in the search query.", - "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", - "deprecated": true, - "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" - } - } - } - } - }, - "/prebuilds/settings": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Prebuilds"], - "summary": "Get prebuilds settings", - "operationId": "get-prebuilds-settings", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.PrebuildsSettings" - } - } - } - }, - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Prebuilds"], - "summary": "Update prebuilds settings", - "operationId": "update-prebuilds-settings", - "parameters": [ - { - "description": "Prebuilds settings request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PrebuildsSettings" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.PrebuildsSettings" - } - }, - "304": { - "description": "Not Modified" - } - } - } - }, - "/provisionerkeys/{provisionerkey}": { - "get": { - "security": [ - { - "CoderProvisionerKey": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Fetch provisioner key details", - "operationId": "fetch-provisioner-key-details", - "parameters": [ - { - "type": "string", - "description": "Provisioner Key", - "name": "provisionerkey", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ProvisionerKey" - } - } - } - } - }, - "/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/ServiceProviderConfig": { - "get": { - "produces": ["application/scim+json"], - "tags": ["Enterprise"], - "summary": "SCIM 2.0: Service Provider Config", - "operationId": "scim-get-service-provider-config", - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/scim/v2/Users": { - "get": { - "security": [ - { - "Authorization": [] - } - ], - "produces": ["application/scim+json"], - "tags": ["Enterprise"], - "summary": "SCIM 2.0: Get users", - "operationId": "scim-get-users", - "responses": { - "200": { - "description": "OK" - } - } - }, - "post": { - "security": [ - { - "Authorization": [] - } - ], - "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": [ - { - "Authorization": [] - } - ], - "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" - } - } - }, - "put": { - "security": [ - { - "Authorization": [] - } - ], - "produces": ["application/scim+json"], - "tags": ["Enterprise"], - "summary": "SCIM 2.0: Replace user account", - "operationId": "scim-replace-user-status", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "User ID", - "name": "id", - "in": "path", - "required": true - }, - { - "description": "Replace user request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/coderd.SCIMUser" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.User" - } - } - } - }, - "patch": { - "security": [ - { - "Authorization": [] - } - ], - "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" - } - } - } - } - }, - "/settings/idpsync/available-fields": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get the available idp sync claim fields", - "operationId": "get-the-available-idp-sync-claim-fields", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "/settings/idpsync/field-values": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get the idp sync claim field values", - "operationId": "get-the-idp-sync-claim-field-values", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "string", - "format": "string", - "description": "Claim Field", - "name": "claimField", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "/settings/idpsync/organization": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get organization IdP Sync settings", - "operationId": "get-organization-idp-sync-settings", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OrganizationSyncSettings" - } - } - } - }, - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Update organization IdP Sync settings", - "operationId": "update-organization-idp-sync-settings", - "parameters": [ - { - "description": "New settings", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.OrganizationSyncSettings" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OrganizationSyncSettings" - } - } - } - } - }, - "/settings/idpsync/organization/config": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Update organization IdP Sync config", - "operationId": "update-organization-idp-sync-config", - "parameters": [ - { - "description": "New config values", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchOrganizationIDPSyncConfigRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OrganizationSyncSettings" - } - } - } - } - }, - "/settings/idpsync/organization/mapping": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Update organization IdP Sync mapping", - "operationId": "update-organization-idp-sync-mapping", - "parameters": [ - { - "description": "Description of the mappings to add and remove", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchOrganizationIDPSyncMappingRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OrganizationSyncSettings" - } - } - } - } - }, - "/tailnet": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Agents"], - "summary": "User-scoped tailnet RPC connection", - "operationId": "user-scoped-tailnet-rpc-connection", - "responses": { - "101": { - "description": "Switching Protocols" - } - } - } - }, - "/tasks": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Tasks"], - "summary": "List AI tasks", - "operationId": "list-ai-tasks", - "parameters": [ - { - "type": "string", - "description": "Search query for filtering tasks. Supports: owner:\u003cusername/uuid/me\u003e, organization:\u003corg-name/uuid\u003e, status:\u003cstatus\u003e", - "name": "q", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.TasksListResponse" - } - } - } - } - }, - "/tasks/{user}": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Tasks"], - "summary": "Create a new AI task", - "operationId": "create-a-new-ai-task", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "description": "Create task request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.CreateTaskRequest" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/codersdk.Task" - } - } - } - } - }, - "/tasks/{user}/{task}": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Tasks"], - "summary": "Get AI task by ID or name", - "operationId": "get-ai-task-by-id-or-name", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Task ID, or task name", - "name": "task", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Task" - } - } - } - }, - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Tasks"], - "summary": "Delete AI task", - "operationId": "delete-ai-task", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Task ID, or task name", - "name": "task", - "in": "path", - "required": true - } - ], - "responses": { - "202": { - "description": "Accepted" - } - } - } - }, - "/tasks/{user}/{task}/input": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "tags": ["Tasks"], - "summary": "Update AI task input", - "operationId": "update-ai-task-input", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Task ID, or task name", - "name": "task", - "in": "path", - "required": true - }, - { - "description": "Update task input request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateTaskInputRequest" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/tasks/{user}/{task}/logs": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Tasks"], - "summary": "Get AI task logs", - "operationId": "get-ai-task-logs", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Task ID, or task name", - "name": "task", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.TaskLogsResponse" - } - } - } - } - }, - "/tasks/{user}/{task}/send": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "tags": ["Tasks"], - "summary": "Send input to AI task", - "operationId": "send-input-to-ai-task", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Task ID, or task name", - "name": "task", - "in": "path", - "required": true - }, - { - "description": "Task input request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.TaskSendRequest" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/templates": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "description": "Returns a list of templates.\nBy default, only non-deprecated templates are returned.\nTo include deprecated templates, specify `deprecated:true` in the search query.", - "produces": ["application/json"], - "tags": ["Templates"], - "summary": "Get all templates", - "operationId": "get-all-templates", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Template" - } - } - } - } - } - }, - "/templates/examples": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Templates"], - "summary": "Get template examples", - "operationId": "get-template-examples", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.TemplateExample" - } - } - } - } - } - }, - "/templates/{template}": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Templates"], - "summary": "Get template settings by ID", - "operationId": "get-template-settings-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": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Templates"], - "summary": "Update template settings by ID", - "operationId": "update-template-settings-by-id", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Template ID", - "name": "template", - "in": "path", - "required": true - }, - { - "description": "Patch template settings request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateTemplateMeta" - } - } - ], - "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": { - "$ref": "#/definitions/codersdk.TemplateACL" - } - } - } - }, - "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 ACL 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}/prebuilds/invalidate": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Invalidate presets for template", - "operationId": "invalidate-presets-for-template", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Template ID", - "name": "template", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.InvalidatePresetsResponse" - } - } - } - } - }, - "/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}/matched-provisioners": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Templates"], - "summary": "Get template version dry-run matched provisioners", - "operationId": "get-template-version-dry-run-matched-provisioners", - "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.MatchedProvisioners" - } - } - } - } - }, - "/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}/dynamic-parameters": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Templates"], - "summary": "Open dynamic parameters WebSocket by template version", - "operationId": "open-dynamic-parameters-websocket-by-template-version", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Template version ID", - "name": "templateversion", - "in": "path", - "required": true - } - ], - "responses": { - "101": { - "description": "Switching Protocols" - } - } - } - }, - "/templateversions/{templateversion}/dynamic-parameters/evaluate": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Templates"], - "summary": "Evaluate dynamic parameters for template version", - "operationId": "evaluate-dynamic-parameters-for-template-version", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Template version ID", - "name": "templateversion", - "in": "path", - "required": true - }, - { - "description": "Initial parameter values", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.DynamicParametersRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.DynamicParametersResponse" - } - } - } - } - }, - "/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}/presets": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Templates"], - "summary": "Get template version presets", - "operationId": "get-template-version-presets", - "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.Preset" - } - } - } - } - } - }, - "/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.CreateUserRequestWithOrgs" - } - } - ], - "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/oauth2/github/device": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Users"], - "summary": "Get Github device auth.", - "operationId": "get-github-device-auth", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ExternalAuthDevice" - } - } - } - } - }, - "/users/oidc/callback": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Users"], - "summary": "OpenID Connect Callback", - "operationId": "openid-connect-callback", - "responses": { - "307": { - "description": "Temporary Redirect" - } - } - } - }, - "/users/otp/change-password": { - "post": { - "consumes": ["application/json"], - "tags": ["Authorization"], - "summary": "Change password with a one-time passcode", - "operationId": "change-password-with-a-one-time-passcode", - "parameters": [ - { - "description": "Change password request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.ChangePasswordWithOneTimePasscodeRequest" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/users/otp/request": { - "post": { - "consumes": ["application/json"], - "tags": ["Authorization"], - "summary": "Request one-time passcode", - "operationId": "request-one-time-passcode", - "parameters": [ - { - "description": "One-time passcode request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.RequestOneTimePasscodeRequest" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/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/validate-password": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Authorization"], - "summary": "Validate user password", - "operationId": "validate-user-password", - "parameters": [ - { - "description": "Validate user password request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.ValidateUserPasswordRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ValidateUserPasswordResponse" - } - } - } - } - }, - "/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": [] - } - ], - "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" - } - } - } - }, - "/users/{user}/appearance": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Users"], - "summary": "Get user appearance settings", - "operationId": "get-user-appearance-settings", - "parameters": [ - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.UserAppearanceSettings" - } - } - } - }, - "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.UserAppearanceSettings" - } - } - } - } - }, - "/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": "string", - "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": "string", - "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}/notifications/preferences": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Notifications"], - "summary": "Get user notification preferences", - "operationId": "get-user-notification-preferences", - "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.NotificationPreference" - } - } - } - } - }, - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Notifications"], - "summary": "Update user notification preferences", - "operationId": "update-user-notification-preferences", - "parameters": [ - { - "description": "Preferences", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateUserNotificationPreferences" - } - }, - { - "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.NotificationPreference" - } - } - } - } - } - }, - "/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}/preferences": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Users"], - "summary": "Get user preference settings", - "operationId": "get-user-preference-settings", - "parameters": [ - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.UserPreferenceSettings" - } - } - } - }, - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Users"], - "summary": "Update user preference settings", - "operationId": "update-user-preference-settings", - "parameters": [ - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - }, - { - "description": "New preference settings", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateUserPreferenceSettingsRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.UserPreferenceSettings" - } - } - } - } - }, - "/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}/webpush/subscription": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "tags": ["Notifications"], - "summary": "Create user webpush subscription", - "operationId": "create-user-webpush-subscription", - "parameters": [ - { - "description": "Webpush subscription", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.WebpushSubscription" - } - }, - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "x-apidocgen": { - "skip": true - } - }, - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "tags": ["Notifications"], - "summary": "Delete user webpush subscription", - "operationId": "delete-user-webpush-subscription", - "parameters": [ - { - "description": "Webpush subscription", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.DeleteWebpushSubscription" - } - }, - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/users/{user}/webpush/test": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Notifications"], - "summary": "Send a test push notification", - "operationId": "send-a-test-push-notification", - "parameters": [ - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/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" - } - } - } - } - }, - "/users/{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", - "operationId": "create-user-workspace", - "parameters": [ - { - "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" - } - } - } - } - }, - "/workspace-quota/{user}": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get workspace quota by user deprecated", - "operationId": "get-workspace-quota-by-user-deprecated", - "deprecated": true, - "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-status": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Agents"], - "summary": "Patch workspace agent app status", - "operationId": "patch-workspace-agent-app-status", - "parameters": [ - { - "description": "app status", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/agentsdk.PatchAppStatus" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/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/log-source": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Agents"], - "summary": "Post workspace agent log source", - "operationId": "post-workspace-agent-log-source", - "parameters": [ - { - "description": "Log source request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/agentsdk.PostLogSourceRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceAgentLogSource" - } - } - } - } - }, - "/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/reinit": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Agents"], - "summary": "Get workspace agent reinitialization", - "operationId": "get-workspace-agent-reinitialization", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/agentsdk.ReinitializationEvent" - } - } - } - } - }, - "/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/{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}/containers": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Agents"], - "summary": "Get running containers for workspace agent", - "operationId": "get-running-containers-for-workspace-agent", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace agent ID", - "name": "workspaceagent", - "in": "path", - "required": true - }, - { - "type": "string", - "format": "key=value", - "description": "Labels", - "name": "label", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceAgentListContainersResponse" - } - } - } - } - }, - "/workspaceagents/{workspaceagent}/containers/devcontainers/{devcontainer}/recreate": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Agents"], - "summary": "Recreate devcontainer for workspace agent", - "operationId": "recreate-devcontainer-for-workspace-agent", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace agent ID", - "name": "workspaceagent", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Devcontainer ID", - "name": "devcontainer", - "in": "path", - "required": true - } - ], - "responses": { - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/workspaceagents/{workspaceagent}/containers/watch": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Agents"], - "summary": "Watch workspace agent for container updates.", - "operationId": "watch-workspace-agent-for-container-updates", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace agent ID", - "name": "workspaceagent", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceAgentListContainersResponse" - } - } - } - } - }, - "/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", - "deprecated": true, - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace agent ID", - "name": "workspaceagent", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "Success" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/workspaceagents/{workspaceagent}/watch-metadata-ws": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Agents"], - "summary": "Watch for workspace agent metadata updates via WebSockets", - "operationId": "watch-for-workspace-agent-metadata-updates-via-websockets", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace agent ID", - "name": "workspaceagent", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ServerSentEvent" - } - } - }, - "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 - }, - { - "enum": ["running", "pending"], - "type": "string", - "description": "Expected status of the job. If expect_status is supplied, the request will be rejected with 412 Precondition Failed if the job doesn't match the state when performing the cancellation.", - "name": "expect_status", - "in": "query" - } - ], - "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 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" - } - } - } - } - } - }, - "/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" - } - } - } - } - }, - "/workspacebuilds/{workspacebuild}/timings": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Builds"], - "summary": "Get workspace build timings by ID", - "operationId": "get-workspace-build-timings-by-id", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace build ID", - "name": "workspacebuild", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceBuildTimings" - } - } - } - } - }, - "/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/crypto-keys": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get workspace proxy crypto keys", - "operationId": "get-workspace-proxy-crypto-keys", - "parameters": [ - { - "type": "string", - "description": "Feature key", - "name": "feature", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/wsproxysdk.CryptoKeysResponse" - } - } - }, - "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, has-ai-task, has_external_agent.", - "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}/acl": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Workspaces"], - "summary": "Get workspace ACLs", - "operationId": "get-workspace-acls", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceACL" - } - } - } - }, - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": ["Workspaces"], - "summary": "Completely clears the workspace's user and group ACLs.", - "operationId": "completely-clears-the-workspaces-user-and-group-acls", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - }, - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": ["application/json"], - "produces": ["application/json"], - "tags": ["Workspaces"], - "summary": "Update workspace ACL", - "operationId": "update-workspace-acl", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - }, - { - "description": "Update workspace ACL request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateWorkspaceACL" - } - } - ], - "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}/external-agent/{agent}/credentials": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Enterprise"], - "summary": "Get workspace external agent credentials", - "operationId": "get-workspace-external-agent-credentials", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Agent name", - "name": "agent", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ExternalAgentCredentials" - } - } - } - } - }, - "/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": "Delete workspace agent port share", - "operationId": "delete-workspace-agent-port-share", - "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}/timings": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Workspaces"], - "summary": "Get workspace timings by ID", - "operationId": "get-workspace-timings-by-id", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceBuildTimings" - } - } - } - } - }, - "/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": [] - } - ], - "consumes": ["application/json"], - "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 - }, - { - "description": "Post workspace usage request", - "name": "request", - "in": "body", - "schema": { - "$ref": "#/definitions/codersdk.PostWorkspaceUsageRequest" - } - } - ], - "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", - "deprecated": true, - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/workspaces/{workspace}/watch-ws": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": ["application/json"], - "tags": ["Workspaces"], - "summary": "Watch workspace by ID via WebSockets", - "operationId": "watch-workspace-by-id-via-websockets", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ServerSentEvent" - } - } - } - } - } - }, - "definitions": { - "agentsdk.AWSInstanceIdentityToken": { - "type": "object", - "required": ["document", "signature"], - "properties": { - "document": { - "type": "string" - }, - "signature": { - "type": "string" - } - } - }, - "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.PatchAppStatus": { - "type": "object", - "properties": { - "app_slug": { - "type": "string" - }, - "icon": { - "description": "Deprecated: this field is unused and will be removed in a future version.", - "type": "string" - }, - "message": { - "type": "string" - }, - "needs_user_attention": { - "description": "Deprecated: this field is unused and will be removed in a future version.", - "type": "boolean" - }, - "state": { - "$ref": "#/definitions/codersdk.WorkspaceAppStatusState" - }, - "uri": { - "type": "string" - } - } - }, - "agentsdk.PatchLogs": { - "type": "object", - "properties": { - "log_source_id": { - "type": "string" - }, - "logs": { - "type": "array", - "items": { - "$ref": "#/definitions/agentsdk.Log" - } - } - } - }, - "agentsdk.PostLogSourceRequest": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "id": { - "description": "ID is a unique identifier for the log source.\nIt is scoped to a workspace agent, and can be statically\ndefined inside code to prevent duplicate sources from being\ncreated for the same agent.", - "type": "string" - } - } - }, - "agentsdk.ReinitializationEvent": { - "type": "object", - "properties": { - "reason": { - "$ref": "#/definitions/agentsdk.ReinitializationReason" - }, - "workspaceID": { - "type": "string" - } - } - }, - "agentsdk.ReinitializationReason": { - "type": "string", - "enum": ["prebuild_claimed"], - "x-enum-varnames": ["ReinitializeReasonPrebuildClaimed"] - }, - "coderd.SCIMUser": { - "type": "object", - "properties": { - "active": { - "description": "Active is a ptr to prevent the empty value from being interpreted as false.", - "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.AIBridgeAnthropicConfig": { - "type": "object", - "properties": { - "base_url": { - "type": "string" - }, - "key": { - "type": "string" - } - } - }, - "codersdk.AIBridgeBedrockConfig": { - "type": "object", - "properties": { - "access_key": { - "type": "string" - }, - "access_key_secret": { - "type": "string" - }, - "model": { - "type": "string" - }, - "region": { - "type": "string" - }, - "small_fast_model": { - "type": "string" - } - } - }, - "codersdk.AIBridgeConfig": { - "type": "object", - "properties": { - "anthropic": { - "$ref": "#/definitions/codersdk.AIBridgeAnthropicConfig" - }, - "bedrock": { - "$ref": "#/definitions/codersdk.AIBridgeBedrockConfig" - }, - "enabled": { - "type": "boolean" - }, - "inject_coder_mcp_tools": { - "type": "boolean" - }, - "max_concurrency": { - "type": "integer" - }, - "openai": { - "$ref": "#/definitions/codersdk.AIBridgeOpenAIConfig" - }, - "rate_limit": { - "type": "integer" - }, - "retention": { - "type": "integer" - } - } - }, - "codersdk.AIBridgeInterception": { - "type": "object", - "properties": { - "api_key_id": { - "type": "string" - }, - "ended_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "initiator": { - "$ref": "#/definitions/codersdk.MinimalUser" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "model": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "started_at": { - "type": "string", - "format": "date-time" - }, - "token_usages": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AIBridgeTokenUsage" - } - }, - "tool_usages": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AIBridgeToolUsage" - } - }, - "user_prompts": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AIBridgeUserPrompt" - } - } - } - }, - "codersdk.AIBridgeListInterceptionsResponse": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AIBridgeInterception" - } - } - } - }, - "codersdk.AIBridgeOpenAIConfig": { - "type": "object", - "properties": { - "base_url": { - "type": "string" - }, - "key": { - "type": "string" - } - } - }, - "codersdk.AIBridgeTokenUsage": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "input_tokens": { - "type": "integer" - }, - "interception_id": { - "type": "string", - "format": "uuid" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "output_tokens": { - "type": "integer" - }, - "provider_response_id": { - "type": "string" - } - } - }, - "codersdk.AIBridgeToolUsage": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "injected": { - "type": "boolean" - }, - "input": { - "type": "string" - }, - "interception_id": { - "type": "string", - "format": "uuid" - }, - "invocation_error": { - "type": "string" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "provider_response_id": { - "type": "string" - }, - "server_url": { - "type": "string" - }, - "tool": { - "type": "string" - } - } - }, - "codersdk.AIBridgeUserPrompt": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "interception_id": { - "type": "string", - "format": "uuid" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "prompt": { - "type": "string" - }, - "provider_response_id": { - "type": "string" - } - } - }, - "codersdk.AIConfig": { - "type": "object", - "properties": { - "bridge": { - "$ref": "#/definitions/codersdk.AIBridgeConfig" - } - } - }, - "codersdk.APIAllowListTarget": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/codersdk.RBACResource" - } - } - }, - "codersdk.APIKey": { - "type": "object", - "required": [ - "created_at", - "expires_at", - "id", - "last_used", - "lifetime_seconds", - "login_type", - "token_name", - "updated_at", - "user_id" - ], - "properties": { - "allow_list": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.APIAllowListTarget" - } - }, - "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": { - "description": "Deprecated: use Scopes instead.", - "enum": ["all", "application_connect"], - "allOf": [ - { - "$ref": "#/definitions/codersdk.APIKeyScope" - } - ] - }, - "scopes": { - "type": "array", - "items": { - "$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", - "aibridge_interception:*", - "aibridge_interception:create", - "aibridge_interception:read", - "aibridge_interception:update", - "api_key:*", - "api_key:create", - "api_key:delete", - "api_key:read", - "api_key:update", - "assign_org_role:*", - "assign_org_role:assign", - "assign_org_role:create", - "assign_org_role:delete", - "assign_org_role:read", - "assign_org_role:unassign", - "assign_org_role:update", - "assign_role:*", - "assign_role:assign", - "assign_role:read", - "assign_role:unassign", - "audit_log:*", - "audit_log:create", - "audit_log:read", - "coder:all", - "coder:apikeys.manage_self", - "coder:application_connect", - "coder:templates.author", - "coder:templates.build", - "coder:workspaces.access", - "coder:workspaces.create", - "coder:workspaces.delete", - "coder:workspaces.operate", - "connection_log:*", - "connection_log:read", - "connection_log:update", - "crypto_key:*", - "crypto_key:create", - "crypto_key:delete", - "crypto_key:read", - "crypto_key:update", - "debug_info:*", - "debug_info:read", - "deployment_config:*", - "deployment_config:read", - "deployment_config:update", - "deployment_stats:*", - "deployment_stats:read", - "file:*", - "file:create", - "file:read", - "group:*", - "group:create", - "group:delete", - "group:read", - "group:update", - "group_member:*", - "group_member:read", - "idpsync_settings:*", - "idpsync_settings:read", - "idpsync_settings:update", - "inbox_notification:*", - "inbox_notification:create", - "inbox_notification:read", - "inbox_notification:update", - "license:*", - "license:create", - "license:delete", - "license:read", - "notification_message:*", - "notification_message:create", - "notification_message:delete", - "notification_message:read", - "notification_message:update", - "notification_preference:*", - "notification_preference:read", - "notification_preference:update", - "notification_template:*", - "notification_template:read", - "notification_template:update", - "oauth2_app:*", - "oauth2_app:create", - "oauth2_app:delete", - "oauth2_app:read", - "oauth2_app:update", - "oauth2_app_code_token:*", - "oauth2_app_code_token:create", - "oauth2_app_code_token:delete", - "oauth2_app_code_token:read", - "oauth2_app_secret:*", - "oauth2_app_secret:create", - "oauth2_app_secret:delete", - "oauth2_app_secret:read", - "oauth2_app_secret:update", - "organization:*", - "organization:create", - "organization:delete", - "organization:read", - "organization:update", - "organization_member:*", - "organization_member:create", - "organization_member:delete", - "organization_member:read", - "organization_member:update", - "prebuilt_workspace:*", - "prebuilt_workspace:delete", - "prebuilt_workspace:update", - "provisioner_daemon:*", - "provisioner_daemon:create", - "provisioner_daemon:delete", - "provisioner_daemon:read", - "provisioner_daemon:update", - "provisioner_jobs:*", - "provisioner_jobs:create", - "provisioner_jobs:read", - "provisioner_jobs:update", - "replicas:*", - "replicas:read", - "system:*", - "system:create", - "system:delete", - "system:read", - "system:update", - "tailnet_coordinator:*", - "tailnet_coordinator:create", - "tailnet_coordinator:delete", - "tailnet_coordinator:read", - "tailnet_coordinator:update", - "task:*", - "task:create", - "task:delete", - "task:read", - "task:update", - "template:*", - "template:create", - "template:delete", - "template:read", - "template:update", - "template:use", - "template:view_insights", - "usage_event:*", - "usage_event:create", - "usage_event:read", - "usage_event:update", - "user:*", - "user:create", - "user:delete", - "user:read", - "user:read_personal", - "user:update", - "user:update_personal", - "user_secret:*", - "user_secret:create", - "user_secret:delete", - "user_secret:read", - "user_secret:update", - "webpush_subscription:*", - "webpush_subscription:create", - "webpush_subscription:delete", - "webpush_subscription:read", - "workspace:*", - "workspace:application_connect", - "workspace:create", - "workspace:create_agent", - "workspace:delete", - "workspace:delete_agent", - "workspace:read", - "workspace:share", - "workspace:ssh", - "workspace:start", - "workspace:stop", - "workspace:update", - "workspace_agent_devcontainers:*", - "workspace_agent_devcontainers:create", - "workspace_agent_resource_monitor:*", - "workspace_agent_resource_monitor:create", - "workspace_agent_resource_monitor:read", - "workspace_agent_resource_monitor:update", - "workspace_dormant:*", - "workspace_dormant:application_connect", - "workspace_dormant:create", - "workspace_dormant:create_agent", - "workspace_dormant:delete", - "workspace_dormant:delete_agent", - "workspace_dormant:read", - "workspace_dormant:share", - "workspace_dormant:ssh", - "workspace_dormant:start", - "workspace_dormant:stop", - "workspace_dormant:update", - "workspace_proxy:*", - "workspace_proxy:create", - "workspace_proxy:delete", - "workspace_proxy:read", - "workspace_proxy:update" - ], - "x-enum-varnames": [ - "APIKeyScopeAll", - "APIKeyScopeApplicationConnect", - "APIKeyScopeAibridgeInterceptionAll", - "APIKeyScopeAibridgeInterceptionCreate", - "APIKeyScopeAibridgeInterceptionRead", - "APIKeyScopeAibridgeInterceptionUpdate", - "APIKeyScopeApiKeyAll", - "APIKeyScopeApiKeyCreate", - "APIKeyScopeApiKeyDelete", - "APIKeyScopeApiKeyRead", - "APIKeyScopeApiKeyUpdate", - "APIKeyScopeAssignOrgRoleAll", - "APIKeyScopeAssignOrgRoleAssign", - "APIKeyScopeAssignOrgRoleCreate", - "APIKeyScopeAssignOrgRoleDelete", - "APIKeyScopeAssignOrgRoleRead", - "APIKeyScopeAssignOrgRoleUnassign", - "APIKeyScopeAssignOrgRoleUpdate", - "APIKeyScopeAssignRoleAll", - "APIKeyScopeAssignRoleAssign", - "APIKeyScopeAssignRoleRead", - "APIKeyScopeAssignRoleUnassign", - "APIKeyScopeAuditLogAll", - "APIKeyScopeAuditLogCreate", - "APIKeyScopeAuditLogRead", - "APIKeyScopeCoderAll", - "APIKeyScopeCoderApikeysManageSelf", - "APIKeyScopeCoderApplicationConnect", - "APIKeyScopeCoderTemplatesAuthor", - "APIKeyScopeCoderTemplatesBuild", - "APIKeyScopeCoderWorkspacesAccess", - "APIKeyScopeCoderWorkspacesCreate", - "APIKeyScopeCoderWorkspacesDelete", - "APIKeyScopeCoderWorkspacesOperate", - "APIKeyScopeConnectionLogAll", - "APIKeyScopeConnectionLogRead", - "APIKeyScopeConnectionLogUpdate", - "APIKeyScopeCryptoKeyAll", - "APIKeyScopeCryptoKeyCreate", - "APIKeyScopeCryptoKeyDelete", - "APIKeyScopeCryptoKeyRead", - "APIKeyScopeCryptoKeyUpdate", - "APIKeyScopeDebugInfoAll", - "APIKeyScopeDebugInfoRead", - "APIKeyScopeDeploymentConfigAll", - "APIKeyScopeDeploymentConfigRead", - "APIKeyScopeDeploymentConfigUpdate", - "APIKeyScopeDeploymentStatsAll", - "APIKeyScopeDeploymentStatsRead", - "APIKeyScopeFileAll", - "APIKeyScopeFileCreate", - "APIKeyScopeFileRead", - "APIKeyScopeGroupAll", - "APIKeyScopeGroupCreate", - "APIKeyScopeGroupDelete", - "APIKeyScopeGroupRead", - "APIKeyScopeGroupUpdate", - "APIKeyScopeGroupMemberAll", - "APIKeyScopeGroupMemberRead", - "APIKeyScopeIdpsyncSettingsAll", - "APIKeyScopeIdpsyncSettingsRead", - "APIKeyScopeIdpsyncSettingsUpdate", - "APIKeyScopeInboxNotificationAll", - "APIKeyScopeInboxNotificationCreate", - "APIKeyScopeInboxNotificationRead", - "APIKeyScopeInboxNotificationUpdate", - "APIKeyScopeLicenseAll", - "APIKeyScopeLicenseCreate", - "APIKeyScopeLicenseDelete", - "APIKeyScopeLicenseRead", - "APIKeyScopeNotificationMessageAll", - "APIKeyScopeNotificationMessageCreate", - "APIKeyScopeNotificationMessageDelete", - "APIKeyScopeNotificationMessageRead", - "APIKeyScopeNotificationMessageUpdate", - "APIKeyScopeNotificationPreferenceAll", - "APIKeyScopeNotificationPreferenceRead", - "APIKeyScopeNotificationPreferenceUpdate", - "APIKeyScopeNotificationTemplateAll", - "APIKeyScopeNotificationTemplateRead", - "APIKeyScopeNotificationTemplateUpdate", - "APIKeyScopeOauth2AppAll", - "APIKeyScopeOauth2AppCreate", - "APIKeyScopeOauth2AppDelete", - "APIKeyScopeOauth2AppRead", - "APIKeyScopeOauth2AppUpdate", - "APIKeyScopeOauth2AppCodeTokenAll", - "APIKeyScopeOauth2AppCodeTokenCreate", - "APIKeyScopeOauth2AppCodeTokenDelete", - "APIKeyScopeOauth2AppCodeTokenRead", - "APIKeyScopeOauth2AppSecretAll", - "APIKeyScopeOauth2AppSecretCreate", - "APIKeyScopeOauth2AppSecretDelete", - "APIKeyScopeOauth2AppSecretRead", - "APIKeyScopeOauth2AppSecretUpdate", - "APIKeyScopeOrganizationAll", - "APIKeyScopeOrganizationCreate", - "APIKeyScopeOrganizationDelete", - "APIKeyScopeOrganizationRead", - "APIKeyScopeOrganizationUpdate", - "APIKeyScopeOrganizationMemberAll", - "APIKeyScopeOrganizationMemberCreate", - "APIKeyScopeOrganizationMemberDelete", - "APIKeyScopeOrganizationMemberRead", - "APIKeyScopeOrganizationMemberUpdate", - "APIKeyScopePrebuiltWorkspaceAll", - "APIKeyScopePrebuiltWorkspaceDelete", - "APIKeyScopePrebuiltWorkspaceUpdate", - "APIKeyScopeProvisionerDaemonAll", - "APIKeyScopeProvisionerDaemonCreate", - "APIKeyScopeProvisionerDaemonDelete", - "APIKeyScopeProvisionerDaemonRead", - "APIKeyScopeProvisionerDaemonUpdate", - "APIKeyScopeProvisionerJobsAll", - "APIKeyScopeProvisionerJobsCreate", - "APIKeyScopeProvisionerJobsRead", - "APIKeyScopeProvisionerJobsUpdate", - "APIKeyScopeReplicasAll", - "APIKeyScopeReplicasRead", - "APIKeyScopeSystemAll", - "APIKeyScopeSystemCreate", - "APIKeyScopeSystemDelete", - "APIKeyScopeSystemRead", - "APIKeyScopeSystemUpdate", - "APIKeyScopeTailnetCoordinatorAll", - "APIKeyScopeTailnetCoordinatorCreate", - "APIKeyScopeTailnetCoordinatorDelete", - "APIKeyScopeTailnetCoordinatorRead", - "APIKeyScopeTailnetCoordinatorUpdate", - "APIKeyScopeTaskAll", - "APIKeyScopeTaskCreate", - "APIKeyScopeTaskDelete", - "APIKeyScopeTaskRead", - "APIKeyScopeTaskUpdate", - "APIKeyScopeTemplateAll", - "APIKeyScopeTemplateCreate", - "APIKeyScopeTemplateDelete", - "APIKeyScopeTemplateRead", - "APIKeyScopeTemplateUpdate", - "APIKeyScopeTemplateUse", - "APIKeyScopeTemplateViewInsights", - "APIKeyScopeUsageEventAll", - "APIKeyScopeUsageEventCreate", - "APIKeyScopeUsageEventRead", - "APIKeyScopeUsageEventUpdate", - "APIKeyScopeUserAll", - "APIKeyScopeUserCreate", - "APIKeyScopeUserDelete", - "APIKeyScopeUserRead", - "APIKeyScopeUserReadPersonal", - "APIKeyScopeUserUpdate", - "APIKeyScopeUserUpdatePersonal", - "APIKeyScopeUserSecretAll", - "APIKeyScopeUserSecretCreate", - "APIKeyScopeUserSecretDelete", - "APIKeyScopeUserSecretRead", - "APIKeyScopeUserSecretUpdate", - "APIKeyScopeWebpushSubscriptionAll", - "APIKeyScopeWebpushSubscriptionCreate", - "APIKeyScopeWebpushSubscriptionDelete", - "APIKeyScopeWebpushSubscriptionRead", - "APIKeyScopeWorkspaceAll", - "APIKeyScopeWorkspaceApplicationConnect", - "APIKeyScopeWorkspaceCreate", - "APIKeyScopeWorkspaceCreateAgent", - "APIKeyScopeWorkspaceDelete", - "APIKeyScopeWorkspaceDeleteAgent", - "APIKeyScopeWorkspaceRead", - "APIKeyScopeWorkspaceShare", - "APIKeyScopeWorkspaceSsh", - "APIKeyScopeWorkspaceStart", - "APIKeyScopeWorkspaceStop", - "APIKeyScopeWorkspaceUpdate", - "APIKeyScopeWorkspaceAgentDevcontainersAll", - "APIKeyScopeWorkspaceAgentDevcontainersCreate", - "APIKeyScopeWorkspaceAgentResourceMonitorAll", - "APIKeyScopeWorkspaceAgentResourceMonitorCreate", - "APIKeyScopeWorkspaceAgentResourceMonitorRead", - "APIKeyScopeWorkspaceAgentResourceMonitorUpdate", - "APIKeyScopeWorkspaceDormantAll", - "APIKeyScopeWorkspaceDormantApplicationConnect", - "APIKeyScopeWorkspaceDormantCreate", - "APIKeyScopeWorkspaceDormantCreateAgent", - "APIKeyScopeWorkspaceDormantDelete", - "APIKeyScopeWorkspaceDormantDeleteAgent", - "APIKeyScopeWorkspaceDormantRead", - "APIKeyScopeWorkspaceDormantShare", - "APIKeyScopeWorkspaceDormantSsh", - "APIKeyScopeWorkspaceDormantStart", - "APIKeyScopeWorkspaceDormantStop", - "APIKeyScopeWorkspaceDormantUpdate", - "APIKeyScopeWorkspaceProxyAll", - "APIKeyScopeWorkspaceProxyCreate", - "APIKeyScopeWorkspaceProxyDelete", - "APIKeyScopeWorkspaceProxyRead", - "APIKeyScopeWorkspaceProxyUpdate" - ] - }, - "codersdk.AddLicenseRequest": { - "type": "object", - "required": ["license"], - "properties": { - "license": { - "type": "string" - } - } - }, - "codersdk.AgentConnectionTiming": { - "type": "object", - "properties": { - "ended_at": { - "type": "string", - "format": "date-time" - }, - "stage": { - "$ref": "#/definitions/codersdk.TimingStage" - }, - "started_at": { - "type": "string", - "format": "date-time" - }, - "workspace_agent_id": { - "type": "string" - }, - "workspace_agent_name": { - "type": "string" - } - } - }, - "codersdk.AgentScriptTiming": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "ended_at": { - "type": "string", - "format": "date-time" - }, - "exit_code": { - "type": "integer" - }, - "stage": { - "$ref": "#/definitions/codersdk.TimingStage" - }, - "started_at": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "workspace_agent_id": { - "type": "string" - }, - "workspace_agent_name": { - "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": { - "announcement_banners": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.BannerConfig" - } - }, - "application_name": { - "type": "string" - }, - "docs_url": { - "type": "string" - }, - "logo_url": { - "type": "string" - }, - "service_banner": { - "description": "Deprecated: ServiceBanner has been replaced by AnnouncementBanners.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.BannerConfig" - } - ] - }, - "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" - }, - "built_in": { - "description": "BuiltIn roles are immutable", - "type": "boolean" - }, - "display_name": { - "type": "string" - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_member_permissions": { - "description": "OrganizationMemberPermissions are specific for the organization in the field 'OrganizationID' above.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "organization_permissions": { - "description": "OrganizationPermissions are specific for the organization in the field 'OrganizationID' above.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "site_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "user_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - } - } - }, - "codersdk.AuditAction": { - "type": "string", - "enum": [ - "create", - "write", - "delete", - "start", - "stop", - "login", - "logout", - "register", - "request_password_reset", - "connect", - "disconnect", - "open", - "close" - ], - "x-enum-varnames": [ - "AuditActionCreate", - "AuditActionWrite", - "AuditActionDelete", - "AuditActionStart", - "AuditActionStop", - "AuditActionLogin", - "AuditActionLogout", - "AuditActionRegister", - "AuditActionRequestPasswordReset", - "AuditActionConnect", - "AuditActionDisconnect", - "AuditActionOpen", - "AuditActionClose" - ] - }, - "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": "object" - }, - "description": { - "type": "string" - }, - "diff": { - "$ref": "#/definitions/codersdk.AuditDiff" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "ip": { - "type": "string" - }, - "is_deleted": { - "type": "boolean" - }, - "organization": { - "$ref": "#/definitions/codersdk.MinimalOrganization" - }, - "organization_id": { - "description": "Deprecated: Use 'organization.id' instead.", - "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.GithubAuthMethod" - }, - "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": { - "enum": ["create", "read", "update", "delete"], - "allOf": [ - { - "$ref": "#/definitions/codersdk.RBACAction" - } - ] - }, - "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": { - "any_org": { - "description": "AnyOrgOwner (optional) will disregard the org_owner when checking for permissions.\nThis cannot be set to true if the OrganizationID is set.", - "type": "boolean" - }, - "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.BannerConfig": { - "type": "object", - "properties": { - "background_color": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "message": { - "type": "string" - } - } - }, - "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" - }, - "provisioner_api_version": { - "description": "ProvisionerAPIVersion is the current version of the Provisioner API", - "type": "string" - }, - "telemetry": { - "description": "Telemetry is a boolean that indicates whether telemetry is enabled.", - "type": "boolean" - }, - "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" - }, - "webpush_public_key": { - "description": "WebPushPublicKey is the public key for push notifications via Web Push.", - "type": "string" - }, - "workspace_proxy": { - "type": "boolean" - } - } - }, - "codersdk.BuildReason": { - "type": "string", - "enum": [ - "initiator", - "autostart", - "autostop", - "dormancy", - "dashboard", - "cli", - "ssh_connection", - "vscode_connection", - "jetbrains_connection" - ], - "x-enum-varnames": [ - "BuildReasonInitiator", - "BuildReasonAutostart", - "BuildReasonAutostop", - "BuildReasonDormancy", - "BuildReasonDashboard", - "BuildReasonCLI", - "BuildReasonSSHConnection", - "BuildReasonVSCodeConnection", - "BuildReasonJetbrainsConnection" - ] - }, - "codersdk.CORSBehavior": { - "type": "string", - "enum": ["simple", "passthru"], - "x-enum-varnames": ["CORSBehaviorSimple", "CORSBehaviorPassthru"] - }, - "codersdk.ChangePasswordWithOneTimePasscodeRequest": { - "type": "object", - "required": ["email", "one_time_passcode", "password"], - "properties": { - "email": { - "type": "string", - "format": "email" - }, - "one_time_passcode": { - "type": "string" - }, - "password": { - "type": "string" - } - } - }, - "codersdk.ConnectionLatency": { - "type": "object", - "properties": { - "p50": { - "type": "number", - "example": 31.312 - }, - "p95": { - "type": "number", - "example": 119.832 - } - } - }, - "codersdk.ConnectionLog": { - "type": "object", - "properties": { - "agent_name": { - "type": "string" - }, - "connect_time": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "ip": { - "type": "string" - }, - "organization": { - "$ref": "#/definitions/codersdk.MinimalOrganization" - }, - "ssh_info": { - "description": "SSHInfo is only set when `type` is one of:\n- `ConnectionTypeSSH`\n- `ConnectionTypeReconnectingPTY`\n- `ConnectionTypeVSCode`\n- `ConnectionTypeJetBrains`", - "allOf": [ - { - "$ref": "#/definitions/codersdk.ConnectionLogSSHInfo" - } - ] - }, - "type": { - "$ref": "#/definitions/codersdk.ConnectionType" - }, - "web_info": { - "description": "WebInfo is only set when `type` is one of:\n- `ConnectionTypePortForwarding`\n- `ConnectionTypeWorkspaceApp`", - "allOf": [ - { - "$ref": "#/definitions/codersdk.ConnectionLogWebInfo" - } - ] - }, - "workspace_id": { - "type": "string", - "format": "uuid" - }, - "workspace_name": { - "type": "string" - }, - "workspace_owner_id": { - "type": "string", - "format": "uuid" - }, - "workspace_owner_username": { - "type": "string" - } - } - }, - "codersdk.ConnectionLogResponse": { - "type": "object", - "properties": { - "connection_logs": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ConnectionLog" - } - }, - "count": { - "type": "integer" - } - } - }, - "codersdk.ConnectionLogSSHInfo": { - "type": "object", - "properties": { - "connection_id": { - "type": "string", - "format": "uuid" - }, - "disconnect_reason": { - "description": "DisconnectReason is omitted if a disconnect event with the same connection ID\nhas not yet been seen.", - "type": "string" - }, - "disconnect_time": { - "description": "DisconnectTime is omitted if a disconnect event with the same connection ID\nhas not yet been seen.", - "type": "string", - "format": "date-time" - }, - "exit_code": { - "description": "ExitCode is the exit code of the SSH session. It is omitted if a\ndisconnect event with the same connection ID has not yet been seen.", - "type": "integer" - } - } - }, - "codersdk.ConnectionLogWebInfo": { - "type": "object", - "properties": { - "slug_or_port": { - "type": "string" - }, - "status_code": { - "description": "StatusCode is the HTTP status code of the request.", - "type": "integer" - }, - "user": { - "description": "User is omitted if the connection event was from an unauthenticated user.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.User" - } - ] - }, - "user_agent": { - "type": "string" - } - } - }, - "codersdk.ConnectionType": { - "type": "string", - "enum": [ - "ssh", - "vscode", - "jetbrains", - "reconnecting_pty", - "workspace_app", - "port_forwarding" - ], - "x-enum-varnames": [ - "ConnectionTypeSSH", - "ConnectionTypeVSCode", - "ConnectionTypeJetBrains", - "ConnectionTypeReconnectingPTY", - "ConnectionTypeWorkspaceApp", - "ConnectionTypePortForwarding" - ] - }, - "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" - }, - "name": { - "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", - "required": ["name"], - "properties": { - "avatar_url": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "name": { - "type": "string" - }, - "quota_allowance": { - "type": "integer" - } - } - }, - "codersdk.CreateOrganizationRequest": { - "type": "object", - "required": ["name"], - "properties": { - "description": { - "type": "string" - }, - "display_name": { - "description": "DisplayName will default to the same value as `Name` if not provided.", - "type": "string" - }, - "icon": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "codersdk.CreateProvisionerKeyResponse": { - "type": "object", - "properties": { - "key": { - "type": "string" - } - } - }, - "codersdk.CreateTaskRequest": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "input": { - "type": "string" - }, - "name": { - "type": "string" - }, - "template_version_id": { - "type": "string", - "format": "uuid" - }, - "template_version_preset_id": { - "type": "string", - "format": "uuid" - } - } - }, - "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" - } - ] - }, - "cors_behavior": { - "description": "CORSBehavior allows optionally specifying the CORS behavior for all shared ports.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.CORSBehavior" - } - ] - }, - "default_ttl_ms": { - "description": "DefaultTTLMillis allows optionally specifying the default TTL\nfor all workspaces created from this template.", - "type": "integer" - }, - "delete_ttl_ms": { - "description": "TimeTilDormantAutoDeleteMillis allows optionally specifying the max lifetime before Coder\npermanently deletes dormant workspaces created from this template.", - "type": "integer" - }, - "description": { - "description": "Description is a description of what the template contains. It must be\nless than 128 bytes.", - "type": "string" - }, - "disable_everyone_group_access": { - "description": "DisableEveryoneGroupAccess allows optionally disabling the default\nbehavior of granting the 'everyone' group access to use the template.\nIf this is set to true, the template will not be available to all users,\nand must be explicitly granted to users or groups in the permissions settings\nof the template.", - "type": "boolean" - }, - "display_name": { - "description": "DisplayName is the displayed name of the template.", - "type": "string" - }, - "dormant_ttl_ms": { - "description": "TimeTilDormantMillis allows optionally specifying the max lifetime before Coder\nlocks inactive workspaces created from this template.", - "type": "integer" - }, - "failure_ttl_ms": { - "description": "FailureTTLMillis allows optionally specifying the max lifetime before Coder\nstops all resources for failed workspaces created from this template.", - "type": "integer" - }, - "icon": { - "description": "Icon is a relative path or external URL that specifies\nan icon to be displayed in the dashboard.", - "type": "string" - }, - "max_port_share_level": { - "description": "MaxPortShareLevel allows optionally specifying the maximum port share level\nfor workspaces created from the template.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" - } - ] - }, - "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_use_classic_parameter_flow": { - "description": "UseClassicParameterFlow allows optionally specifying whether\nthe template should use the classic parameter flow. The default if unset is\ntrue, and is why `*bool` is used here. When dynamic parameters becomes\nthe default, this will default to false.", - "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" - } - ] - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "request_id": { - "type": "string", - "format": "uuid" - }, - "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": { - "allow_list": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.APIAllowListTarget" - } - }, - "lifetime": { - "type": "integer" - }, - "scope": { - "description": "Deprecated: use Scopes instead.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.APIKeyScope" - } - ] - }, - "scopes": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.APIKeyScope" - } - }, - "token_name": { - "type": "string" - } - } - }, - "codersdk.CreateUserRequestWithOrgs": { - "type": "object", - "required": ["email", "username"], - "properties": { - "email": { - "type": "string", - "format": "email" - }, - "login_type": { - "description": "UserLoginType defaults to LoginTypePassword.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.LoginType" - } - ] - }, - "name": { - "type": "string" - }, - "organization_ids": { - "description": "OrganizationIDs is a list of organization IDs that the user should be a member of.", - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - }, - "password": { - "type": "string" - }, - "user_status": { - "description": "UserStatus defaults to UserStatusDormant.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.UserStatus" - } - ] - }, - "username": { - "type": "string" - } - } - }, - "codersdk.CreateWorkspaceBuildReason": { - "type": "string", - "enum": [ - "dashboard", - "cli", - "ssh_connection", - "vscode_connection", - "jetbrains_connection" - ], - "x-enum-varnames": [ - "CreateWorkspaceBuildReasonDashboard", - "CreateWorkspaceBuildReasonCLI", - "CreateWorkspaceBuildReasonSSHConnection", - "CreateWorkspaceBuildReasonVSCodeConnection", - "CreateWorkspaceBuildReasonJetbrainsConnection" - ] - }, - "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" - }, - "reason": { - "description": "Reason sets the reason for the workspace build.", - "enum": [ - "dashboard", - "cli", - "ssh_connection", - "vscode_connection", - "jetbrains_connection" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.CreateWorkspaceBuildReason" - } - ] - }, - "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" - }, - "template_version_preset_id": { - "description": "TemplateVersionPresetID is the ID of the template version preset to use for the build.", - "type": "string", - "format": "uuid" - }, - "transition": { - "enum": ["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. Workspace names: - Must start with a letter or number - Can only contain letters, numbers, and hyphens - Cannot contain spaces or special characters - Cannot be named `new` or `create` - Must be unique within your workspaces - Maximum length of 32 characters", - "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" - }, - "template_version_preset_id": { - "type": "string", - "format": "uuid" - }, - "ttl_ms": { - "type": "integer" - } - } - }, - "codersdk.CryptoKey": { - "type": "object", - "properties": { - "deletes_at": { - "type": "string", - "format": "date-time" - }, - "feature": { - "$ref": "#/definitions/codersdk.CryptoKeyFeature" - }, - "secret": { - "type": "string" - }, - "sequence": { - "type": "integer" - }, - "starts_at": { - "type": "string", - "format": "date-time" - } - } - }, - "codersdk.CryptoKeyFeature": { - "type": "string", - "enum": [ - "workspace_apps_api_key", - "workspace_apps_token", - "oidc_convert", - "tailnet_resume" - ], - "x-enum-varnames": [ - "CryptoKeyFeatureWorkspaceAppsAPIKey", - "CryptoKeyFeatureWorkspaceAppsToken", - "CryptoKeyFeatureOIDCConvert", - "CryptoKeyFeatureTailnetResume" - ] - }, - "codersdk.CustomNotificationContent": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "title": { - "type": "string" - } - } - }, - "codersdk.CustomNotificationRequest": { - "type": "object", - "properties": { - "content": { - "$ref": "#/definitions/codersdk.CustomNotificationContent" - } - } - }, - "codersdk.CustomRoleRequest": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "name": { - "type": "string" - }, - "organization_member_permissions": { - "description": "OrganizationMemberPermissions are specific to the organization the role belongs to.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "organization_permissions": { - "description": "OrganizationPermissions are specific to the organization the role belongs to.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "site_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "user_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - } - } - }, - "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.DeleteExternalAuthByIDResponse": { - "type": "object", - "properties": { - "token_revocation_error": { - "type": "string" - }, - "token_revoked": { - "description": "TokenRevoked set to true if token revocation was attempted and was successful", - "type": "boolean" - } - } - }, - "codersdk.DeleteWebpushSubscription": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - } - } - }, - "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" - }, - "additional_csp_policy": { - "type": "array", - "items": { - "type": "string" - } - }, - "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" - }, - "ai": { - "$ref": "#/definitions/codersdk.AIConfig" - }, - "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" - }, - "disable_workspace_sharing": { - "type": "boolean" - }, - "docs_url": { - "$ref": "#/definitions/serpent.URL" - }, - "enable_authz_recording": { - "type": "boolean" - }, - "enable_terraform_debug_mode": { - "type": "boolean" - }, - "ephemeral_deployment": { - "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" - }, - "hide_ai_tasks": { - "type": "boolean" - }, - "http_address": { - "description": "HTTPAddress is a string because it may be set to zero to disable.", - "type": "string" - }, - "http_cookies": { - "$ref": "#/definitions/codersdk.HTTPCookieConfig" - }, - "job_hang_detector_interval": { - "type": "integer" - }, - "logging": { - "$ref": "#/definitions/codersdk.LoggingConfig" - }, - "metrics_cache_refresh_interval": { - "type": "integer" - }, - "notifications": { - "$ref": "#/definitions/codersdk.NotificationsConfig" - }, - "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" - }, - "retention": { - "$ref": "#/definitions/codersdk.RetentionConfig" - }, - "scim_api_key": { - "type": "string" - }, - "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" - }, - "workspace_hostname_suffix": { - "type": "string" - }, - "workspace_prebuilds": { - "$ref": "#/definitions/codersdk.PrebuildsConfig" - }, - "write_config": { - "type": "boolean" - } - } - }, - "codersdk.DiagnosticExtra": { - "type": "object", - "properties": { - "code": { - "type": "string" - } - } - }, - "codersdk.DiagnosticSeverityString": { - "type": "string", - "enum": ["error", "warning"], - "x-enum-varnames": [ - "DiagnosticSeverityError", - "DiagnosticSeverityWarning" - ] - }, - "codersdk.DisplayApp": { - "type": "string", - "enum": [ - "vscode", - "vscode_insiders", - "web_terminal", - "port_forwarding_helper", - "ssh_helper" - ], - "x-enum-varnames": [ - "DisplayAppVSCodeDesktop", - "DisplayAppVSCodeInsiders", - "DisplayAppWebTerminal", - "DisplayAppPortForward", - "DisplayAppSSH" - ] - }, - "codersdk.DynamicParametersRequest": { - "type": "object", - "properties": { - "id": { - "description": "ID identifies the request. The response contains the same\nID so that the client can match it to the request.", - "type": "integer" - }, - "inputs": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "owner_id": { - "description": "OwnerID if uuid.Nil, it defaults to `codersdk.Me`", - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.DynamicParametersResponse": { - "type": "object", - "properties": { - "diagnostics": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.FriendlyDiagnostic" - } - }, - "id": { - "type": "integer" - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.PreviewParameter" - } - } - } - }, - "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", - "notifications", - "workspace-usage", - "web-push", - "oauth2", - "mcp-server-http", - "workspace-sharing", - "terraform-directory-reuse" - ], - "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.", - "ExperimentMCPServerHTTP": "Enables the MCP HTTP server functionality.", - "ExperimentNotifications": "Sends notifications via SMTP and webhooks following certain events.", - "ExperimentOAuth2": "Enables OAuth2 provider functionality.", - "ExperimentTerraformWorkspace": "Enables reuse of existing terraform directory for builds", - "ExperimentWebPush": "Enables web push notifications through the browser.", - "ExperimentWorkspaceSharing": "Enables updating workspace ACLs for sharing with users and groups.", - "ExperimentWorkspaceUsage": "Enables the new workspace usage tracking." - }, - "x-enum-varnames": [ - "ExperimentExample", - "ExperimentAutoFillParameters", - "ExperimentNotifications", - "ExperimentWorkspaceUsage", - "ExperimentWebPush", - "ExperimentOAuth2", - "ExperimentMCPServerHTTP", - "ExperimentWorkspaceSharing", - "ExperimentTerraformWorkspace" - ] - }, - "codersdk.ExternalAPIKeyScopes": { - "type": "object", - "properties": { - "external": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.APIKeyScope" - } - } - } - }, - "codersdk.ExternalAgentCredentials": { - "type": "object", - "properties": { - "agent_token": { - "type": "string" - }, - "command": { - "type": "string" - } - } - }, - "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" - } - }, - "supports_revocation": { - "type": "boolean" - }, - "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" - }, - "id": { - "description": "ID is a unique identifier for the auth config.\nIt defaults to `type` when not provided.", - "type": "string" - }, - "mcp_tool_allow_regex": { - "type": "string" - }, - "mcp_tool_deny_regex": { - "type": "string" - }, - "mcp_url": { - "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" - }, - "revoke_url": { - "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" - }, - "id": { - "type": "integer" - }, - "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" - }, - "soft_limit": { - "description": "SoftLimit is the soft limit of the feature, and is only used for showing\nincluded limits in the dashboard. No license validation or warnings are\ngenerated from this value.", - "type": "integer" - }, - "usage_period": { - "description": "UsagePeriod denotes that the usage is a counter that accumulates over\nthis period (and most likely resets with the issuance of the next\nlicense).\n\nThese dates are determined from the license that this entitlement comes\nfrom, see enterprise/coderd/license/license.go.\n\nOnly certain features set these fields:\n- FeatureManagedAgentLimit", - "allOf": [ - { - "$ref": "#/definitions/codersdk.UsagePeriod" - } - ] - } - } - }, - "codersdk.FriendlyDiagnostic": { - "type": "object", - "properties": { - "detail": { - "type": "string" - }, - "extra": { - "$ref": "#/definitions/codersdk.DiagnosticExtra" - }, - "severity": { - "$ref": "#/definitions/codersdk.DiagnosticSeverityString" - }, - "summary": { - "type": "string" - } - } - }, - "codersdk.GenerateAPIKeyResponse": { - "type": "object", - "properties": { - "key": { - "type": "string" - } - } - }, - "codersdk.GetInboxNotificationResponse": { - "type": "object", - "properties": { - "notification": { - "$ref": "#/definitions/codersdk.InboxNotification" - }, - "unread_count": { - "type": "integer" - } - } - }, - "codersdk.GetUserStatusCountsResponse": { - "type": "object", - "properties": { - "status_counts": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.UserStatusChangeCount" - } - } - } - } - }, - "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": { - "description": "PublicKey is the SSH public key in OpenSSH format.\nExample: \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3OmYJvT7q1cF1azbybYy0OZ9yrXfA+M6Lr4vzX5zlp\\n\"\nNote: The key includes a trailing newline (\\n).", - "type": "string" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "user_id": { - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.GithubAuthMethod": { - "type": "object", - "properties": { - "default_provider_configured": { - "type": "boolean" - }, - "enabled": { - "type": "boolean" - } - } - }, - "codersdk.Group": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ReducedUser" - } - }, - "name": { - "type": "string" - }, - "organization_display_name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_name": { - "type": "string" - }, - "quota_allowance": { - "type": "integer" - }, - "source": { - "$ref": "#/definitions/codersdk.GroupSource" - }, - "total_member_count": { - "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", - "type": "integer" - } - } - }, - "codersdk.GroupSource": { - "type": "string", - "enum": ["user", "oidc"], - "x-enum-varnames": ["GroupSourceUser", "GroupSourceOIDC"] - }, - "codersdk.GroupSyncSettings": { - "type": "object", - "properties": { - "auto_create_missing_groups": { - "description": "AutoCreateMissing controls whether groups returned by the OIDC provider\nare automatically created in Coder if they are missing.", - "type": "boolean" - }, - "field": { - "description": "Field is the name of the claim field that specifies what groups a user\nshould be in. If empty, no groups will be synced.", - "type": "string" - }, - "legacy_group_name_mapping": { - "description": "LegacyNameMapping is deprecated. It remaps an IDP group name to\na Coder group name. Since configuration is now done at runtime,\ngroup IDs are used to account for group renames.\nFor legacy configurations, this config option has to remain.\nDeprecated: Use Mapping instead.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "mapping": { - "description": "Mapping is a map from OIDC groups to Coder group IDs", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "regex_filter": { - "description": "RegexFilter is a regular expression that filters the groups returned by\nthe OIDC provider. Any group not matched by this regex will be ignored.\nIf the group filter is nil, then no group filtering will occur.", - "allOf": [ - { - "$ref": "#/definitions/regexp.Regexp" - } - ] - } - } - }, - "codersdk.HTTPCookieConfig": { - "type": "object", - "properties": { - "same_site": { - "type": "string" - }, - "secure_auth_cookie": { - "type": "boolean" - } - } - }, - "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.InboxNotification": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.InboxNotificationAction" - } - }, - "content": { - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "icon": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "read_at": { - "type": "string" - }, - "targets": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - }, - "template_id": { - "type": "string", - "format": "uuid" - }, - "title": { - "type": "string" - }, - "user_id": { - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.InboxNotificationAction": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "codersdk.InsightsReportInterval": { - "type": "string", - "enum": ["day", "week"], - "x-enum-varnames": [ - "InsightsReportIntervalDay", - "InsightsReportIntervalWeek" - ] - }, - "codersdk.InvalidatePresetsResponse": { - "type": "object", - "properties": { - "invalidated": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.InvalidatedPreset" - } - } - } - }, - "codersdk.InvalidatedPreset": { - "type": "object", - "properties": { - "preset_name": { - "type": "string" - }, - "template_name": { - "type": "string" - }, - "template_version_name": { - "type": "string" - } - } - }, - "codersdk.IssueReconnectingPTYSignedTokenRequest": { - "type": "object", - "required": ["agentID", "url"], - "properties": { - "agentID": { - "type": "string", - "format": "uuid" - }, - "url": { - "description": "URL is the URL of the reconnecting-pty endpoint you are connecting to.", - "type": "string" - } - } - }, - "codersdk.IssueReconnectingPTYSignedTokenResponse": { - "type": "object", - "properties": { - "signed_token": { - "type": "string" - } - } - }, - "codersdk.JobErrorCode": { - "type": "string", - "enum": ["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", "star"] - }, - "location": { - "type": "string", - "enum": ["navbar", "dropdown"] - }, - "name": { - "type": "string" - }, - "target": { - "type": "string" - } - } - }, - "codersdk.ListInboxNotificationsResponse": { - "type": "object", - "properties": { - "notifications": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.InboxNotification" - } - }, - "unread_count": { - "type": "integer" - } - } - }, - "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.MatchedProvisioners": { - "type": "object", - "properties": { - "available": { - "description": "Available is the number of provisioner daemons that are available to\ntake jobs. This may be less than the count if some provisioners are\nbusy or have been stopped.", - "type": "integer" - }, - "count": { - "description": "Count is the number of provisioner daemons that matched the given\ntags. If the count is 0, it means no provisioner daemons matched the\nrequested tags.", - "type": "integer" - }, - "most_recently_seen": { - "description": "MostRecentlySeen is the most recently seen time of the set of matched\nprovisioners. If no provisioners matched, this field will be null.", - "type": "string", - "format": "date-time" - } - } - }, - "codersdk.MinimalOrganization": { - "type": "object", - "required": ["id"], - "properties": { - "display_name": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - } - } - }, - "codersdk.MinimalUser": { - "type": "object", - "required": ["id", "username"], - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - }, - "username": { - "type": "string" - } - } - }, - "codersdk.NotificationMethodsResponse": { - "type": "object", - "properties": { - "available": { - "type": "array", - "items": { - "type": "string" - } - }, - "default": { - "type": "string" - } - } - }, - "codersdk.NotificationPreference": { - "type": "object", - "properties": { - "disabled": { - "type": "boolean" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "updated_at": { - "type": "string", - "format": "date-time" - } - } - }, - "codersdk.NotificationTemplate": { - "type": "object", - "properties": { - "actions": { - "type": "string" - }, - "body_template": { - "type": "string" - }, - "enabled_by_default": { - "type": "boolean" - }, - "group": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "kind": { - "type": "string" - }, - "method": { - "type": "string" - }, - "name": { - "type": "string" - }, - "title_template": { - "type": "string" - } - } - }, - "codersdk.NotificationsConfig": { - "type": "object", - "properties": { - "dispatch_timeout": { - "description": "How long to wait while a notification is being sent before giving up.", - "type": "integer" - }, - "email": { - "description": "SMTP settings.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.NotificationsEmailConfig" - } - ] - }, - "fetch_interval": { - "description": "How often to query the database for queued notifications.", - "type": "integer" - }, - "inbox": { - "description": "Inbox settings.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.NotificationsInboxConfig" - } - ] - }, - "lease_count": { - "description": "How many notifications a notifier should lease per fetch interval.", - "type": "integer" - }, - "lease_period": { - "description": "How long a notifier should lease a message. This is effectively how long a notification is 'owned'\nby a notifier, and once this period expires it will be available for lease by another notifier. Leasing\nis important in order for multiple running notifiers to not pick the same messages to deliver concurrently.\nThis lease period will only expire if a notifier shuts down ungracefully; a dispatch of the notification\nreleases the lease.", - "type": "integer" - }, - "max_send_attempts": { - "description": "The upper limit of attempts to send a notification.", - "type": "integer" - }, - "method": { - "description": "Which delivery method to use (available options: 'smtp', 'webhook').", - "type": "string" - }, - "retry_interval": { - "description": "The minimum time between retries.", - "type": "integer" - }, - "sync_buffer_size": { - "description": "The notifications system buffers message updates in memory to ease pressure on the database.\nThis option controls how many updates are kept in memory. The lower this value the\nlower the change of state inconsistency in a non-graceful shutdown - but it also increases load on the\ndatabase. It is recommended to keep this option at its default value.", - "type": "integer" - }, - "sync_interval": { - "description": "The notifications system buffers message updates in memory to ease pressure on the database.\nThis option controls how often it synchronizes its state with the database. The shorter this value the\nlower the change of state inconsistency in a non-graceful shutdown - but it also increases load on the\ndatabase. It is recommended to keep this option at its default value.", - "type": "integer" - }, - "webhook": { - "description": "Webhook settings.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.NotificationsWebhookConfig" - } - ] - } - } - }, - "codersdk.NotificationsEmailAuthConfig": { - "type": "object", - "properties": { - "identity": { - "description": "Identity for PLAIN auth.", - "type": "string" - }, - "password": { - "description": "Password for LOGIN/PLAIN auth.", - "type": "string" - }, - "password_file": { - "description": "File from which to load the password for LOGIN/PLAIN auth.", - "type": "string" - }, - "username": { - "description": "Username for LOGIN/PLAIN auth.", - "type": "string" - } - } - }, - "codersdk.NotificationsEmailConfig": { - "type": "object", - "properties": { - "auth": { - "description": "Authentication details.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.NotificationsEmailAuthConfig" - } - ] - }, - "force_tls": { - "description": "ForceTLS causes a TLS connection to be attempted.", - "type": "boolean" - }, - "from": { - "description": "The sender's address.", - "type": "string" - }, - "hello": { - "description": "The hostname identifying the SMTP server.", - "type": "string" - }, - "smarthost": { - "description": "The intermediary SMTP host through which emails are sent (host:port).", - "type": "string" - }, - "tls": { - "description": "TLS details.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.NotificationsEmailTLSConfig" - } - ] - } - } - }, - "codersdk.NotificationsEmailTLSConfig": { - "type": "object", - "properties": { - "ca_file": { - "description": "CAFile specifies the location of the CA certificate to use.", - "type": "string" - }, - "cert_file": { - "description": "CertFile specifies the location of the certificate to use.", - "type": "string" - }, - "insecure_skip_verify": { - "description": "InsecureSkipVerify skips target certificate validation.", - "type": "boolean" - }, - "key_file": { - "description": "KeyFile specifies the location of the key to use.", - "type": "string" - }, - "server_name": { - "description": "ServerName to verify the hostname for the targets.", - "type": "string" - }, - "start_tls": { - "description": "StartTLS attempts to upgrade plain connections to TLS.", - "type": "boolean" - } - } - }, - "codersdk.NotificationsInboxConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } - }, - "codersdk.NotificationsSettings": { - "type": "object", - "properties": { - "notifier_paused": { - "type": "boolean" - } - } - }, - "codersdk.NotificationsWebhookConfig": { - "type": "object", - "properties": { - "endpoint": { - "description": "The URL to which the payload will be sent with an HTTP POST request.", - "allOf": [ - { - "$ref": "#/definitions/serpent.URL" - } - ] - } - } - }, - "codersdk.NullHCLString": { - "type": "object", - "properties": { - "valid": { - "type": "boolean" - }, - "value": { - "type": "string" - } - } - }, - "codersdk.OAuth2AppEndpoints": { - "type": "object", - "properties": { - "authorization": { - "type": "string" - }, - "device_authorization": { - "description": "DeviceAuth is optional.", - "type": "string" - }, - "token": { - "type": "string" - }, - "token_revoke": { - "type": "string" - } - } - }, - "codersdk.OAuth2AuthorizationServerMetadata": { - "type": "object", - "properties": { - "authorization_endpoint": { - "type": "string" - }, - "code_challenge_methods_supported": { - "type": "array", - "items": { - "type": "string" - } - }, - "grant_types_supported": { - "type": "array", - "items": { - "type": "string" - } - }, - "issuer": { - "type": "string" - }, - "registration_endpoint": { - "type": "string" - }, - "response_types_supported": { - "type": "array", - "items": { - "type": "string" - } - }, - "revocation_endpoint": { - "type": "string" - }, - "scopes_supported": { - "type": "array", - "items": { - "type": "string" - } - }, - "token_endpoint": { - "type": "string" - }, - "token_endpoint_auth_methods_supported": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "codersdk.OAuth2ClientConfiguration": { - "type": "object", - "properties": { - "client_id": { - "type": "string" - }, - "client_id_issued_at": { - "type": "integer" - }, - "client_name": { - "type": "string" - }, - "client_secret_expires_at": { - "type": "integer" - }, - "client_uri": { - "type": "string" - }, - "contacts": { - "type": "array", - "items": { - "type": "string" - } - }, - "grant_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "jwks": { - "type": "object" - }, - "jwks_uri": { - "type": "string" - }, - "logo_uri": { - "type": "string" - }, - "policy_uri": { - "type": "string" - }, - "redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - }, - "registration_access_token": { - "type": "array", - "items": { - "type": "integer" - } - }, - "registration_client_uri": { - "type": "string" - }, - "response_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string" - }, - "software_id": { - "type": "string" - }, - "software_version": { - "type": "string" - }, - "token_endpoint_auth_method": { - "type": "string" - }, - "tos_uri": { - "type": "string" - } - } - }, - "codersdk.OAuth2ClientRegistrationRequest": { - "type": "object", - "properties": { - "client_name": { - "type": "string" - }, - "client_uri": { - "type": "string" - }, - "contacts": { - "type": "array", - "items": { - "type": "string" - } - }, - "grant_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "jwks": { - "type": "object" - }, - "jwks_uri": { - "type": "string" - }, - "logo_uri": { - "type": "string" - }, - "policy_uri": { - "type": "string" - }, - "redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - }, - "response_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string" - }, - "software_id": { - "type": "string" - }, - "software_statement": { - "type": "string" - }, - "software_version": { - "type": "string" - }, - "token_endpoint_auth_method": { - "type": "string" - }, - "tos_uri": { - "type": "string" - } - } - }, - "codersdk.OAuth2ClientRegistrationResponse": { - "type": "object", - "properties": { - "client_id": { - "type": "string" - }, - "client_id_issued_at": { - "type": "integer" - }, - "client_name": { - "type": "string" - }, - "client_secret": { - "type": "string" - }, - "client_secret_expires_at": { - "type": "integer" - }, - "client_uri": { - "type": "string" - }, - "contacts": { - "type": "array", - "items": { - "type": "string" - } - }, - "grant_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "jwks": { - "type": "object" - }, - "jwks_uri": { - "type": "string" - }, - "logo_uri": { - "type": "string" - }, - "policy_uri": { - "type": "string" - }, - "redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - }, - "registration_access_token": { - "type": "string" - }, - "registration_client_uri": { - "type": "string" - }, - "response_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string" - }, - "software_id": { - "type": "string" - }, - "software_version": { - "type": "string" - }, - "token_endpoint_auth_method": { - "type": "string" - }, - "tos_uri": { - "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" - }, - "default_provider_enable": { - "type": "boolean" - }, - "device_flow": { - "type": "boolean" - }, - "enterprise_base_url": { - "type": "string" - } - } - }, - "codersdk.OAuth2ProtectedResourceMetadata": { - "type": "object", - "properties": { - "authorization_servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "bearer_methods_supported": { - "type": "array", - "items": { - "type": "string" - } - }, - "resource": { - "type": "string" - }, - "scopes_supported": { - "type": "array", - "items": { - "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": { - "description": "IgnoreUserInfo \u0026 UserInfoFromAccessToken are mutually exclusive. Only 1\ncan be set to true. Ideally this would be an enum with 3 states, ['none',\n'userinfo', 'access_token']. However, for backward compatibility,\n`ignore_user_info` must remain. And `access_token` is a niche, non-spec\ncompliant edge case. So it's use is rare, and should not be advised.", - "type": "boolean" - }, - "issuer_url": { - "type": "string" - }, - "name_field": { - "type": "string" - }, - "organization_assign_default": { - "type": "boolean" - }, - "organization_field": { - "type": "string" - }, - "organization_mapping": { - "type": "object" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - } - }, - "sign_in_text": { - "type": "string" - }, - "signups_disabled_text": { - "type": "string" - }, - "skip_issuer_checks": { - "type": "boolean" - }, - "source_user_info_from_access_token": { - "description": "UserInfoFromAccessToken as mentioned above is an edge case. This allows\nsourcing the user_info from the access token itself instead of a user_info\nendpoint. This assumes the access token is a valid JWT with a set of claims to\nbe merged with the id_token.", - "type": "boolean" - }, - "user_role_field": { - "type": "string" - }, - "user_role_mapping": { - "type": "object" - }, - "user_roles_default": { - "type": "array", - "items": { - "type": "string" - } - }, - "username_field": { - "type": "string" - } - } - }, - "codersdk.OptionType": { - "type": "string", - "enum": ["string", "number", "bool", "list(string)"], - "x-enum-varnames": [ - "OptionTypeString", - "OptionTypeNumber", - "OptionTypeBoolean", - "OptionTypeListString" - ] - }, - "codersdk.Organization": { - "type": "object", - "required": ["created_at", "id", "is_default", "updated_at"], - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "description": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "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.SlimRole" - } - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "user_id": { - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.OrganizationMemberWithUserData": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "email": { - "type": "string" - }, - "global_roles": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.SlimRole" - } - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.SlimRole" - } - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "user_id": { - "type": "string", - "format": "uuid" - }, - "username": { - "type": "string" - } - } - }, - "codersdk.OrganizationSyncSettings": { - "type": "object", - "properties": { - "field": { - "description": "Field selects the claim field to be used as the created user's\norganizations. If the field is the empty string, then no organization\nupdates will ever come from the OIDC provider.", - "type": "string" - }, - "mapping": { - "description": "Mapping maps from an OIDC claim --\u003e Coder organization uuid", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "organization_assign_default": { - "description": "AssignDefault will ensure the default org is always included\nfor every user, regardless of their claims. This preserves legacy behavior.", - "type": "boolean" - } - } - }, - "codersdk.PaginatedMembersResponse": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.OrganizationMemberWithUserData" - } - } - } - }, - "codersdk.ParameterFormType": { - "type": "string", - "enum": [ - "", - "radio", - "slider", - "input", - "dropdown", - "checkbox", - "switch", - "multi-select", - "tag-select", - "textarea", - "error" - ], - "x-enum-varnames": [ - "ParameterFormTypeDefault", - "ParameterFormTypeRadio", - "ParameterFormTypeSlider", - "ParameterFormTypeInput", - "ParameterFormTypeDropdown", - "ParameterFormTypeCheckbox", - "ParameterFormTypeSwitch", - "ParameterFormTypeMultiSelect", - "ParameterFormTypeTagSelect", - "ParameterFormTypeTextArea", - "ParameterFormTypeError" - ] - }, - "codersdk.PatchGroupIDPSyncConfigRequest": { - "type": "object", - "properties": { - "auto_create_missing_groups": { - "type": "boolean" - }, - "field": { - "type": "string" - }, - "regex_filter": { - "$ref": "#/definitions/regexp.Regexp" - } - } - }, - "codersdk.PatchGroupIDPSyncMappingRequest": { - "type": "object", - "properties": { - "add": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "type": "string" - } - } - } - }, - "remove": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "type": "string" - } - } - } - } - } - }, - "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.PatchOrganizationIDPSyncConfigRequest": { - "type": "object", - "properties": { - "assign_default": { - "type": "boolean" - }, - "field": { - "type": "string" - } - } - }, - "codersdk.PatchOrganizationIDPSyncMappingRequest": { - "type": "object", - "properties": { - "add": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "type": "string" - } - } - } - }, - "remove": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "type": "string" - } - } - } - } - } - }, - "codersdk.PatchRoleIDPSyncConfigRequest": { - "type": "object", - "properties": { - "field": { - "type": "string" - } - } - }, - "codersdk.PatchRoleIDPSyncMappingRequest": { - "type": "object", - "properties": { - "add": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "type": "string" - } - } - } - }, - "remove": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "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.Permission": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/codersdk.RBACAction" - }, - "negate": { - "description": "Negate makes this a negative permission", - "type": "boolean" - }, - "resource_type": { - "$ref": "#/definitions/codersdk.RBACResource" - } - } - }, - "codersdk.PostOAuth2ProviderAppRequest": { - "type": "object", - "required": ["callback_url", "name"], - "properties": { - "callback_url": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "codersdk.PostWorkspaceUsageRequest": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "format": "uuid" - }, - "app_name": { - "$ref": "#/definitions/codersdk.UsageAppName" - } - } - }, - "codersdk.PprofConfig": { - "type": "object", - "properties": { - "address": { - "$ref": "#/definitions/serpent.HostPort" - }, - "enable": { - "type": "boolean" - } - } - }, - "codersdk.PrebuildsConfig": { - "type": "object", - "properties": { - "failure_hard_limit": { - "description": "FailureHardLimit defines the maximum number of consecutive failed prebuild attempts allowed\nbefore a preset is considered to be in a hard limit state. When a preset hits this limit,\nno new prebuilds will be created until the limit is reset.\nFailureHardLimit is disabled when set to zero.", - "type": "integer" - }, - "reconciliation_backoff_interval": { - "description": "ReconciliationBackoffInterval specifies the amount of time to increase the backoff interval\nwhen errors occur during reconciliation.", - "type": "integer" - }, - "reconciliation_backoff_lookback": { - "description": "ReconciliationBackoffLookback determines the time window to look back when calculating\nthe number of failed prebuilds, which influences the backoff strategy.", - "type": "integer" - }, - "reconciliation_interval": { - "description": "ReconciliationInterval defines how often the workspace prebuilds state should be reconciled.", - "type": "integer" - } - } - }, - "codersdk.PrebuildsSettings": { - "type": "object", - "properties": { - "reconciliation_paused": { - "type": "boolean" - } - } - }, - "codersdk.Preset": { - "type": "object", - "properties": { - "default": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "desiredPrebuildInstances": { - "type": "integer" - }, - "icon": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.PresetParameter" - } - } - } - }, - "codersdk.PresetParameter": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - } - }, - "codersdk.PreviewParameter": { - "type": "object", - "properties": { - "default_value": { - "$ref": "#/definitions/codersdk.NullHCLString" - }, - "description": { - "type": "string" - }, - "diagnostics": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.FriendlyDiagnostic" - } - }, - "display_name": { - "type": "string" - }, - "ephemeral": { - "type": "boolean" - }, - "form_type": { - "$ref": "#/definitions/codersdk.ParameterFormType" - }, - "icon": { - "type": "string" - }, - "mutable": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.PreviewParameterOption" - } - }, - "order": { - "description": "legacy_variable_name was removed (= 14)", - "type": "integer" - }, - "required": { - "type": "boolean" - }, - "styling": { - "$ref": "#/definitions/codersdk.PreviewParameterStyling" - }, - "type": { - "$ref": "#/definitions/codersdk.OptionType" - }, - "validations": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.PreviewParameterValidation" - } - }, - "value": { - "$ref": "#/definitions/codersdk.NullHCLString" - } - } - }, - "codersdk.PreviewParameterOption": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "name": { - "type": "string" - }, - "value": { - "$ref": "#/definitions/codersdk.NullHCLString" - } - } - }, - "codersdk.PreviewParameterStyling": { - "type": "object", - "properties": { - "disabled": { - "type": "boolean" - }, - "label": { - "type": "string" - }, - "mask_input": { - "type": "boolean" - }, - "placeholder": { - "type": "string" - } - } - }, - "codersdk.PreviewParameterValidation": { - "type": "object", - "properties": { - "validation_error": { - "type": "string" - }, - "validation_max": { - "type": "integer" - }, - "validation_min": { - "type": "integer" - }, - "validation_monotonic": { - "type": "string" - }, - "validation_regex": { - "description": "All validation attributes are optional.", - "type": "string" - } - } - }, - "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" - }, - "daemon_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "daemons": { - "description": "Daemons is the number of built-in terraform provisioners.", - "type": "integer" - }, - "force_cancel_interval": { - "type": "integer" - } - } - }, - "codersdk.ProvisionerDaemon": { - "type": "object", - "properties": { - "api_version": { - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "current_job": { - "$ref": "#/definitions/codersdk.ProvisionerDaemonJob" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "key_id": { - "type": "string", - "format": "uuid" - }, - "key_name": { - "description": "Optional fields.", - "type": "string" - }, - "last_seen_at": { - "type": "string", - "format": "date-time" - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "previous_job": { - "$ref": "#/definitions/codersdk.ProvisionerDaemonJob" - }, - "provisioners": { - "type": "array", - "items": { - "type": "string" - } - }, - "status": { - "enum": ["offline", "idle", "busy"], - "allOf": [ - { - "$ref": "#/definitions/codersdk.ProvisionerDaemonStatus" - } - ] - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "version": { - "type": "string" - } - } - }, - "codersdk.ProvisionerDaemonJob": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "status": { - "enum": [ - "pending", - "running", - "succeeded", - "canceling", - "canceled", - "failed" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.ProvisionerJobStatus" - } - ] - }, - "template_display_name": { - "type": "string" - }, - "template_icon": { - "type": "string" - }, - "template_name": { - "type": "string" - } - } - }, - "codersdk.ProvisionerDaemonStatus": { - "type": "string", - "enum": ["offline", "idle", "busy"], - "x-enum-varnames": [ - "ProvisionerDaemonOffline", - "ProvisionerDaemonIdle", - "ProvisionerDaemonBusy" - ] - }, - "codersdk.ProvisionerJob": { - "type": "object", - "properties": { - "available_workers": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - }, - "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" - }, - "initiator_id": { - "type": "string", - "format": "uuid" - }, - "input": { - "$ref": "#/definitions/codersdk.ProvisionerJobInput" - }, - "logs_overflowed": { - "type": "boolean" - }, - "metadata": { - "$ref": "#/definitions/codersdk.ProvisionerJobMetadata" - }, - "organization_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" - } - }, - "type": { - "$ref": "#/definitions/codersdk.ProvisionerJobType" - }, - "worker_id": { - "type": "string", - "format": "uuid" - }, - "worker_name": { - "type": "string" - } - } - }, - "codersdk.ProvisionerJobInput": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "template_version_id": { - "type": "string", - "format": "uuid" - }, - "workspace_build_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.ProvisionerJobMetadata": { - "type": "object", - "properties": { - "template_display_name": { - "type": "string" - }, - "template_icon": { - "type": "string" - }, - "template_id": { - "type": "string", - "format": "uuid" - }, - "template_name": { - "type": "string" - }, - "template_version_name": { - "type": "string" - }, - "workspace_id": { - "type": "string", - "format": "uuid" - }, - "workspace_name": { - "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.ProvisionerJobType": { - "type": "string", - "enum": [ - "template_version_import", - "workspace_build", - "template_version_dry_run" - ], - "x-enum-varnames": [ - "ProvisionerJobTypeTemplateVersionImport", - "ProvisionerJobTypeWorkspaceBuild", - "ProvisionerJobTypeTemplateVersionDryRun" - ] - }, - "codersdk.ProvisionerKey": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - }, - "organization": { - "type": "string", - "format": "uuid" - }, - "tags": { - "$ref": "#/definitions/codersdk.ProvisionerKeyTags" - } - } - }, - "codersdk.ProvisionerKeyDaemons": { - "type": "object", - "properties": { - "daemons": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ProvisionerDaemon" - } - }, - "key": { - "$ref": "#/definitions/codersdk.ProvisionerKey" - } - } - }, - "codersdk.ProvisionerKeyTags": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "codersdk.ProvisionerLogLevel": { - "type": "string", - "enum": ["debug"], - "x-enum-varnames": ["ProvisionerLogLevelDebug"] - }, - "codersdk.ProvisionerStorageMethod": { - "type": "string", - "enum": ["file"], - "x-enum-varnames": ["ProvisionerStorageMethodFile"] - }, - "codersdk.ProvisionerTiming": { - "type": "object", - "properties": { - "action": { - "type": "string" - }, - "ended_at": { - "type": "string", - "format": "date-time" - }, - "job_id": { - "type": "string", - "format": "uuid" - }, - "resource": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stage": { - "$ref": "#/definitions/codersdk.TimingStage" - }, - "started_at": { - "type": "string", - "format": "date-time" - } - } - }, - "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.RBACAction": { - "type": "string", - "enum": [ - "application_connect", - "assign", - "create", - "create_agent", - "delete", - "delete_agent", - "read", - "read_personal", - "ssh", - "share", - "unassign", - "update", - "update_personal", - "use", - "view_insights", - "start", - "stop" - ], - "x-enum-varnames": [ - "ActionApplicationConnect", - "ActionAssign", - "ActionCreate", - "ActionCreateAgent", - "ActionDelete", - "ActionDeleteAgent", - "ActionRead", - "ActionReadPersonal", - "ActionSSH", - "ActionShare", - "ActionUnassign", - "ActionUpdate", - "ActionUpdatePersonal", - "ActionUse", - "ActionViewInsights", - "ActionWorkspaceStart", - "ActionWorkspaceStop" - ] - }, - "codersdk.RBACResource": { - "type": "string", - "enum": [ - "*", - "aibridge_interception", - "api_key", - "assign_org_role", - "assign_role", - "audit_log", - "connection_log", - "crypto_key", - "debug_info", - "deployment_config", - "deployment_stats", - "file", - "group", - "group_member", - "idpsync_settings", - "inbox_notification", - "license", - "notification_message", - "notification_preference", - "notification_template", - "oauth2_app", - "oauth2_app_code_token", - "oauth2_app_secret", - "organization", - "organization_member", - "prebuilt_workspace", - "provisioner_daemon", - "provisioner_jobs", - "replicas", - "system", - "tailnet_coordinator", - "task", - "template", - "usage_event", - "user", - "user_secret", - "webpush_subscription", - "workspace", - "workspace_agent_devcontainers", - "workspace_agent_resource_monitor", - "workspace_dormant", - "workspace_proxy" - ], - "x-enum-varnames": [ - "ResourceWildcard", - "ResourceAibridgeInterception", - "ResourceApiKey", - "ResourceAssignOrgRole", - "ResourceAssignRole", - "ResourceAuditLog", - "ResourceConnectionLog", - "ResourceCryptoKey", - "ResourceDebugInfo", - "ResourceDeploymentConfig", - "ResourceDeploymentStats", - "ResourceFile", - "ResourceGroup", - "ResourceGroupMember", - "ResourceIdpsyncSettings", - "ResourceInboxNotification", - "ResourceLicense", - "ResourceNotificationMessage", - "ResourceNotificationPreference", - "ResourceNotificationTemplate", - "ResourceOauth2App", - "ResourceOauth2AppCodeToken", - "ResourceOauth2AppSecret", - "ResourceOrganization", - "ResourceOrganizationMember", - "ResourcePrebuiltWorkspace", - "ResourceProvisionerDaemon", - "ResourceProvisionerJobs", - "ResourceReplicas", - "ResourceSystem", - "ResourceTailnetCoordinator", - "ResourceTask", - "ResourceTemplate", - "ResourceUsageEvent", - "ResourceUser", - "ResourceUserSecret", - "ResourceWebpushSubscription", - "ResourceWorkspace", - "ResourceWorkspaceAgentDevcontainers", - "ResourceWorkspaceAgentResourceMonitor", - "ResourceWorkspaceDormant", - "ResourceWorkspaceProxy" - ] - }, - "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": { - "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", - "type": "string" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "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.RequestOneTimePasscodeRequest": { - "type": "object", - "required": ["email"], - "properties": { - "email": { - "type": "string", - "format": "email" - } - } - }, - "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", - "notifications_settings", - "prebuilds_settings", - "workspace_proxy", - "organization", - "oauth2_provider_app", - "oauth2_provider_app_secret", - "custom_role", - "organization_member", - "notification_template", - "idp_sync_settings_organization", - "idp_sync_settings_group", - "idp_sync_settings_role", - "workspace_agent", - "workspace_app", - "task" - ], - "x-enum-varnames": [ - "ResourceTypeTemplate", - "ResourceTypeTemplateVersion", - "ResourceTypeUser", - "ResourceTypeWorkspace", - "ResourceTypeWorkspaceBuild", - "ResourceTypeGitSSHKey", - "ResourceTypeAPIKey", - "ResourceTypeGroup", - "ResourceTypeLicense", - "ResourceTypeConvertLogin", - "ResourceTypeHealthSettings", - "ResourceTypeNotificationsSettings", - "ResourceTypePrebuildsSettings", - "ResourceTypeWorkspaceProxy", - "ResourceTypeOrganization", - "ResourceTypeOAuth2ProviderApp", - "ResourceTypeOAuth2ProviderAppSecret", - "ResourceTypeCustomRole", - "ResourceTypeOrganizationMember", - "ResourceTypeNotificationTemplate", - "ResourceTypeIdpSyncSettingsOrganization", - "ResourceTypeIdpSyncSettingsGroup", - "ResourceTypeIdpSyncSettingsRole", - "ResourceTypeWorkspaceAgent", - "ResourceTypeWorkspaceApp", - "ResourceTypeTask" - ] - }, - "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.RetentionConfig": { - "type": "object", - "properties": { - "api_keys": { - "description": "APIKeys controls how long expired API keys are retained before being deleted.\nKeys are only deleted if they have been expired for at least this duration.\nDefaults to 7 days to preserve existing behavior.", - "type": "integer" - }, - "audit_logs": { - "description": "AuditLogs controls how long audit log entries are retained.\nSet to 0 to disable (keep indefinitely).", - "type": "integer" - }, - "connection_logs": { - "description": "ConnectionLogs controls how long connection log entries are retained.\nSet to 0 to disable (keep indefinitely).", - "type": "integer" - }, - "workspace_agent_logs": { - "description": "WorkspaceAgentLogs controls how long workspace agent logs are retained.\nLogs are deleted if the agent hasn't connected within this period.\nLogs from the latest build are always retained regardless of age.\nDefaults to 7 days to preserve existing behavior.", - "type": "integer" - } - } - }, - "codersdk.Role": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_member_permissions": { - "description": "OrganizationMemberPermissions are specific for the organization in the field 'OrganizationID' above.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "organization_permissions": { - "description": "OrganizationPermissions are specific for the organization in the field 'OrganizationID' above.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "site_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "user_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - } - } - }, - "codersdk.RoleSyncSettings": { - "type": "object", - "properties": { - "field": { - "description": "Field is the name of the claim field that specifies what organization roles\na user should be given. If empty, no roles will be synced.", - "type": "string" - }, - "mapping": { - "description": "Mapping is a map from OIDC groups to Coder organization roles.", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "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": { - "description": "HostnamePrefix is the prefix we append to workspace names for SSH hostnames.\nDeprecated: use HostnameSuffix instead.", - "type": "string" - }, - "hostname_suffix": { - "description": "HostnameSuffix is the suffix to append to workspace names for SSH hostnames.", - "type": "string" - }, - "ssh_config_options": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "codersdk.ServerSentEvent": { - "type": "object", - "properties": { - "data": {}, - "type": { - "$ref": "#/definitions/codersdk.ServerSentEventType" - } - } - }, - "codersdk.ServerSentEventType": { - "type": "string", - "enum": ["ping", "data", "error"], - "x-enum-varnames": [ - "ServerSentEventTypePing", - "ServerSentEventTypeData", - "ServerSentEventTypeError" - ] - }, - "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 only for browser, workspace app and oauth sessions.", - "type": "integer" - }, - "default_token_lifetime": { - "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_admin_token_lifetime": { - "type": "integer" - }, - "max_token_lifetime": { - "type": "integer" - }, - "refresh_default_duration": { - "description": "RefreshDefaultDuration is the default lifetime for OAuth2 refresh tokens.\nThis should generally be longer than access token lifetimes to allow\nrefreshing after access token expiry.", - "type": "integer" - } - } - }, - "codersdk.SlimRole": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string" - } - } - }, - "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.Task": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "current_state": { - "$ref": "#/definitions/codersdk.TaskStateEntry" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "initial_prompt": { - "type": "string" - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "owner_avatar_url": { - "type": "string" - }, - "owner_id": { - "type": "string", - "format": "uuid" - }, - "owner_name": { - "type": "string" - }, - "status": { - "enum": [ - "pending", - "initializing", - "active", - "paused", - "unknown", - "error" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.TaskStatus" - } - ] - }, - "template_display_name": { - "type": "string" - }, - "template_icon": { - "type": "string" - }, - "template_id": { - "type": "string", - "format": "uuid" - }, - "template_name": { - "type": "string" - }, - "template_version_id": { - "type": "string", - "format": "uuid" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "workspace_agent_health": { - "$ref": "#/definitions/codersdk.WorkspaceAgentHealth" - }, - "workspace_agent_id": { - "format": "uuid", - "allOf": [ - { - "$ref": "#/definitions/uuid.NullUUID" - } - ] - }, - "workspace_agent_lifecycle": { - "$ref": "#/definitions/codersdk.WorkspaceAgentLifecycle" - }, - "workspace_app_id": { - "format": "uuid", - "allOf": [ - { - "$ref": "#/definitions/uuid.NullUUID" - } - ] - }, - "workspace_build_number": { - "type": "integer" - }, - "workspace_id": { - "format": "uuid", - "allOf": [ - { - "$ref": "#/definitions/uuid.NullUUID" - } - ] - }, - "workspace_name": { - "type": "string" - }, - "workspace_status": { - "enum": [ - "pending", - "starting", - "running", - "stopping", - "stopped", - "failed", - "canceling", - "canceled", - "deleting", - "deleted" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceStatus" - } - ] - } - } - }, - "codersdk.TaskLogEntry": { - "type": "object", - "properties": { - "content": { - "type": "string" - }, - "id": { - "type": "integer" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "type": { - "$ref": "#/definitions/codersdk.TaskLogType" - } - } - }, - "codersdk.TaskLogType": { - "type": "string", - "enum": ["input", "output"], - "x-enum-varnames": ["TaskLogTypeInput", "TaskLogTypeOutput"] - }, - "codersdk.TaskLogsResponse": { - "type": "object", - "properties": { - "logs": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.TaskLogEntry" - } - } - } - }, - "codersdk.TaskSendRequest": { - "type": "object", - "properties": { - "input": { - "type": "string" - } - } - }, - "codersdk.TaskState": { - "type": "string", - "enum": ["working", "idle", "complete", "failed"], - "x-enum-varnames": [ - "TaskStateWorking", - "TaskStateIdle", - "TaskStateComplete", - "TaskStateFailed" - ] - }, - "codersdk.TaskStateEntry": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/codersdk.TaskState" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "uri": { - "type": "string" - } - } - }, - "codersdk.TaskStatus": { - "type": "string", - "enum": [ - "pending", - "initializing", - "active", - "paused", - "unknown", - "error" - ], - "x-enum-varnames": [ - "TaskStatusPending", - "TaskStatusInitializing", - "TaskStatusActive", - "TaskStatusPaused", - "TaskStatusUnknown", - "TaskStatusError" - ] - }, - "codersdk.TasksListResponse": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "tasks": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Task" - } - } - } - }, - "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" - }, - "cors_behavior": { - "$ref": "#/definitions/codersdk.CORSBehavior" - }, - "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_display_name": { - "type": "string" - }, - "organization_icon": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_name": { - "type": "string", - "format": "url" - }, - "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" - }, - "use_classic_parameter_flow": { - "type": "boolean" - }, - "use_terraform_workspace_cache": { - "type": "boolean" - } - } - }, - "codersdk.TemplateACL": { - "type": "object", - "properties": { - "group": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.TemplateGroup" - } - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.TemplateUser" - } - } - } - }, - "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" - } - }, - "times_used": { - "type": "integer", - "example": 2 - }, - "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.TemplateGroup": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ReducedUser" - } - }, - "name": { - "type": "string" - }, - "organization_display_name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_name": { - "type": "string" - }, - "quota_allowance": { - "type": "integer" - }, - "role": { - "enum": ["admin", "use"], - "allOf": [ - { - "$ref": "#/definitions/codersdk.TemplateRole" - } - ] - }, - "source": { - "$ref": "#/definitions/codersdk.GroupSource" - }, - "total_member_count": { - "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", - "type": "integer" - } - } - }, - "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.SlimRole" - } - }, - "status": { - "enum": ["active", "suspended"], - "allOf": [ - { - "$ref": "#/definitions/codersdk.UserStatus" - } - ] - }, - "theme_preference": { - "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", - "type": "string" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - } - }, - "codersdk.TemplateVersion": { - "type": "object", - "properties": { - "archived": { - "type": "boolean" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "created_by": { - "$ref": "#/definitions/codersdk.MinimalUser" - }, - "has_external_agent": { - "type": "boolean" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "job": { - "$ref": "#/definitions/codersdk.ProvisionerJob" - }, - "matched_provisioners": { - "$ref": "#/definitions/codersdk.MatchedProvisioners" - }, - "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" - }, - "form_type": { - "description": "FormType has an enum value of empty string, `\"\"`.\nKeep the leading comma in the enums struct tag.", - "type": "string", - "enum": [ - "", - "radio", - "dropdown", - "input", - "textarea", - "slider", - "checkbox", - "switch", - "tag-select", - "multi-select", - "error" - ] - }, - "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.TerminalFontName": { - "type": "string", - "enum": [ - "", - "ibm-plex-mono", - "fira-code", - "source-code-pro", - "jetbrains-mono" - ], - "x-enum-varnames": [ - "TerminalFontUnknown", - "TerminalFontIBMPlexMono", - "TerminalFontFiraCode", - "TerminalFontSourceCodePro", - "TerminalFontJetBrainsMono" - ] - }, - "codersdk.TimingStage": { - "type": "string", - "enum": [ - "init", - "plan", - "graph", - "apply", - "start", - "stop", - "cron", - "connect" - ], - "x-enum-varnames": [ - "TimingStageInit", - "TimingStagePlan", - "TimingStageGraph", - "TimingStageApply", - "TimingStageStart", - "TimingStageStop", - "TimingStageCron", - "TimingStageConnect" - ] - }, - "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": { - "announcement_banners": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.BannerConfig" - } - }, - "application_name": { - "type": "string" - }, - "logo_url": { - "type": "string" - }, - "service_banner": { - "description": "Deprecated: ServiceBanner has been replaced by AnnouncementBanners.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.BannerConfig" - } - ] - } - } - }, - "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.UpdateOrganizationRequest": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "codersdk.UpdateRoles": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "codersdk.UpdateTaskInputRequest": { - "type": "object", - "properties": { - "input": { - "type": "string" - } - } - }, - "codersdk.UpdateTemplateACL": { - "type": "object", - "properties": { - "group_perms": { - "description": "GroupPerms is a mapping from valid group UUIDs to the template role they\nshould be granted. To remove a group from the template, use \"\" as the role\n(available as a constant named codersdk.TemplateRoleDeleted)", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/codersdk.TemplateRole" - }, - "example": { - "8bd26b20-f3e8-48be-a903-46bb920cf671": "use", - "\u003cgroup_id\u003e": "admin" - } - }, - "user_perms": { - "description": "UserPerms is a mapping from valid user UUIDs to the template role they\nshould be granted. To remove a user from the template, use \"\" as the role\n(available as a constant named codersdk.TemplateRoleDeleted)", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/codersdk.TemplateRole" - }, - "example": { - "4df59e74-c027-470b-ab4d-cbba8963a5e9": "use", - "\u003cuser_id\u003e": "admin" - } - } - } - }, - "codersdk.UpdateTemplateMeta": { - "type": "object", - "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": { - "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 can only be set if your license\nincludes the advanced template scheduling feature. If you attempt to set this\nvalue while unlicensed, it will be ignored.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.TemplateAutostopRequirement" - } - ] - }, - "cors_behavior": { - "$ref": "#/definitions/codersdk.CORSBehavior" - }, - "default_ttl_ms": { - "type": "integer" - }, - "deprecation_message": { - "description": "DeprecationMessage if set, will mark the template as deprecated and block\nany new workspaces from using this template.\nIf passed an empty string, will remove the deprecated message, making\nthe template usable for new workspaces again.", - "type": "string" - }, - "description": { - "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": { - "type": "string" - }, - "failure_ttl_ms": { - "type": "integer" - }, - "icon": { - "type": "string" - }, - "max_port_share_level": { - "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" - }, - "name": { - "type": "string" - }, - "require_active_version": { - "description": "RequireActiveVersion mandates workspaces built using this template\nuse the active version of the template. This option has no\neffect on template admins.", - "type": "boolean" - }, - "time_til_dormant_autodelete_ms": { - "type": "integer" - }, - "time_til_dormant_ms": { - "type": "integer" - }, - "update_workspace_dormant_at": { - "description": "UpdateWorkspaceDormant updates the dormant_at field of workspaces spawned\nfrom the template. This is useful for preventing dormant workspaces being immediately\ndeleted when updating the dormant_ttl field to a new, shorter value.", - "type": "boolean" - }, - "update_workspace_last_used_at": { - "description": "UpdateWorkspaceLastUsedAt updates the last_used_at field of workspaces\nspawned from the template. This is useful for preventing workspaces being\nimmediately locked when updating the inactivity_ttl field to a new, shorter\nvalue.", - "type": "boolean" - }, - "use_classic_parameter_flow": { - "description": "UseClassicParameterFlow is a flag that switches the default behavior to use the classic\nparameter flow when creating a workspace. This only affects deployments with the experiment\n\"dynamic-parameters\" enabled. This setting will live for a period after the experiment is\nmade the default.\nAn \"opt-out\" is present in case the new feature breaks some existing templates.", - "type": "boolean" - }, - "use_terraform_workspace_cache": { - "description": "UseTerraformWorkspaceCache allows optionally specifying whether to use cached\nterraform directories for workspaces created from this template. This field\nonly applies when the correct experiment is enabled. This field is subject to\nbeing removed in the future.", - "type": "boolean" - } - } - }, - "codersdk.UpdateUserAppearanceSettingsRequest": { - "type": "object", - "required": ["terminal_font", "theme_preference"], - "properties": { - "terminal_font": { - "$ref": "#/definitions/codersdk.TerminalFontName" - }, - "theme_preference": { - "type": "string" - } - } - }, - "codersdk.UpdateUserNotificationPreferences": { - "type": "object", - "properties": { - "template_disabled_map": { - "type": "object", - "additionalProperties": { - "type": "boolean" - } - } - } - }, - "codersdk.UpdateUserPasswordRequest": { - "type": "object", - "required": ["password"], - "properties": { - "old_password": { - "type": "string" - }, - "password": { - "type": "string" - } - } - }, - "codersdk.UpdateUserPreferenceSettingsRequest": { - "type": "object", - "properties": { - "task_notification_alert_dismissed": { - "type": "boolean" - } - } - }, - "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.UpdateWorkspaceACL": { - "type": "object", - "properties": { - "group_roles": { - "description": "GroupRoles is a mapping from valid group UUIDs to the workspace role they\nshould be granted. To remove a group from the workspace, use \"\" as the role\n(available as a constant named codersdk.WorkspaceRoleDeleted)", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/codersdk.WorkspaceRole" - } - }, - "user_roles": { - "description": "UserRoles is a mapping from valid user UUIDs to the workspace role they\nshould be granted. To remove a user from the workspace, use \"\" as the role\n(available as a constant named codersdk.WorkspaceRoleDeleted)", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/codersdk.WorkspaceRole" - } - } - } - }, - "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", "organization", "public"], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" - } - ] - } - } - }, - "codersdk.UsageAppName": { - "type": "string", - "enum": ["vscode", "jetbrains", "reconnecting-pty", "ssh"], - "x-enum-varnames": [ - "UsageAppNameVscode", - "UsageAppNameJetbrains", - "UsageAppNameReconnectingPty", - "UsageAppNameSSH" - ] - }, - "codersdk.UsagePeriod": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "issued_at": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - } - } - }, - "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.SlimRole" - } - }, - "status": { - "enum": ["active", "suspended"], - "allOf": [ - { - "$ref": "#/definitions/codersdk.UserStatus" - } - ] - }, - "theme_preference": { - "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", - "type": "string" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "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.UserAppearanceSettings": { - "type": "object", - "properties": { - "terminal_font": { - "$ref": "#/definitions/codersdk.TerminalFontName" - }, - "theme_preference": { - "type": "string" - } - } - }, - "codersdk.UserLatency": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "latency_ms": { - "$ref": "#/definitions/codersdk.ConnectionLatency" - }, - "template_ids": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - }, - "user_id": { - "type": "string", - "format": "uuid" - }, - "username": { - "type": "string" - } - } - }, - "codersdk.UserLatencyInsightsReport": { - "type": "object", - "properties": { - "end_time": { - "type": "string", - "format": "date-time" - }, - "start_time": { - "type": "string", - "format": "date-time" - }, - "template_ids": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.UserLatency" - } - } - } - }, - "codersdk.UserLatencyInsightsResponse": { - "type": "object", - "properties": { - "report": { - "$ref": "#/definitions/codersdk.UserLatencyInsightsReport" - } - } - }, - "codersdk.UserLoginType": { - "type": "object", - "properties": { - "login_type": { - "$ref": "#/definitions/codersdk.LoginType" - } - } - }, - "codersdk.UserParameter": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - } - }, - "codersdk.UserPreferenceSettings": { - "type": "object", - "properties": { - "task_notification_alert_dismissed": { - "type": "boolean" - } - } - }, - "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.UserStatusChangeCount": { - "type": "object", - "properties": { - "count": { - "type": "integer", - "example": 10 - }, - "date": { - "type": "string", - "format": "date-time" - } - } - }, - "codersdk.ValidateUserPasswordRequest": { - "type": "object", - "required": ["password"], - "properties": { - "password": { - "type": "string" - } - } - }, - "codersdk.ValidateUserPasswordResponse": { - "type": "object", - "properties": { - "details": { - "type": "string" - }, - "valid": { - "type": "boolean" - } - } - }, - "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.WebpushSubscription": { - "type": "object", - "properties": { - "auth_key": { - "type": "string" - }, - "endpoint": { - "type": "string" - }, - "p256dh_key": { - "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" - }, - "is_prebuild": { - "description": "IsPrebuild indicates whether the workspace is a prebuilt workspace.\nPrebuilt workspaces are owned by the prebuilds system user and have specific behavior,\nsuch as being managed differently from regular workspaces.\nOnce a prebuilt workspace is claimed by a user, it transitions to a regular workspace,\nand IsPrebuild returns false.", - "type": "boolean" - }, - "last_used_at": { - "type": "string", - "format": "date-time" - }, - "latest_app_status": { - "$ref": "#/definitions/codersdk.WorkspaceAppStatus" - }, - "latest_build": { - "$ref": "#/definitions/codersdk.WorkspaceBuild" - }, - "name": { - "type": "string" - }, - "next_start_at": { - "type": "string", - "format": "date-time" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_name": { - "type": "string" - }, - "outdated": { - "type": "boolean" - }, - "owner_avatar_url": { - "type": "string" - }, - "owner_id": { - "type": "string", - "format": "uuid" - }, - "owner_name": { - "description": "OwnerName is the username of the owner of the workspace.", - "type": "string" - }, - "task_id": { - "description": "TaskID, if set, indicates that the workspace is relevant to the given codersdk.Task.", - "allOf": [ - { - "$ref": "#/definitions/uuid.NullUUID" - } - ] - }, - "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" - }, - "template_use_classic_parameter_flow": { - "type": "boolean" - }, - "ttl_ms": { - "type": "integer" - }, - "updated_at": { - "type": "string", - "format": "date-time" - } - } - }, - "codersdk.WorkspaceACL": { - "type": "object", - "properties": { - "group": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceGroup" - } - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceUser" - } - } - } - }, - "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" - }, - "parent_id": { - "format": "uuid", - "allOf": [ - { - "$ref": "#/definitions/uuid.NullUUID" - } - ] - }, - "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.WorkspaceAgentContainer": { - "type": "object", - "properties": { - "created_at": { - "description": "CreatedAt is the time the container was created.", - "type": "string", - "format": "date-time" - }, - "id": { - "description": "ID is the unique identifier of the container.", - "type": "string" - }, - "image": { - "description": "Image is the name of the container image.", - "type": "string" - }, - "labels": { - "description": "Labels is a map of key-value pairs of container labels.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "name": { - "description": "FriendlyName is the human-readable name of the container.", - "type": "string" - }, - "ports": { - "description": "Ports includes ports exposed by the container.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceAgentContainerPort" - } - }, - "running": { - "description": "Running is true if the container is currently running.", - "type": "boolean" - }, - "status": { - "description": "Status is the current status of the container. This is somewhat\nimplementation-dependent, but should generally be a human-readable\nstring.", - "type": "string" - }, - "volumes": { - "description": "Volumes is a map of \"things\" mounted into the container. Again, this\nis somewhat implementation-dependent.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "codersdk.WorkspaceAgentContainerPort": { - "type": "object", - "properties": { - "host_ip": { - "description": "HostIP is the IP address of the host interface to which the port is\nbound. Note that this can be an IPv4 or IPv6 address.", - "type": "string" - }, - "host_port": { - "description": "HostPort is the port number *outside* the container.", - "type": "integer" - }, - "network": { - "description": "Network is the network protocol used by the port (tcp, udp, etc).", - "type": "string" - }, - "port": { - "description": "Port is the port number *inside* the container.", - "type": "integer" - } - } - }, - "codersdk.WorkspaceAgentDevcontainer": { - "type": "object", - "properties": { - "agent": { - "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainerAgent" - }, - "config_path": { - "type": "string" - }, - "container": { - "$ref": "#/definitions/codersdk.WorkspaceAgentContainer" - }, - "dirty": { - "type": "boolean" - }, - "error": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - }, - "status": { - "description": "Additional runtime fields.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainerStatus" - } - ] - }, - "workspace_folder": { - "type": "string" - } - } - }, - "codersdk.WorkspaceAgentDevcontainerAgent": { - "type": "object", - "properties": { - "directory": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - } - } - }, - "codersdk.WorkspaceAgentDevcontainerStatus": { - "type": "string", - "enum": ["running", "stopped", "starting", "error"], - "x-enum-varnames": [ - "WorkspaceAgentDevcontainerStatusRunning", - "WorkspaceAgentDevcontainerStatusStopped", - "WorkspaceAgentDevcontainerStatusStarting", - "WorkspaceAgentDevcontainerStatusError" - ] - }, - "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.WorkspaceAgentListContainersResponse": { - "type": "object", - "properties": { - "containers": { - "description": "Containers is a list of containers visible to the workspace agent.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceAgentContainer" - } - }, - "devcontainers": { - "description": "Devcontainers is a list of devcontainers visible to the workspace agent.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainer" - } - }, - "warnings": { - "description": "Warnings is a list of warnings that may have occurred during the\nprocess of listing containers. This should not include fatal errors.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "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.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", "organization", "public"], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" - } - ] - }, - "workspace_id": { - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.WorkspaceAgentPortShareLevel": { - "type": "string", - "enum": ["owner", "authenticated", "organization", "public"], - "x-enum-varnames": [ - "WorkspaceAgentPortShareLevelOwner", - "WorkspaceAgentPortShareLevelAuthenticated", - "WorkspaceAgentPortShareLevelOrganization", - "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" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "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" - }, - "group": { - "type": "string" - }, - "health": { - "$ref": "#/definitions/codersdk.WorkspaceAppHealth" - }, - "healthcheck": { - "description": "Healthcheck specifies the configuration for checking app health.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.Healthcheck" - } - ] - }, - "hidden": { - "type": "boolean" - }, - "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" - }, - "open_in": { - "$ref": "#/definitions/codersdk.WorkspaceAppOpenIn" - }, - "sharing_level": { - "enum": ["owner", "authenticated", "organization", "public"], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceAppSharingLevel" - } - ] - }, - "slug": { - "description": "Slug is a unique identifier within the agent.", - "type": "string" - }, - "statuses": { - "description": "Statuses is a list of statuses for the app.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceAppStatus" - } - }, - "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" - }, - "tooltip": { - "description": "Tooltip is an optional markdown supported field that is displayed\nwhen hovering over workspace apps in the UI.", - "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.WorkspaceAppOpenIn": { - "type": "string", - "enum": ["slim-window", "tab"], - "x-enum-varnames": [ - "WorkspaceAppOpenInSlimWindow", - "WorkspaceAppOpenInTab" - ] - }, - "codersdk.WorkspaceAppSharingLevel": { - "type": "string", - "enum": ["owner", "authenticated", "organization", "public"], - "x-enum-varnames": [ - "WorkspaceAppSharingLevelOwner", - "WorkspaceAppSharingLevelAuthenticated", - "WorkspaceAppSharingLevelOrganization", - "WorkspaceAppSharingLevelPublic" - ] - }, - "codersdk.WorkspaceAppStatus": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "format": "uuid" - }, - "app_id": { - "type": "string", - "format": "uuid" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "icon": { - "description": "Deprecated: This field is unused and will be removed in a future version.\nIcon is an external URL to an icon that will be rendered in the UI.", - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "message": { - "type": "string" - }, - "needs_user_attention": { - "description": "Deprecated: This field is unused and will be removed in a future version.\nNeedsUserAttention specifies whether the status needs user attention.", - "type": "boolean" - }, - "state": { - "$ref": "#/definitions/codersdk.WorkspaceAppStatusState" - }, - "uri": { - "description": "URI is the URI of the resource that the status is for.\ne.g. https://github.com/org/repo/pull/123\ne.g. file:///path/to/file", - "type": "string" - }, - "workspace_id": { - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.WorkspaceAppStatusState": { - "type": "string", - "enum": ["working", "idle", "complete", "failure"], - "x-enum-varnames": [ - "WorkspaceAppStatusStateWorking", - "WorkspaceAppStatusStateIdle", - "WorkspaceAppStatusStateComplete", - "WorkspaceAppStatusStateFailure" - ] - }, - "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" - }, - "has_ai_task": { - "description": "Deprecated: This field has been deprecated in favor of Task WorkspaceID.", - "type": "boolean" - }, - "has_external_agent": { - "type": "boolean" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "initiator_id": { - "type": "string", - "format": "uuid" - }, - "initiator_name": { - "type": "string" - }, - "job": { - "$ref": "#/definitions/codersdk.ProvisionerJob" - }, - "matched_provisioners": { - "$ref": "#/definitions/codersdk.MatchedProvisioners" - }, - "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" - }, - "template_version_preset_id": { - "type": "string", - "format": "uuid" - }, - "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": { - "description": "WorkspaceOwnerName is the username of the owner of the workspace.", - "type": "string" - } - } - }, - "codersdk.WorkspaceBuildParameter": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - } - }, - "codersdk.WorkspaceBuildTimings": { - "type": "object", - "properties": { - "agent_connection_timings": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AgentConnectionTiming" - } - }, - "agent_script_timings": { - "description": "TODO: Consolidate agent-related timing metrics into a single struct when\nupdating the API version", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AgentScriptTiming" - } - }, - "provisioner_timings": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ProvisionerTiming" - } - } - } - }, - "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.WorkspaceGroup": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ReducedUser" - } - }, - "name": { - "type": "string" - }, - "organization_display_name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_name": { - "type": "string" - }, - "quota_allowance": { - "type": "integer" - }, - "role": { - "enum": ["admin", "use"], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceRole" - } - ] - }, - "source": { - "$ref": "#/definitions/codersdk.GroupSource" - }, - "total_member_count": { - "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", - "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.WorkspaceRole": { - "type": "string", - "enum": ["admin", "use", ""], - "x-enum-varnames": [ - "WorkspaceRoleAdmin", - "WorkspaceRoleUse", - "WorkspaceRoleDeleted" - ] - }, - "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.WorkspaceUser": { - "type": "object", - "required": ["id", "username"], - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - }, - "role": { - "enum": ["admin", "use"], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceRole" - } - ] - }, - "username": { - "type": "string" - } - } - }, - "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" - }, - "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" - }, - "expires_in": { - "description": "ExpiresIn is the OAuth2 wire format \"expires_in\" field,\nwhich specifies how many seconds later the token expires,\nrelative to an unknown time base approximately around \"now\".\nIt is the application's responsibility to populate\n`Expiry` from `ExpiresIn` when required.", - "type": "integer" - }, - "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" - } - } - }, - "regexp.Regexp": { - "type": "object" - }, - "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 (see Hostname and Port methods)", - "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" - }, - "uuid.NullUUID": { - "type": "object", - "properties": { - "uuid": { - "type": "string" - }, - "valid": { - "description": "Valid is true if UUID is not NULL", - "type": "boolean" - } - } - }, - "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" - }, - "hostname_suffix": { - "type": "string" - } - } - }, - "wsproxysdk.CryptoKeysResponse": { - "type": "object", - "properties": { - "crypto_keys": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.CryptoKey" - } - } - } - }, - "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": { - "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": { - "Authorization": { - "type": "apiKey", - "name": "Authorizaiton", - "in": "header" - }, - "CoderSessionToken": { - "type": "apiKey", - "name": "Coder-Session-Token", - "in": "header" - } - } -} + "swagger": "2.0", + "info": { + "description": "Coderd is the service created by running coder server. It is a thin API that connects workspaces, provisioners and users. coderd stores its state in Postgres and is the only service that communicates with Postgres.", + "title": "Coder API", + "termsOfService": "https://coder.com/legal/terms-of-service", + "contact": { + "name": "API Support", + "url": "https://coder.com", + "email": "support@coder.com" + }, + "license": { + "name": "AGPL-3.0", + "url": "https://github.com/coder/coder/blob/main/LICENSE" + }, + "version": "2.0" + }, + "basePath": "/api/v2", + "paths": { + "/": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "General" + ], + "summary": "API root handler", + "operationId": "api-root-handler", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/.well-known/oauth-authorization-server": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "OAuth2 authorization server metadata.", + "operationId": "oauth2-authorization-server-metadata", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OAuth2AuthorizationServerMetadata" + } + } + } + } + }, + "/.well-known/oauth-protected-resource": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "OAuth2 protected resource metadata.", + "operationId": "oauth2-protected-resource-metadata", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ProtectedResourceMetadata" + } + } + } + } + }, + "/aibridge/interceptions": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "AI Bridge" + ], + "summary": "List AI Bridge interceptions", + "operationId": "list-ai-bridge-interceptions", + "parameters": [ + { + "type": "string", + "description": "Search query in the format `key:value`. Available keys are: initiator, provider, model, started_after, started_before.", + "name": "q", + "in": "query" + }, + { + "type": "integer", + "description": "Page limit", + "name": "limit", + "in": "query" + }, + { + "type": "string", + "description": "Cursor pagination after ID (cannot be used with offset)", + "name": "after_id", + "in": "query" + }, + { + "type": "integer", + "description": "Offset pagination (cannot be used with after_id)", + "name": "offset", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.AIBridgeListInterceptionsResponse" + } + } + } + } + }, + "/aibridge/models": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "AI Bridge" + ], + "summary": "List AI Bridge models", + "operationId": "list-ai-bridge-models", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "/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 + } + } + }, + "/auth/scopes": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "Authorization" + ], + "summary": "List API key scopes", + "operationId": "list-api-key-scopes", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ExternalAPIKeyScopes" + } + } + } + } + }, + "/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" + } + } + } + } + }, + "/connectionlog": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get connection logs", + "operationId": "get-connection-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.ConnectionLogResponse" + } + } + } + } + }, + "/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/metrics": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Debug" + ], + "summary": "Debug metrics", + "operationId": "debug-metrics", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/debug/pprof": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Debug" + ], + "summary": "Debug pprof index", + "operationId": "debug-pprof-index", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/debug/pprof/cmdline": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Debug" + ], + "summary": "Debug pprof cmdline", + "operationId": "debug-pprof-cmdline", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/debug/pprof/profile": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Debug" + ], + "summary": "Debug pprof profile", + "operationId": "debug-pprof-profile", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/debug/pprof/symbol": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Debug" + ], + "summary": "Debug pprof symbol", + "operationId": "debug-pprof-symbol", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/debug/pprof/trace": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Debug" + ], + "summary": "Debug pprof trace", + "operationId": "debug-pprof-trace", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/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": [] + } + ], + "produces": [ + "application/json" + ], + "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", + "schema": { + "$ref": "#/definitions/codersdk.DeleteExternalAuthByIDResponse" + } + } + } + } + }, + "/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. If using tar format, file must conform to ustar (pax may cause problems).", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "Returns existing file if duplicate", + "schema": { + "$ref": "#/definitions/codersdk.UploadResponse" + } + }, + "201": { + "description": "Returns newly created file", + "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": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get groups", + "operationId": "get-groups", + "parameters": [ + { + "type": "string", + "description": "Organization ID or name", + "name": "organization", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "User ID or name", + "name": "has_member", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "Comma separated list of group IDs", + "name": "group_ids", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Group" + } + } + } + } + } + }, + "/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" + } + } + } + } + }, + "/init-script/{os}/{arch}": { + "get": { + "produces": [ + "text/plain" + ], + "tags": [ + "InitScript" + ], + "summary": "Get agent init script", + "operationId": "get-agent-init-script", + "parameters": [ + { + "type": "string", + "description": "Operating system", + "name": "os", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Architecture", + "name": "arch", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/insights/daus": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Insights" + ], + "summary": "Get deployment DAUs", + "operationId": "get-deployment-daus", + "parameters": [ + { + "type": "integer", + "description": "Time-zone offset (e.g. -2)", + "name": "tz_offset", + "in": "query", + "required": true + } + ], + "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": "string", + "format": "date-time", + "description": "Start time", + "name": "start_time", + "in": "query", + "required": true + }, + { + "type": "string", + "format": "date-time", + "description": "End time", + "name": "end_time", + "in": "query", + "required": true + }, + { + "enum": [ + "week", + "day" + ], + "type": "string", + "description": "Interval", + "name": "interval", + "in": "query", + "required": true + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "description": "Template IDs", + "name": "template_ids", + "in": "query" + } + ], + "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": "string", + "format": "date-time", + "description": "Start time", + "name": "start_time", + "in": "query", + "required": true + }, + { + "type": "string", + "format": "date-time", + "description": "End time", + "name": "end_time", + "in": "query", + "required": true + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "description": "Template IDs", + "name": "template_ids", + "in": "query" + } + ], + "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": "string", + "format": "date-time", + "description": "Start time", + "name": "start_time", + "in": "query", + "required": true + }, + { + "type": "string", + "format": "date-time", + "description": "End time", + "name": "end_time", + "in": "query", + "required": true + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "description": "Template IDs", + "name": "template_ids", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserLatencyInsightsResponse" + } + } + } + } + }, + "/insights/user-status-counts": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Insights" + ], + "summary": "Get insights about user status counts", + "operationId": "get-insights-about-user-status-counts", + "parameters": [ + { + "type": "integer", + "description": "Time-zone offset (e.g. -2)", + "name": "tz_offset", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GetUserStatusCountsResponse" + } + } + } + } + }, + "/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": [ + "Enterprise" + ], + "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": [ + "Enterprise" + ], + "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" + } + } + } + }, + "/notifications/custom": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Send a custom notification", + "operationId": "send-a-custom-notification", + "parameters": [ + { + "description": "Provide a non-empty title or message", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.CustomNotificationRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Invalid request body", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + }, + "403": { + "description": "System users cannot send custom notifications", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + }, + "500": { + "description": "Failed to send custom notification", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/notifications/dispatch-methods": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Get notification dispatch methods", + "operationId": "get-notification-dispatch-methods", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.NotificationMethodsResponse" + } + } + } + } + } + }, + "/notifications/inbox": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "List inbox notifications", + "operationId": "list-inbox-notifications", + "parameters": [ + { + "type": "string", + "description": "Comma-separated list of target IDs to filter notifications", + "name": "targets", + "in": "query" + }, + { + "type": "string", + "description": "Comma-separated list of template IDs to filter notifications", + "name": "templates", + "in": "query" + }, + { + "type": "string", + "description": "Filter notifications by read status. Possible values: read, unread, all", + "name": "read_status", + "in": "query" + }, + { + "type": "string", + "format": "uuid", + "description": "ID of the last notification from the current page. Notifications returned will be older than the associated one", + "name": "starting_before", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ListInboxNotificationsResponse" + } + } + } + } + }, + "/notifications/inbox/mark-all-as-read": { + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Notifications" + ], + "summary": "Mark all unread notifications as read", + "operationId": "mark-all-unread-notifications-as-read", + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/notifications/inbox/watch": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Watch for new inbox notifications", + "operationId": "watch-for-new-inbox-notifications", + "parameters": [ + { + "type": "string", + "description": "Comma-separated list of target IDs to filter notifications", + "name": "targets", + "in": "query" + }, + { + "type": "string", + "description": "Comma-separated list of template IDs to filter notifications", + "name": "templates", + "in": "query" + }, + { + "type": "string", + "description": "Filter notifications by read status. Possible values: read, unread, all", + "name": "read_status", + "in": "query" + }, + { + "enum": [ + "plaintext", + "markdown" + ], + "type": "string", + "description": "Define the output format for notifications title and body.", + "name": "format", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GetInboxNotificationResponse" + } + } + } + } + }, + "/notifications/inbox/{id}/read-status": { + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Update read status of a notification", + "operationId": "update-read-status-of-a-notification", + "parameters": [ + { + "type": "string", + "description": "id of the notification", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/notifications/settings": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Get notifications settings", + "operationId": "get-notifications-settings", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.NotificationsSettings" + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Update notifications settings", + "operationId": "update-notifications-settings", + "parameters": [ + { + "description": "Notifications settings request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.NotificationsSettings" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.NotificationsSettings" + } + }, + "304": { + "description": "Not Modified" + } + } + } + }, + "/notifications/templates/custom": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Get custom notification templates", + "operationId": "get-custom-notification-templates", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.NotificationTemplate" + } + } + }, + "500": { + "description": "Failed to retrieve 'custom' notifications template", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/notifications/templates/system": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Get system notification templates", + "operationId": "get-system-notification-templates", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.NotificationTemplate" + } + } + }, + "500": { + "description": "Failed to retrieve 'system' notifications template", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/notifications/templates/{notification_template}/method": { + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Update notification template dispatch method", + "operationId": "update-notification-template-dispatch-method", + "parameters": [ + { + "type": "string", + "description": "Notification template UUID", + "name": "notification_template", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Success" + }, + "304": { + "description": "Not modified" + } + } + } + }, + "/notifications/test": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Notifications" + ], + "summary": "Send a test notification", + "operationId": "send-a-test-notification", + "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": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Enterprise" + ], + "summary": "OAuth2 authorization request (GET - show authorization page).", + "operationId": "oauth2-authorization-request-get", + "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": { + "200": { + "description": "Returns HTML authorization page" + } + } + }, + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Enterprise" + ], + "summary": "OAuth2 authorization request (POST - process authorization).", + "operationId": "oauth2-authorization-request-post", + "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": "Returns redirect with authorization code" + } + } + } + }, + "/oauth2/clients/{client_id}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get OAuth2 client configuration (RFC 7592)", + "operationId": "get-oauth2-client-configuration", + "parameters": [ + { + "type": "string", + "description": "Client ID", + "name": "client_id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ClientConfiguration" + } + } + } + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Update OAuth2 client configuration (RFC 7592)", + "operationId": "put-oauth2-client-configuration", + "parameters": [ + { + "type": "string", + "description": "Client ID", + "name": "client_id", + "in": "path", + "required": true + }, + { + "description": "Client update request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ClientConfiguration" + } + } + } + }, + "delete": { + "tags": [ + "Enterprise" + ], + "summary": "Delete OAuth2 client registration (RFC 7592)", + "operationId": "delete-oauth2-client-configuration", + "parameters": [ + { + "type": "string", + "description": "Client ID", + "name": "client_id", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/oauth2/register": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "OAuth2 dynamic client registration (RFC 7591)", + "operationId": "oauth2-dynamic-client-registration", + "parameters": [ + { + "description": "Client registration request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationRequest" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationResponse" + } + } + } + } + }, + "/oauth2/revoke": { + "post": { + "consumes": [ + "application/x-www-form-urlencoded" + ], + "tags": [ + "Enterprise" + ], + "summary": "Revoke OAuth2 tokens (RFC 7009).", + "operationId": "oauth2-token-revocation", + "parameters": [ + { + "type": "string", + "description": "Client ID for authentication", + "name": "client_id", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "The token to revoke", + "name": "token", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "Hint about token type (access_token or refresh_token)", + "name": "token_type_hint", + "in": "formData" + } + ], + "responses": { + "200": { + "description": "Token successfully revoked" + } + } + } + }, + "/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": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Organizations" + ], + "summary": "Get organizations", + "operationId": "get-organizations", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Organization" + } + } + } + } + }, + "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" + } + } + } + }, + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Organizations" + ], + "summary": "Delete organization", + "operationId": "delete-organization", + "parameters": [ + { + "type": "string", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + }, + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Organizations" + ], + "summary": "Update organization", + "operationId": "update-organization", + "parameters": [ + { + "type": "string", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "Patch organization request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateOrganizationRequest" + } + } + ], + "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": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Members" + ], + "summary": "List organization members", + "operationId": "list-organization-members", + "deprecated": true, + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.OrganizationMemberWithUserData" + } + } + } + } + } + }, + "/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" + } + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Members" + ], + "summary": "Upsert a custom organization role", + "operationId": "upsert-a-custom-organization-role", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "Upsert role request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.CustomRoleRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Role" + } + } + } + } + }, + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Members" + ], + "summary": "Insert a custom organization role", + "operationId": "insert-a-custom-organization-role", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "Insert role request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.CustomRoleRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Role" + } + } + } + } + } + }, + "/organizations/{organization}/members/roles/{roleName}": { + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Members" + ], + "summary": "Delete a custom organization role", + "operationId": "delete-a-custom-organization-role", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Role name", + "name": "roleName", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Role" + } + } + } + } + } + }, + "/organizations/{organization}/members/{user}": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Members" + ], + "summary": "Add organization member", + "operationId": "add-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 + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OrganizationMember" + } + } + } + }, + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Members" + ], + "summary": "Remove organization member", + "operationId": "remove-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 + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/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}/workspace-quota": { + "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 + }, + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceQuota" + } + } + } + } + }, + "/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", + "deprecated": true, + "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}/paginated-members": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Members" + ], + "summary": "Paginated organization members", + "operationId": "paginated-organization-members", + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "integer", + "description": "Page limit, if 0 returns all members", + "name": "limit", + "in": "query" + }, + { + "type": "integer", + "description": "Page offset", + "name": "offset", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.PaginatedMembersResponse" + } + } + } + } + } + }, + "/organizations/{organization}/provisionerdaemons": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Provisioning" + ], + "summary": "Get provisioner daemons", + "operationId": "get-provisioner-daemons", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "integer", + "description": "Page limit", + "name": "limit", + "in": "query" + }, + { + "type": "array", + "format": "uuid", + "items": { + "type": "string" + }, + "description": "Filter results by job IDs", + "name": "ids", + "in": "query" + }, + { + "enum": [ + "pending", + "running", + "succeeded", + "canceling", + "canceled", + "failed", + "unknown", + "pending", + "running", + "succeeded", + "canceling", + "canceled", + "failed" + ], + "type": "string", + "description": "Filter results by status", + "name": "status", + "in": "query" + }, + { + "type": "object", + "description": "Provisioner tags to filter by (JSON of the form {'tag1':'value1','tag2':'value2'})", + "name": "tags", + "in": "query" + } + ], + "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}/provisionerjobs": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Organizations" + ], + "summary": "Get provisioner jobs", + "operationId": "get-provisioner-jobs", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "integer", + "description": "Page limit", + "name": "limit", + "in": "query" + }, + { + "type": "array", + "format": "uuid", + "items": { + "type": "string" + }, + "description": "Filter results by job IDs", + "name": "ids", + "in": "query" + }, + { + "enum": [ + "pending", + "running", + "succeeded", + "canceling", + "canceled", + "failed", + "unknown", + "pending", + "running", + "succeeded", + "canceling", + "canceled", + "failed" + ], + "type": "string", + "description": "Filter results by status", + "name": "status", + "in": "query" + }, + { + "type": "object", + "description": "Provisioner tags to filter by (JSON of the form {'tag1':'value1','tag2':'value2'})", + "name": "tags", + "in": "query" + }, + { + "type": "string", + "format": "uuid", + "description": "Filter results by initiator", + "name": "initiator", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ProvisionerJob" + } + } + } + } + } + }, + "/organizations/{organization}/provisionerjobs/{job}": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Organizations" + ], + "summary": "Get provisioner job", + "operationId": "get-provisioner-job", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "string", + "format": "uuid", + "description": "Job ID", + "name": "job", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ProvisionerJob" + } + } + } + } + }, + "/organizations/{organization}/provisionerkeys": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "List provisioner key", + "operationId": "list-provisioner-key", + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ProvisionerKey" + } + } + } + } + }, + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Create provisioner key", + "operationId": "create-provisioner-key", + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/codersdk.CreateProvisionerKeyResponse" + } + } + } + } + }, + "/organizations/{organization}/provisionerkeys/daemons": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "List provisioner key daemons", + "operationId": "list-provisioner-key-daemons", + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ProvisionerKeyDaemons" + } + } + } + } + } + }, + "/organizations/{organization}/provisionerkeys/{provisionerkey}": { + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Enterprise" + ], + "summary": "Delete provisioner key", + "operationId": "delete-provisioner-key", + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Provisioner key name", + "name": "provisionerkey", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/organizations/{organization}/settings/idpsync/available-fields": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get the available organization idp sync claim fields", + "operationId": "get-the-available-organization-idp-sync-claim-fields", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/field-values": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get the organization idp sync claim field values", + "operationId": "get-the-organization-idp-sync-claim-field-values", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "string", + "format": "string", + "description": "Claim Field", + "name": "claimField", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/groups": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get group IdP Sync settings by organization", + "operationId": "get-group-idp-sync-settings-by-organization", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GroupSyncSettings" + } + } + } + }, + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Update group IdP Sync settings by organization", + "operationId": "update-group-idp-sync-settings-by-organization", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "New settings", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.GroupSyncSettings" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GroupSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/groups/config": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Update group IdP Sync config", + "operationId": "update-group-idp-sync-config", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "New config values", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchGroupIDPSyncConfigRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GroupSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/groups/mapping": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Update group IdP Sync mapping", + "operationId": "update-group-idp-sync-mapping", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "Description of the mappings to add and remove", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchGroupIDPSyncMappingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GroupSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/roles": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get role IdP Sync settings by organization", + "operationId": "get-role-idp-sync-settings-by-organization", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.RoleSyncSettings" + } + } + } + }, + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Update role IdP Sync settings by organization", + "operationId": "update-role-idp-sync-settings-by-organization", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "New settings", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.RoleSyncSettings" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.RoleSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/roles/config": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Update role IdP Sync config", + "operationId": "update-role-idp-sync-config", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "New config values", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchRoleIDPSyncConfigRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.RoleSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/roles/mapping": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Update role IdP Sync mapping", + "operationId": "update-role-idp-sync-mapping", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "Description of the mappings to add and remove", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchRoleIDPSyncMappingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.RoleSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/templates": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "description": "Returns a list of templates for the specified organization.\nBy default, only non-deprecated templates are returned.\nTo include deprecated templates, specify `deprecated:true` in the search query.", + "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", + "deprecated": true, + "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" + } + } + } + } + }, + "/prebuilds/settings": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Prebuilds" + ], + "summary": "Get prebuilds settings", + "operationId": "get-prebuilds-settings", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.PrebuildsSettings" + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Prebuilds" + ], + "summary": "Update prebuilds settings", + "operationId": "update-prebuilds-settings", + "parameters": [ + { + "description": "Prebuilds settings request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PrebuildsSettings" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.PrebuildsSettings" + } + }, + "304": { + "description": "Not Modified" + } + } + } + }, + "/provisionerkeys/{provisionerkey}": { + "get": { + "security": [ + { + "CoderProvisionerKey": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Fetch provisioner key details", + "operationId": "fetch-provisioner-key-details", + "parameters": [ + { + "type": "string", + "description": "Provisioner Key", + "name": "provisionerkey", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ProvisionerKey" + } + } + } + } + }, + "/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/ServiceProviderConfig": { + "get": { + "produces": [ + "application/scim+json" + ], + "tags": [ + "Enterprise" + ], + "summary": "SCIM 2.0: Service Provider Config", + "operationId": "scim-get-service-provider-config", + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/scim/v2/Users": { + "get": { + "security": [ + { + "Authorization": [] + } + ], + "produces": [ + "application/scim+json" + ], + "tags": [ + "Enterprise" + ], + "summary": "SCIM 2.0: Get users", + "operationId": "scim-get-users", + "responses": { + "200": { + "description": "OK" + } + } + }, + "post": { + "security": [ + { + "Authorization": [] + } + ], + "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": [ + { + "Authorization": [] + } + ], + "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" + } + } + }, + "put": { + "security": [ + { + "Authorization": [] + } + ], + "produces": [ + "application/scim+json" + ], + "tags": [ + "Enterprise" + ], + "summary": "SCIM 2.0: Replace user account", + "operationId": "scim-replace-user-status", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "User ID", + "name": "id", + "in": "path", + "required": true + }, + { + "description": "Replace user request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/coderd.SCIMUser" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.User" + } + } + } + }, + "patch": { + "security": [ + { + "Authorization": [] + } + ], + "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" + } + } + } + } + }, + "/settings/idpsync/available-fields": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get the available idp sync claim fields", + "operationId": "get-the-available-idp-sync-claim-fields", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "/settings/idpsync/field-values": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get the idp sync claim field values", + "operationId": "get-the-idp-sync-claim-field-values", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "string", + "format": "string", + "description": "Claim Field", + "name": "claimField", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "/settings/idpsync/organization": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get organization IdP Sync settings", + "operationId": "get-organization-idp-sync-settings", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OrganizationSyncSettings" + } + } + } + }, + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Update organization IdP Sync settings", + "operationId": "update-organization-idp-sync-settings", + "parameters": [ + { + "description": "New settings", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.OrganizationSyncSettings" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OrganizationSyncSettings" + } + } + } + } + }, + "/settings/idpsync/organization/config": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Update organization IdP Sync config", + "operationId": "update-organization-idp-sync-config", + "parameters": [ + { + "description": "New config values", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchOrganizationIDPSyncConfigRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OrganizationSyncSettings" + } + } + } + } + }, + "/settings/idpsync/organization/mapping": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Update organization IdP Sync mapping", + "operationId": "update-organization-idp-sync-mapping", + "parameters": [ + { + "description": "Description of the mappings to add and remove", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchOrganizationIDPSyncMappingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OrganizationSyncSettings" + } + } + } + } + }, + "/tailnet": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Agents" + ], + "summary": "User-scoped tailnet RPC connection", + "operationId": "user-scoped-tailnet-rpc-connection", + "responses": { + "101": { + "description": "Switching Protocols" + } + } + } + }, + "/tasks": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Tasks" + ], + "summary": "List AI tasks", + "operationId": "list-ai-tasks", + "parameters": [ + { + "type": "string", + "description": "Search query for filtering tasks. Supports: owner:\u003cusername/uuid/me\u003e, organization:\u003corg-name/uuid\u003e, status:\u003cstatus\u003e", + "name": "q", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.TasksListResponse" + } + } + } + } + }, + "/tasks/{user}": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Tasks" + ], + "summary": "Create a new AI task", + "operationId": "create-a-new-ai-task", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "description": "Create task request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.CreateTaskRequest" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/codersdk.Task" + } + } + } + } + }, + "/tasks/{user}/{task}": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Tasks" + ], + "summary": "Get AI task by ID or name", + "operationId": "get-ai-task-by-id-or-name", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Task ID, or task name", + "name": "task", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Task" + } + } + } + }, + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Tasks" + ], + "summary": "Delete AI task", + "operationId": "delete-ai-task", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Task ID, or task name", + "name": "task", + "in": "path", + "required": true + } + ], + "responses": { + "202": { + "description": "Accepted" + } + } + } + }, + "/tasks/{user}/{task}/input": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "tags": [ + "Tasks" + ], + "summary": "Update AI task input", + "operationId": "update-ai-task-input", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Task ID, or task name", + "name": "task", + "in": "path", + "required": true + }, + { + "description": "Update task input request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateTaskInputRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/tasks/{user}/{task}/logs": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Tasks" + ], + "summary": "Get AI task logs", + "operationId": "get-ai-task-logs", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Task ID, or task name", + "name": "task", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.TaskLogsResponse" + } + } + } + } + }, + "/tasks/{user}/{task}/send": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "tags": [ + "Tasks" + ], + "summary": "Send input to AI task", + "operationId": "send-input-to-ai-task", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Task ID, or task name", + "name": "task", + "in": "path", + "required": true + }, + { + "description": "Task input request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.TaskSendRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/templates": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "description": "Returns a list of templates.\nBy default, only non-deprecated templates are returned.\nTo include deprecated templates, specify `deprecated:true` in the search query.", + "produces": [ + "application/json" + ], + "tags": [ + "Templates" + ], + "summary": "Get all templates", + "operationId": "get-all-templates", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Template" + } + } + } + } + } + }, + "/templates/examples": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Templates" + ], + "summary": "Get template examples", + "operationId": "get-template-examples", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.TemplateExample" + } + } + } + } + } + }, + "/templates/{template}": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Templates" + ], + "summary": "Get template settings by ID", + "operationId": "get-template-settings-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": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Templates" + ], + "summary": "Update template settings by ID", + "operationId": "update-template-settings-by-id", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Template ID", + "name": "template", + "in": "path", + "required": true + }, + { + "description": "Patch template settings request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateTemplateMeta" + } + } + ], + "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": { + "$ref": "#/definitions/codersdk.TemplateACL" + } + } + } + }, + "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 ACL 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}/prebuilds/invalidate": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Invalidate presets for template", + "operationId": "invalidate-presets-for-template", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Template ID", + "name": "template", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.InvalidatePresetsResponse" + } + } + } + } + }, + "/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}/matched-provisioners": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Templates" + ], + "summary": "Get template version dry-run matched provisioners", + "operationId": "get-template-version-dry-run-matched-provisioners", + "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.MatchedProvisioners" + } + } + } + } + }, + "/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}/dynamic-parameters": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Templates" + ], + "summary": "Open dynamic parameters WebSocket by template version", + "operationId": "open-dynamic-parameters-websocket-by-template-version", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Template version ID", + "name": "templateversion", + "in": "path", + "required": true + } + ], + "responses": { + "101": { + "description": "Switching Protocols" + } + } + } + }, + "/templateversions/{templateversion}/dynamic-parameters/evaluate": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Templates" + ], + "summary": "Evaluate dynamic parameters for template version", + "operationId": "evaluate-dynamic-parameters-for-template-version", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Template version ID", + "name": "templateversion", + "in": "path", + "required": true + }, + { + "description": "Initial parameter values", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.DynamicParametersRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.DynamicParametersResponse" + } + } + } + } + }, + "/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}/presets": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Templates" + ], + "summary": "Get template version presets", + "operationId": "get-template-version-presets", + "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.Preset" + } + } + } + } + } + }, + "/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.CreateUserRequestWithOrgs" + } + } + ], + "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/oauth2/github/device": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Users" + ], + "summary": "Get Github device auth.", + "operationId": "get-github-device-auth", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ExternalAuthDevice" + } + } + } + } + }, + "/users/oidc/callback": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "OpenID Connect Callback", + "operationId": "openid-connect-callback", + "responses": { + "307": { + "description": "Temporary Redirect" + } + } + } + }, + "/users/otp/change-password": { + "post": { + "consumes": [ + "application/json" + ], + "tags": [ + "Authorization" + ], + "summary": "Change password with a one-time passcode", + "operationId": "change-password-with-a-one-time-passcode", + "parameters": [ + { + "description": "Change password request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.ChangePasswordWithOneTimePasscodeRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/users/otp/request": { + "post": { + "consumes": [ + "application/json" + ], + "tags": [ + "Authorization" + ], + "summary": "Request one-time passcode", + "operationId": "request-one-time-passcode", + "parameters": [ + { + "description": "One-time passcode request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.RequestOneTimePasscodeRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/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/validate-password": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Authorization" + ], + "summary": "Validate user password", + "operationId": "validate-user-password", + "parameters": [ + { + "description": "Validate user password request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.ValidateUserPasswordRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ValidateUserPasswordResponse" + } + } + } + } + }, + "/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": [] + } + ], + "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" + } + } + } + }, + "/users/{user}/appearance": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Users" + ], + "summary": "Get user appearance settings", + "operationId": "get-user-appearance-settings", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserAppearanceSettings" + } + } + } + }, + "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.UserAppearanceSettings" + } + } + } + } + }, + "/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": "string", + "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": "string", + "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}/notifications/preferences": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Get user notification preferences", + "operationId": "get-user-notification-preferences", + "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.NotificationPreference" + } + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Update user notification preferences", + "operationId": "update-user-notification-preferences", + "parameters": [ + { + "description": "Preferences", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateUserNotificationPreferences" + } + }, + { + "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.NotificationPreference" + } + } + } + } + } + }, + "/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}/preferences": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Users" + ], + "summary": "Get user preference settings", + "operationId": "get-user-preference-settings", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserPreferenceSettings" + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Users" + ], + "summary": "Update user preference settings", + "operationId": "update-user-preference-settings", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + }, + { + "description": "New preference settings", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateUserPreferenceSettingsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserPreferenceSettings" + } + } + } + } + }, + "/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}/webpush/subscription": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Create user webpush subscription", + "operationId": "create-user-webpush-subscription", + "parameters": [ + { + "description": "Webpush subscription", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.WebpushSubscription" + } + }, + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "x-apidocgen": { + "skip": true + } + }, + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "tags": [ + "Notifications" + ], + "summary": "Delete user webpush subscription", + "operationId": "delete-user-webpush-subscription", + "parameters": [ + { + "description": "Webpush subscription", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.DeleteWebpushSubscription" + } + }, + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/users/{user}/webpush/test": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Notifications" + ], + "summary": "Send a test push notification", + "operationId": "send-a-test-push-notification", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/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" + } + } + } + } + }, + "/users/{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", + "operationId": "create-user-workspace", + "parameters": [ + { + "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" + } + } + } + } + }, + "/workspace-quota/{user}": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get workspace quota by user deprecated", + "operationId": "get-workspace-quota-by-user-deprecated", + "deprecated": true, + "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-status": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Agents" + ], + "summary": "Patch workspace agent app status", + "operationId": "patch-workspace-agent-app-status", + "parameters": [ + { + "description": "app status", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/agentsdk.PatchAppStatus" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/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/log-source": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Agents" + ], + "summary": "Post workspace agent log source", + "operationId": "post-workspace-agent-log-source", + "parameters": [ + { + "description": "Log source request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/agentsdk.PostLogSourceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceAgentLogSource" + } + } + } + } + }, + "/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/reinit": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Agents" + ], + "summary": "Get workspace agent reinitialization", + "operationId": "get-workspace-agent-reinitialization", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/agentsdk.ReinitializationEvent" + } + } + } + } + }, + "/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/{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}/containers": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Agents" + ], + "summary": "Get running containers for workspace agent", + "operationId": "get-running-containers-for-workspace-agent", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace agent ID", + "name": "workspaceagent", + "in": "path", + "required": true + }, + { + "type": "string", + "format": "key=value", + "description": "Labels", + "name": "label", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceAgentListContainersResponse" + } + } + } + } + }, + "/workspaceagents/{workspaceagent}/containers/devcontainers/{devcontainer}/recreate": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Agents" + ], + "summary": "Recreate devcontainer for workspace agent", + "operationId": "recreate-devcontainer-for-workspace-agent", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace agent ID", + "name": "workspaceagent", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Devcontainer ID", + "name": "devcontainer", + "in": "path", + "required": true + } + ], + "responses": { + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/workspaceagents/{workspaceagent}/containers/watch": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Agents" + ], + "summary": "Watch workspace agent for container updates.", + "operationId": "watch-workspace-agent-for-container-updates", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace agent ID", + "name": "workspaceagent", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceAgentListContainersResponse" + } + } + } + } + }, + "/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", + "deprecated": true, + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace agent ID", + "name": "workspaceagent", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/workspaceagents/{workspaceagent}/watch-metadata-ws": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Agents" + ], + "summary": "Watch for workspace agent metadata updates via WebSockets", + "operationId": "watch-for-workspace-agent-metadata-updates-via-websockets", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace agent ID", + "name": "workspaceagent", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ServerSentEvent" + } + } + }, + "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 + }, + { + "enum": [ + "running", + "pending" + ], + "type": "string", + "description": "Expected status of the job. If expect_status is supplied, the request will be rejected with 412 Precondition Failed if the job doesn't match the state when performing the cancellation.", + "name": "expect_status", + "in": "query" + } + ], + "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 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" + } + } + } + } + } + }, + "/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" + } + } + } + } + }, + "/workspacebuilds/{workspacebuild}/timings": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Builds" + ], + "summary": "Get workspace build timings by ID", + "operationId": "get-workspace-build-timings-by-id", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace build ID", + "name": "workspacebuild", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceBuildTimings" + } + } + } + } + }, + "/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/crypto-keys": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get workspace proxy crypto keys", + "operationId": "get-workspace-proxy-crypto-keys", + "parameters": [ + { + "type": "string", + "description": "Feature key", + "name": "feature", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/wsproxysdk.CryptoKeysResponse" + } + } + }, + "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, has-ai-task, has_external_agent.", + "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}/acl": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Workspaces" + ], + "summary": "Get workspace ACLs", + "operationId": "get-workspace-acls", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceACL" + } + } + } + }, + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": [ + "Workspaces" + ], + "summary": "Completely clears the workspace's user and group ACLs.", + "operationId": "completely-clears-the-workspaces-user-and-group-acls", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + }, + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Workspaces" + ], + "summary": "Update workspace ACL", + "operationId": "update-workspace-acl", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + }, + { + "description": "Update workspace ACL request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateWorkspaceACL" + } + } + ], + "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}/external-agent/{agent}/credentials": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Enterprise" + ], + "summary": "Get workspace external agent credentials", + "operationId": "get-workspace-external-agent-credentials", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Agent name", + "name": "agent", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ExternalAgentCredentials" + } + } + } + } + }, + "/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": "Delete workspace agent port share", + "operationId": "delete-workspace-agent-port-share", + "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}/timings": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Workspaces" + ], + "summary": "Get workspace timings by ID", + "operationId": "get-workspace-timings-by-id", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceBuildTimings" + } + } + } + } + }, + "/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": [] + } + ], + "consumes": [ + "application/json" + ], + "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 + }, + { + "description": "Post workspace usage request", + "name": "request", + "in": "body", + "schema": { + "$ref": "#/definitions/codersdk.PostWorkspaceUsageRequest" + } + } + ], + "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", + "deprecated": true, + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/workspaces/{workspace}/watch-ws": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Workspaces" + ], + "summary": "Watch workspace by ID via WebSockets", + "operationId": "watch-workspace-by-id-via-websockets", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ServerSentEvent" + } + } + } + } + } + }, + "definitions": { + "agentsdk.AWSInstanceIdentityToken": { + "type": "object", + "required": [ + "document", + "signature" + ], + "properties": { + "document": { + "type": "string" + }, + "signature": { + "type": "string" + } + } + }, + "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.PatchAppStatus": { + "type": "object", + "properties": { + "app_slug": { + "type": "string" + }, + "icon": { + "description": "Deprecated: this field is unused and will be removed in a future version.", + "type": "string" + }, + "message": { + "type": "string" + }, + "needs_user_attention": { + "description": "Deprecated: this field is unused and will be removed in a future version.", + "type": "boolean" + }, + "state": { + "$ref": "#/definitions/codersdk.WorkspaceAppStatusState" + }, + "uri": { + "type": "string" + } + } + }, + "agentsdk.PatchLogs": { + "type": "object", + "properties": { + "log_source_id": { + "type": "string" + }, + "logs": { + "type": "array", + "items": { + "$ref": "#/definitions/agentsdk.Log" + } + } + } + }, + "agentsdk.PostLogSourceRequest": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "id": { + "description": "ID is a unique identifier for the log source.\nIt is scoped to a workspace agent, and can be statically\ndefined inside code to prevent duplicate sources from being\ncreated for the same agent.", + "type": "string" + } + } + }, + "agentsdk.ReinitializationEvent": { + "type": "object", + "properties": { + "reason": { + "$ref": "#/definitions/agentsdk.ReinitializationReason" + }, + "workspaceID": { + "type": "string" + } + } + }, + "agentsdk.ReinitializationReason": { + "type": "string", + "enum": [ + "prebuild_claimed" + ], + "x-enum-varnames": [ + "ReinitializeReasonPrebuildClaimed" + ] + }, + "coderd.SCIMUser": { + "type": "object", + "properties": { + "active": { + "description": "Active is a ptr to prevent the empty value from being interpreted as false.", + "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.AIBridgeAnthropicConfig": { + "type": "object", + "properties": { + "base_url": { + "type": "string" + }, + "key": { + "type": "string" + } + } + }, + "codersdk.AIBridgeBedrockConfig": { + "type": "object", + "properties": { + "access_key": { + "type": "string" + }, + "access_key_secret": { + "type": "string" + }, + "model": { + "type": "string" + }, + "region": { + "type": "string" + }, + "small_fast_model": { + "type": "string" + } + } + }, + "codersdk.AIBridgeConfig": { + "type": "object", + "properties": { + "anthropic": { + "$ref": "#/definitions/codersdk.AIBridgeAnthropicConfig" + }, + "bedrock": { + "$ref": "#/definitions/codersdk.AIBridgeBedrockConfig" + }, + "enabled": { + "type": "boolean" + }, + "inject_coder_mcp_tools": { + "type": "boolean" + }, + "max_concurrency": { + "type": "integer" + }, + "openai": { + "$ref": "#/definitions/codersdk.AIBridgeOpenAIConfig" + }, + "rate_limit": { + "type": "integer" + }, + "retention": { + "type": "integer" + } + } + }, + "codersdk.AIBridgeInterception": { + "type": "object", + "properties": { + "api_key_id": { + "type": "string" + }, + "ended_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "initiator": { + "$ref": "#/definitions/codersdk.MinimalUser" + }, + "metadata": { + "type": "object", + "additionalProperties": {} + }, + "model": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "started_at": { + "type": "string", + "format": "date-time" + }, + "token_usages": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AIBridgeTokenUsage" + } + }, + "tool_usages": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AIBridgeToolUsage" + } + }, + "user_prompts": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AIBridgeUserPrompt" + } + } + } + }, + "codersdk.AIBridgeListInterceptionsResponse": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AIBridgeInterception" + } + } + } + }, + "codersdk.AIBridgeOpenAIConfig": { + "type": "object", + "properties": { + "base_url": { + "type": "string" + }, + "key": { + "type": "string" + } + } + }, + "codersdk.AIBridgeTokenUsage": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "input_tokens": { + "type": "integer" + }, + "interception_id": { + "type": "string", + "format": "uuid" + }, + "metadata": { + "type": "object", + "additionalProperties": {} + }, + "output_tokens": { + "type": "integer" + }, + "provider_response_id": { + "type": "string" + } + } + }, + "codersdk.AIBridgeToolUsage": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "injected": { + "type": "boolean" + }, + "input": { + "type": "string" + }, + "interception_id": { + "type": "string", + "format": "uuid" + }, + "invocation_error": { + "type": "string" + }, + "metadata": { + "type": "object", + "additionalProperties": {} + }, + "provider_response_id": { + "type": "string" + }, + "server_url": { + "type": "string" + }, + "tool": { + "type": "string" + } + } + }, + "codersdk.AIBridgeUserPrompt": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "interception_id": { + "type": "string", + "format": "uuid" + }, + "metadata": { + "type": "object", + "additionalProperties": {} + }, + "prompt": { + "type": "string" + }, + "provider_response_id": { + "type": "string" + } + } + }, + "codersdk.AIConfig": { + "type": "object", + "properties": { + "bridge": { + "$ref": "#/definitions/codersdk.AIBridgeConfig" + } + } + }, + "codersdk.APIAllowListTarget": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/codersdk.RBACResource" + } + } + }, + "codersdk.APIKey": { + "type": "object", + "required": [ + "created_at", + "expires_at", + "id", + "last_used", + "lifetime_seconds", + "login_type", + "token_name", + "updated_at", + "user_id" + ], + "properties": { + "allow_list": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.APIAllowListTarget" + } + }, + "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": { + "description": "Deprecated: use Scopes instead.", + "enum": [ + "all", + "application_connect" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.APIKeyScope" + } + ] + }, + "scopes": { + "type": "array", + "items": { + "$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", + "aibridge_interception:*", + "aibridge_interception:create", + "aibridge_interception:read", + "aibridge_interception:update", + "api_key:*", + "api_key:create", + "api_key:delete", + "api_key:read", + "api_key:update", + "assign_org_role:*", + "assign_org_role:assign", + "assign_org_role:create", + "assign_org_role:delete", + "assign_org_role:read", + "assign_org_role:unassign", + "assign_org_role:update", + "assign_role:*", + "assign_role:assign", + "assign_role:read", + "assign_role:unassign", + "audit_log:*", + "audit_log:create", + "audit_log:read", + "coder:all", + "coder:apikeys.manage_self", + "coder:application_connect", + "coder:templates.author", + "coder:templates.build", + "coder:workspaces.access", + "coder:workspaces.create", + "coder:workspaces.delete", + "coder:workspaces.operate", + "connection_log:*", + "connection_log:read", + "connection_log:update", + "crypto_key:*", + "crypto_key:create", + "crypto_key:delete", + "crypto_key:read", + "crypto_key:update", + "debug_info:*", + "debug_info:read", + "deployment_config:*", + "deployment_config:read", + "deployment_config:update", + "deployment_stats:*", + "deployment_stats:read", + "file:*", + "file:create", + "file:read", + "group:*", + "group:create", + "group:delete", + "group:read", + "group:update", + "group_member:*", + "group_member:read", + "idpsync_settings:*", + "idpsync_settings:read", + "idpsync_settings:update", + "inbox_notification:*", + "inbox_notification:create", + "inbox_notification:read", + "inbox_notification:update", + "license:*", + "license:create", + "license:delete", + "license:read", + "notification_message:*", + "notification_message:create", + "notification_message:delete", + "notification_message:read", + "notification_message:update", + "notification_preference:*", + "notification_preference:read", + "notification_preference:update", + "notification_template:*", + "notification_template:read", + "notification_template:update", + "oauth2_app:*", + "oauth2_app:create", + "oauth2_app:delete", + "oauth2_app:read", + "oauth2_app:update", + "oauth2_app_code_token:*", + "oauth2_app_code_token:create", + "oauth2_app_code_token:delete", + "oauth2_app_code_token:read", + "oauth2_app_secret:*", + "oauth2_app_secret:create", + "oauth2_app_secret:delete", + "oauth2_app_secret:read", + "oauth2_app_secret:update", + "organization:*", + "organization:create", + "organization:delete", + "organization:read", + "organization:update", + "organization_member:*", + "organization_member:create", + "organization_member:delete", + "organization_member:read", + "organization_member:update", + "prebuilt_workspace:*", + "prebuilt_workspace:delete", + "prebuilt_workspace:update", + "provisioner_daemon:*", + "provisioner_daemon:create", + "provisioner_daemon:delete", + "provisioner_daemon:read", + "provisioner_daemon:update", + "provisioner_jobs:*", + "provisioner_jobs:create", + "provisioner_jobs:read", + "provisioner_jobs:update", + "replicas:*", + "replicas:read", + "system:*", + "system:create", + "system:delete", + "system:read", + "system:update", + "tailnet_coordinator:*", + "tailnet_coordinator:create", + "tailnet_coordinator:delete", + "tailnet_coordinator:read", + "tailnet_coordinator:update", + "task:*", + "task:create", + "task:delete", + "task:read", + "task:update", + "template:*", + "template:create", + "template:delete", + "template:read", + "template:update", + "template:use", + "template:view_insights", + "usage_event:*", + "usage_event:create", + "usage_event:read", + "usage_event:update", + "user:*", + "user:create", + "user:delete", + "user:read", + "user:read_personal", + "user:update", + "user:update_personal", + "user_secret:*", + "user_secret:create", + "user_secret:delete", + "user_secret:read", + "user_secret:update", + "webpush_subscription:*", + "webpush_subscription:create", + "webpush_subscription:delete", + "webpush_subscription:read", + "workspace:*", + "workspace:application_connect", + "workspace:create", + "workspace:create_agent", + "workspace:delete", + "workspace:delete_agent", + "workspace:read", + "workspace:share", + "workspace:ssh", + "workspace:start", + "workspace:stop", + "workspace:update", + "workspace_agent_devcontainers:*", + "workspace_agent_devcontainers:create", + "workspace_agent_resource_monitor:*", + "workspace_agent_resource_monitor:create", + "workspace_agent_resource_monitor:read", + "workspace_agent_resource_monitor:update", + "workspace_dormant:*", + "workspace_dormant:application_connect", + "workspace_dormant:create", + "workspace_dormant:create_agent", + "workspace_dormant:delete", + "workspace_dormant:delete_agent", + "workspace_dormant:read", + "workspace_dormant:share", + "workspace_dormant:ssh", + "workspace_dormant:start", + "workspace_dormant:stop", + "workspace_dormant:update", + "workspace_proxy:*", + "workspace_proxy:create", + "workspace_proxy:delete", + "workspace_proxy:read", + "workspace_proxy:update" + ], + "x-enum-varnames": [ + "APIKeyScopeAll", + "APIKeyScopeApplicationConnect", + "APIKeyScopeAibridgeInterceptionAll", + "APIKeyScopeAibridgeInterceptionCreate", + "APIKeyScopeAibridgeInterceptionRead", + "APIKeyScopeAibridgeInterceptionUpdate", + "APIKeyScopeApiKeyAll", + "APIKeyScopeApiKeyCreate", + "APIKeyScopeApiKeyDelete", + "APIKeyScopeApiKeyRead", + "APIKeyScopeApiKeyUpdate", + "APIKeyScopeAssignOrgRoleAll", + "APIKeyScopeAssignOrgRoleAssign", + "APIKeyScopeAssignOrgRoleCreate", + "APIKeyScopeAssignOrgRoleDelete", + "APIKeyScopeAssignOrgRoleRead", + "APIKeyScopeAssignOrgRoleUnassign", + "APIKeyScopeAssignOrgRoleUpdate", + "APIKeyScopeAssignRoleAll", + "APIKeyScopeAssignRoleAssign", + "APIKeyScopeAssignRoleRead", + "APIKeyScopeAssignRoleUnassign", + "APIKeyScopeAuditLogAll", + "APIKeyScopeAuditLogCreate", + "APIKeyScopeAuditLogRead", + "APIKeyScopeCoderAll", + "APIKeyScopeCoderApikeysManageSelf", + "APIKeyScopeCoderApplicationConnect", + "APIKeyScopeCoderTemplatesAuthor", + "APIKeyScopeCoderTemplatesBuild", + "APIKeyScopeCoderWorkspacesAccess", + "APIKeyScopeCoderWorkspacesCreate", + "APIKeyScopeCoderWorkspacesDelete", + "APIKeyScopeCoderWorkspacesOperate", + "APIKeyScopeConnectionLogAll", + "APIKeyScopeConnectionLogRead", + "APIKeyScopeConnectionLogUpdate", + "APIKeyScopeCryptoKeyAll", + "APIKeyScopeCryptoKeyCreate", + "APIKeyScopeCryptoKeyDelete", + "APIKeyScopeCryptoKeyRead", + "APIKeyScopeCryptoKeyUpdate", + "APIKeyScopeDebugInfoAll", + "APIKeyScopeDebugInfoRead", + "APIKeyScopeDeploymentConfigAll", + "APIKeyScopeDeploymentConfigRead", + "APIKeyScopeDeploymentConfigUpdate", + "APIKeyScopeDeploymentStatsAll", + "APIKeyScopeDeploymentStatsRead", + "APIKeyScopeFileAll", + "APIKeyScopeFileCreate", + "APIKeyScopeFileRead", + "APIKeyScopeGroupAll", + "APIKeyScopeGroupCreate", + "APIKeyScopeGroupDelete", + "APIKeyScopeGroupRead", + "APIKeyScopeGroupUpdate", + "APIKeyScopeGroupMemberAll", + "APIKeyScopeGroupMemberRead", + "APIKeyScopeIdpsyncSettingsAll", + "APIKeyScopeIdpsyncSettingsRead", + "APIKeyScopeIdpsyncSettingsUpdate", + "APIKeyScopeInboxNotificationAll", + "APIKeyScopeInboxNotificationCreate", + "APIKeyScopeInboxNotificationRead", + "APIKeyScopeInboxNotificationUpdate", + "APIKeyScopeLicenseAll", + "APIKeyScopeLicenseCreate", + "APIKeyScopeLicenseDelete", + "APIKeyScopeLicenseRead", + "APIKeyScopeNotificationMessageAll", + "APIKeyScopeNotificationMessageCreate", + "APIKeyScopeNotificationMessageDelete", + "APIKeyScopeNotificationMessageRead", + "APIKeyScopeNotificationMessageUpdate", + "APIKeyScopeNotificationPreferenceAll", + "APIKeyScopeNotificationPreferenceRead", + "APIKeyScopeNotificationPreferenceUpdate", + "APIKeyScopeNotificationTemplateAll", + "APIKeyScopeNotificationTemplateRead", + "APIKeyScopeNotificationTemplateUpdate", + "APIKeyScopeOauth2AppAll", + "APIKeyScopeOauth2AppCreate", + "APIKeyScopeOauth2AppDelete", + "APIKeyScopeOauth2AppRead", + "APIKeyScopeOauth2AppUpdate", + "APIKeyScopeOauth2AppCodeTokenAll", + "APIKeyScopeOauth2AppCodeTokenCreate", + "APIKeyScopeOauth2AppCodeTokenDelete", + "APIKeyScopeOauth2AppCodeTokenRead", + "APIKeyScopeOauth2AppSecretAll", + "APIKeyScopeOauth2AppSecretCreate", + "APIKeyScopeOauth2AppSecretDelete", + "APIKeyScopeOauth2AppSecretRead", + "APIKeyScopeOauth2AppSecretUpdate", + "APIKeyScopeOrganizationAll", + "APIKeyScopeOrganizationCreate", + "APIKeyScopeOrganizationDelete", + "APIKeyScopeOrganizationRead", + "APIKeyScopeOrganizationUpdate", + "APIKeyScopeOrganizationMemberAll", + "APIKeyScopeOrganizationMemberCreate", + "APIKeyScopeOrganizationMemberDelete", + "APIKeyScopeOrganizationMemberRead", + "APIKeyScopeOrganizationMemberUpdate", + "APIKeyScopePrebuiltWorkspaceAll", + "APIKeyScopePrebuiltWorkspaceDelete", + "APIKeyScopePrebuiltWorkspaceUpdate", + "APIKeyScopeProvisionerDaemonAll", + "APIKeyScopeProvisionerDaemonCreate", + "APIKeyScopeProvisionerDaemonDelete", + "APIKeyScopeProvisionerDaemonRead", + "APIKeyScopeProvisionerDaemonUpdate", + "APIKeyScopeProvisionerJobsAll", + "APIKeyScopeProvisionerJobsCreate", + "APIKeyScopeProvisionerJobsRead", + "APIKeyScopeProvisionerJobsUpdate", + "APIKeyScopeReplicasAll", + "APIKeyScopeReplicasRead", + "APIKeyScopeSystemAll", + "APIKeyScopeSystemCreate", + "APIKeyScopeSystemDelete", + "APIKeyScopeSystemRead", + "APIKeyScopeSystemUpdate", + "APIKeyScopeTailnetCoordinatorAll", + "APIKeyScopeTailnetCoordinatorCreate", + "APIKeyScopeTailnetCoordinatorDelete", + "APIKeyScopeTailnetCoordinatorRead", + "APIKeyScopeTailnetCoordinatorUpdate", + "APIKeyScopeTaskAll", + "APIKeyScopeTaskCreate", + "APIKeyScopeTaskDelete", + "APIKeyScopeTaskRead", + "APIKeyScopeTaskUpdate", + "APIKeyScopeTemplateAll", + "APIKeyScopeTemplateCreate", + "APIKeyScopeTemplateDelete", + "APIKeyScopeTemplateRead", + "APIKeyScopeTemplateUpdate", + "APIKeyScopeTemplateUse", + "APIKeyScopeTemplateViewInsights", + "APIKeyScopeUsageEventAll", + "APIKeyScopeUsageEventCreate", + "APIKeyScopeUsageEventRead", + "APIKeyScopeUsageEventUpdate", + "APIKeyScopeUserAll", + "APIKeyScopeUserCreate", + "APIKeyScopeUserDelete", + "APIKeyScopeUserRead", + "APIKeyScopeUserReadPersonal", + "APIKeyScopeUserUpdate", + "APIKeyScopeUserUpdatePersonal", + "APIKeyScopeUserSecretAll", + "APIKeyScopeUserSecretCreate", + "APIKeyScopeUserSecretDelete", + "APIKeyScopeUserSecretRead", + "APIKeyScopeUserSecretUpdate", + "APIKeyScopeWebpushSubscriptionAll", + "APIKeyScopeWebpushSubscriptionCreate", + "APIKeyScopeWebpushSubscriptionDelete", + "APIKeyScopeWebpushSubscriptionRead", + "APIKeyScopeWorkspaceAll", + "APIKeyScopeWorkspaceApplicationConnect", + "APIKeyScopeWorkspaceCreate", + "APIKeyScopeWorkspaceCreateAgent", + "APIKeyScopeWorkspaceDelete", + "APIKeyScopeWorkspaceDeleteAgent", + "APIKeyScopeWorkspaceRead", + "APIKeyScopeWorkspaceShare", + "APIKeyScopeWorkspaceSsh", + "APIKeyScopeWorkspaceStart", + "APIKeyScopeWorkspaceStop", + "APIKeyScopeWorkspaceUpdate", + "APIKeyScopeWorkspaceAgentDevcontainersAll", + "APIKeyScopeWorkspaceAgentDevcontainersCreate", + "APIKeyScopeWorkspaceAgentResourceMonitorAll", + "APIKeyScopeWorkspaceAgentResourceMonitorCreate", + "APIKeyScopeWorkspaceAgentResourceMonitorRead", + "APIKeyScopeWorkspaceAgentResourceMonitorUpdate", + "APIKeyScopeWorkspaceDormantAll", + "APIKeyScopeWorkspaceDormantApplicationConnect", + "APIKeyScopeWorkspaceDormantCreate", + "APIKeyScopeWorkspaceDormantCreateAgent", + "APIKeyScopeWorkspaceDormantDelete", + "APIKeyScopeWorkspaceDormantDeleteAgent", + "APIKeyScopeWorkspaceDormantRead", + "APIKeyScopeWorkspaceDormantShare", + "APIKeyScopeWorkspaceDormantSsh", + "APIKeyScopeWorkspaceDormantStart", + "APIKeyScopeWorkspaceDormantStop", + "APIKeyScopeWorkspaceDormantUpdate", + "APIKeyScopeWorkspaceProxyAll", + "APIKeyScopeWorkspaceProxyCreate", + "APIKeyScopeWorkspaceProxyDelete", + "APIKeyScopeWorkspaceProxyRead", + "APIKeyScopeWorkspaceProxyUpdate" + ] + }, + "codersdk.AddLicenseRequest": { + "type": "object", + "required": [ + "license" + ], + "properties": { + "license": { + "type": "string" + } + } + }, + "codersdk.AgentConnectionTiming": { + "type": "object", + "properties": { + "ended_at": { + "type": "string", + "format": "date-time" + }, + "stage": { + "$ref": "#/definitions/codersdk.TimingStage" + }, + "started_at": { + "type": "string", + "format": "date-time" + }, + "workspace_agent_id": { + "type": "string" + }, + "workspace_agent_name": { + "type": "string" + } + } + }, + "codersdk.AgentScriptTiming": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "ended_at": { + "type": "string", + "format": "date-time" + }, + "exit_code": { + "type": "integer" + }, + "stage": { + "$ref": "#/definitions/codersdk.TimingStage" + }, + "started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "workspace_agent_id": { + "type": "string" + }, + "workspace_agent_name": { + "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": { + "announcement_banners": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.BannerConfig" + } + }, + "application_name": { + "type": "string" + }, + "docs_url": { + "type": "string" + }, + "logo_url": { + "type": "string" + }, + "service_banner": { + "description": "Deprecated: ServiceBanner has been replaced by AnnouncementBanners.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.BannerConfig" + } + ] + }, + "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" + }, + "built_in": { + "description": "BuiltIn roles are immutable", + "type": "boolean" + }, + "display_name": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_member_permissions": { + "description": "OrganizationMemberPermissions are specific for the organization in the field 'OrganizationID' above.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "organization_permissions": { + "description": "OrganizationPermissions are specific for the organization in the field 'OrganizationID' above.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "site_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "user_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + } + } + }, + "codersdk.AuditAction": { + "type": "string", + "enum": [ + "create", + "write", + "delete", + "start", + "stop", + "login", + "logout", + "register", + "request_password_reset", + "connect", + "disconnect", + "open", + "close" + ], + "x-enum-varnames": [ + "AuditActionCreate", + "AuditActionWrite", + "AuditActionDelete", + "AuditActionStart", + "AuditActionStop", + "AuditActionLogin", + "AuditActionLogout", + "AuditActionRegister", + "AuditActionRequestPasswordReset", + "AuditActionConnect", + "AuditActionDisconnect", + "AuditActionOpen", + "AuditActionClose" + ] + }, + "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": "object" + }, + "description": { + "type": "string" + }, + "diff": { + "$ref": "#/definitions/codersdk.AuditDiff" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "ip": { + "type": "string" + }, + "is_deleted": { + "type": "boolean" + }, + "organization": { + "$ref": "#/definitions/codersdk.MinimalOrganization" + }, + "organization_id": { + "description": "Deprecated: Use 'organization.id' instead.", + "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.GithubAuthMethod" + }, + "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": { + "enum": [ + "create", + "read", + "update", + "delete" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.RBACAction" + } + ] + }, + "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": { + "any_org": { + "description": "AnyOrgOwner (optional) will disregard the org_owner when checking for permissions.\nThis cannot be set to true if the OrganizationID is set.", + "type": "boolean" + }, + "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.BannerConfig": { + "type": "object", + "properties": { + "background_color": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "message": { + "type": "string" + } + } + }, + "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" + }, + "provisioner_api_version": { + "description": "ProvisionerAPIVersion is the current version of the Provisioner API", + "type": "string" + }, + "telemetry": { + "description": "Telemetry is a boolean that indicates whether telemetry is enabled.", + "type": "boolean" + }, + "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" + }, + "webpush_public_key": { + "description": "WebPushPublicKey is the public key for push notifications via Web Push.", + "type": "string" + }, + "workspace_proxy": { + "type": "boolean" + } + } + }, + "codersdk.BuildReason": { + "type": "string", + "enum": [ + "initiator", + "autostart", + "autostop", + "dormancy", + "dashboard", + "cli", + "ssh_connection", + "vscode_connection", + "jetbrains_connection" + ], + "x-enum-varnames": [ + "BuildReasonInitiator", + "BuildReasonAutostart", + "BuildReasonAutostop", + "BuildReasonDormancy", + "BuildReasonDashboard", + "BuildReasonCLI", + "BuildReasonSSHConnection", + "BuildReasonVSCodeConnection", + "BuildReasonJetbrainsConnection" + ] + }, + "codersdk.CORSBehavior": { + "type": "string", + "enum": [ + "simple", + "passthru" + ], + "x-enum-varnames": [ + "CORSBehaviorSimple", + "CORSBehaviorPassthru" + ] + }, + "codersdk.ChangePasswordWithOneTimePasscodeRequest": { + "type": "object", + "required": [ + "email", + "one_time_passcode", + "password" + ], + "properties": { + "email": { + "type": "string", + "format": "email" + }, + "one_time_passcode": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "codersdk.ConnectionLatency": { + "type": "object", + "properties": { + "p50": { + "type": "number", + "example": 31.312 + }, + "p95": { + "type": "number", + "example": 119.832 + } + } + }, + "codersdk.ConnectionLog": { + "type": "object", + "properties": { + "agent_name": { + "type": "string" + }, + "connect_time": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "ip": { + "type": "string" + }, + "organization": { + "$ref": "#/definitions/codersdk.MinimalOrganization" + }, + "ssh_info": { + "description": "SSHInfo is only set when `type` is one of:\n- `ConnectionTypeSSH`\n- `ConnectionTypeReconnectingPTY`\n- `ConnectionTypeVSCode`\n- `ConnectionTypeJetBrains`", + "allOf": [ + { + "$ref": "#/definitions/codersdk.ConnectionLogSSHInfo" + } + ] + }, + "type": { + "$ref": "#/definitions/codersdk.ConnectionType" + }, + "web_info": { + "description": "WebInfo is only set when `type` is one of:\n- `ConnectionTypePortForwarding`\n- `ConnectionTypeWorkspaceApp`", + "allOf": [ + { + "$ref": "#/definitions/codersdk.ConnectionLogWebInfo" + } + ] + }, + "workspace_id": { + "type": "string", + "format": "uuid" + }, + "workspace_name": { + "type": "string" + }, + "workspace_owner_id": { + "type": "string", + "format": "uuid" + }, + "workspace_owner_username": { + "type": "string" + } + } + }, + "codersdk.ConnectionLogResponse": { + "type": "object", + "properties": { + "connection_logs": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ConnectionLog" + } + }, + "count": { + "type": "integer" + } + } + }, + "codersdk.ConnectionLogSSHInfo": { + "type": "object", + "properties": { + "connection_id": { + "type": "string", + "format": "uuid" + }, + "disconnect_reason": { + "description": "DisconnectReason is omitted if a disconnect event with the same connection ID\nhas not yet been seen.", + "type": "string" + }, + "disconnect_time": { + "description": "DisconnectTime is omitted if a disconnect event with the same connection ID\nhas not yet been seen.", + "type": "string", + "format": "date-time" + }, + "exit_code": { + "description": "ExitCode is the exit code of the SSH session. It is omitted if a\ndisconnect event with the same connection ID has not yet been seen.", + "type": "integer" + } + } + }, + "codersdk.ConnectionLogWebInfo": { + "type": "object", + "properties": { + "slug_or_port": { + "type": "string" + }, + "status_code": { + "description": "StatusCode is the HTTP status code of the request.", + "type": "integer" + }, + "user": { + "description": "User is omitted if the connection event was from an unauthenticated user.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.User" + } + ] + }, + "user_agent": { + "type": "string" + } + } + }, + "codersdk.ConnectionType": { + "type": "string", + "enum": [ + "ssh", + "vscode", + "jetbrains", + "reconnecting_pty", + "workspace_app", + "port_forwarding" + ], + "x-enum-varnames": [ + "ConnectionTypeSSH", + "ConnectionTypeVSCode", + "ConnectionTypeJetBrains", + "ConnectionTypeReconnectingPTY", + "ConnectionTypeWorkspaceApp", + "ConnectionTypePortForwarding" + ] + }, + "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" + }, + "name": { + "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", + "required": [ + "name" + ], + "properties": { + "avatar_url": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quota_allowance": { + "type": "integer" + } + } + }, + "codersdk.CreateOrganizationRequest": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "description": { + "type": "string" + }, + "display_name": { + "description": "DisplayName will default to the same value as `Name` if not provided.", + "type": "string" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "codersdk.CreateProvisionerKeyResponse": { + "type": "object", + "properties": { + "key": { + "type": "string" + } + } + }, + "codersdk.CreateTaskRequest": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "input": { + "type": "string" + }, + "name": { + "type": "string" + }, + "template_version_id": { + "type": "string", + "format": "uuid" + }, + "template_version_preset_id": { + "type": "string", + "format": "uuid" + } + } + }, + "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" + } + ] + }, + "cors_behavior": { + "description": "CORSBehavior allows optionally specifying the CORS behavior for all shared ports.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.CORSBehavior" + } + ] + }, + "default_ttl_ms": { + "description": "DefaultTTLMillis allows optionally specifying the default TTL\nfor all workspaces created from this template.", + "type": "integer" + }, + "delete_ttl_ms": { + "description": "TimeTilDormantAutoDeleteMillis allows optionally specifying the max lifetime before Coder\npermanently deletes dormant workspaces created from this template.", + "type": "integer" + }, + "description": { + "description": "Description is a description of what the template contains. It must be\nless than 128 bytes.", + "type": "string" + }, + "disable_everyone_group_access": { + "description": "DisableEveryoneGroupAccess allows optionally disabling the default\nbehavior of granting the 'everyone' group access to use the template.\nIf this is set to true, the template will not be available to all users,\nand must be explicitly granted to users or groups in the permissions settings\nof the template.", + "type": "boolean" + }, + "display_name": { + "description": "DisplayName is the displayed name of the template.", + "type": "string" + }, + "dormant_ttl_ms": { + "description": "TimeTilDormantMillis allows optionally specifying the max lifetime before Coder\nlocks inactive workspaces created from this template.", + "type": "integer" + }, + "failure_ttl_ms": { + "description": "FailureTTLMillis allows optionally specifying the max lifetime before Coder\nstops all resources for failed workspaces created from this template.", + "type": "integer" + }, + "icon": { + "description": "Icon is a relative path or external URL that specifies\nan icon to be displayed in the dashboard.", + "type": "string" + }, + "max_port_share_level": { + "description": "MaxPortShareLevel allows optionally specifying the maximum port share level\nfor workspaces created from the template.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" + } + ] + }, + "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_use_classic_parameter_flow": { + "description": "UseClassicParameterFlow allows optionally specifying whether\nthe template should use the classic parameter flow. The default if unset is\ntrue, and is why `*bool` is used here. When dynamic parameters becomes\nthe default, this will default to false.", + "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" + } + ] + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "request_id": { + "type": "string", + "format": "uuid" + }, + "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": { + "allow_list": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.APIAllowListTarget" + } + }, + "lifetime": { + "type": "integer" + }, + "scope": { + "description": "Deprecated: use Scopes instead.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.APIKeyScope" + } + ] + }, + "scopes": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.APIKeyScope" + } + }, + "token_name": { + "type": "string" + } + } + }, + "codersdk.CreateUserRequestWithOrgs": { + "type": "object", + "required": [ + "email", + "username" + ], + "properties": { + "email": { + "type": "string", + "format": "email" + }, + "login_type": { + "description": "UserLoginType defaults to LoginTypePassword.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.LoginType" + } + ] + }, + "name": { + "type": "string" + }, + "organization_ids": { + "description": "OrganizationIDs is a list of organization IDs that the user should be a member of.", + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "password": { + "type": "string" + }, + "user_status": { + "description": "UserStatus defaults to UserStatusDormant.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.UserStatus" + } + ] + }, + "username": { + "type": "string" + } + } + }, + "codersdk.CreateWorkspaceBuildReason": { + "type": "string", + "enum": [ + "dashboard", + "cli", + "ssh_connection", + "vscode_connection", + "jetbrains_connection" + ], + "x-enum-varnames": [ + "CreateWorkspaceBuildReasonDashboard", + "CreateWorkspaceBuildReasonCLI", + "CreateWorkspaceBuildReasonSSHConnection", + "CreateWorkspaceBuildReasonVSCodeConnection", + "CreateWorkspaceBuildReasonJetbrainsConnection" + ] + }, + "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" + }, + "reason": { + "description": "Reason sets the reason for the workspace build.", + "enum": [ + "dashboard", + "cli", + "ssh_connection", + "vscode_connection", + "jetbrains_connection" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.CreateWorkspaceBuildReason" + } + ] + }, + "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" + }, + "template_version_preset_id": { + "description": "TemplateVersionPresetID is the ID of the template version preset to use for the build.", + "type": "string", + "format": "uuid" + }, + "transition": { + "enum": [ + "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. Workspace names: - Must start with a letter or number - Can only contain letters, numbers, and hyphens - Cannot contain spaces or special characters - Cannot be named `new` or `create` - Must be unique within your workspaces - Maximum length of 32 characters", + "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" + }, + "template_version_preset_id": { + "type": "string", + "format": "uuid" + }, + "ttl_ms": { + "type": "integer" + } + } + }, + "codersdk.CryptoKey": { + "type": "object", + "properties": { + "deletes_at": { + "type": "string", + "format": "date-time" + }, + "feature": { + "$ref": "#/definitions/codersdk.CryptoKeyFeature" + }, + "secret": { + "type": "string" + }, + "sequence": { + "type": "integer" + }, + "starts_at": { + "type": "string", + "format": "date-time" + } + } + }, + "codersdk.CryptoKeyFeature": { + "type": "string", + "enum": [ + "workspace_apps_api_key", + "workspace_apps_token", + "oidc_convert", + "tailnet_resume" + ], + "x-enum-varnames": [ + "CryptoKeyFeatureWorkspaceAppsAPIKey", + "CryptoKeyFeatureWorkspaceAppsToken", + "CryptoKeyFeatureOIDCConvert", + "CryptoKeyFeatureTailnetResume" + ] + }, + "codersdk.CustomNotificationContent": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "codersdk.CustomNotificationRequest": { + "type": "object", + "properties": { + "content": { + "$ref": "#/definitions/codersdk.CustomNotificationContent" + } + } + }, + "codersdk.CustomRoleRequest": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization_member_permissions": { + "description": "OrganizationMemberPermissions are specific to the organization the role belongs to.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "organization_permissions": { + "description": "OrganizationPermissions are specific to the organization the role belongs to.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "site_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "user_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + } + } + }, + "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.DeleteExternalAuthByIDResponse": { + "type": "object", + "properties": { + "token_revocation_error": { + "type": "string" + }, + "token_revoked": { + "description": "TokenRevoked set to true if token revocation was attempted and was successful", + "type": "boolean" + } + } + }, + "codersdk.DeleteWebpushSubscription": { + "type": "object", + "properties": { + "endpoint": { + "type": "string" + } + } + }, + "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" + }, + "additional_csp_policy": { + "type": "array", + "items": { + "type": "string" + } + }, + "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" + }, + "ai": { + "$ref": "#/definitions/codersdk.AIConfig" + }, + "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" + }, + "disable_workspace_sharing": { + "type": "boolean" + }, + "docs_url": { + "$ref": "#/definitions/serpent.URL" + }, + "enable_authz_recording": { + "type": "boolean" + }, + "enable_terraform_debug_mode": { + "type": "boolean" + }, + "ephemeral_deployment": { + "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" + }, + "hide_ai_tasks": { + "type": "boolean" + }, + "http_address": { + "description": "HTTPAddress is a string because it may be set to zero to disable.", + "type": "string" + }, + "http_cookies": { + "$ref": "#/definitions/codersdk.HTTPCookieConfig" + }, + "job_hang_detector_interval": { + "type": "integer" + }, + "logging": { + "$ref": "#/definitions/codersdk.LoggingConfig" + }, + "metrics_cache_refresh_interval": { + "type": "integer" + }, + "notifications": { + "$ref": "#/definitions/codersdk.NotificationsConfig" + }, + "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" + }, + "retention": { + "$ref": "#/definitions/codersdk.RetentionConfig" + }, + "scim_api_key": { + "type": "string" + }, + "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" + }, + "workspace_hostname_suffix": { + "type": "string" + }, + "workspace_prebuilds": { + "$ref": "#/definitions/codersdk.PrebuildsConfig" + }, + "write_config": { + "type": "boolean" + } + } + }, + "codersdk.DiagnosticExtra": { + "type": "object", + "properties": { + "code": { + "type": "string" + } + } + }, + "codersdk.DiagnosticSeverityString": { + "type": "string", + "enum": [ + "error", + "warning" + ], + "x-enum-varnames": [ + "DiagnosticSeverityError", + "DiagnosticSeverityWarning" + ] + }, + "codersdk.DisplayApp": { + "type": "string", + "enum": [ + "vscode", + "vscode_insiders", + "web_terminal", + "port_forwarding_helper", + "ssh_helper" + ], + "x-enum-varnames": [ + "DisplayAppVSCodeDesktop", + "DisplayAppVSCodeInsiders", + "DisplayAppWebTerminal", + "DisplayAppPortForward", + "DisplayAppSSH" + ] + }, + "codersdk.DynamicParametersRequest": { + "type": "object", + "properties": { + "id": { + "description": "ID identifies the request. The response contains the same\nID so that the client can match it to the request.", + "type": "integer" + }, + "inputs": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "owner_id": { + "description": "OwnerID if uuid.Nil, it defaults to `codersdk.Me`", + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.DynamicParametersResponse": { + "type": "object", + "properties": { + "diagnostics": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.FriendlyDiagnostic" + } + }, + "id": { + "type": "integer" + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.PreviewParameter" + } + } + } + }, + "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", + "notifications", + "workspace-usage", + "web-push", + "oauth2", + "mcp-server-http", + "workspace-sharing", + "terraform-directory-reuse" + ], + "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.", + "ExperimentMCPServerHTTP": "Enables the MCP HTTP server functionality.", + "ExperimentNotifications": "Sends notifications via SMTP and webhooks following certain events.", + "ExperimentOAuth2": "Enables OAuth2 provider functionality.", + "ExperimentTerraformWorkspace": "Enables reuse of existing terraform directory for builds", + "ExperimentWebPush": "Enables web push notifications through the browser.", + "ExperimentWorkspaceSharing": "Enables updating workspace ACLs for sharing with users and groups.", + "ExperimentWorkspaceUsage": "Enables the new workspace usage tracking." + }, + "x-enum-varnames": [ + "ExperimentExample", + "ExperimentAutoFillParameters", + "ExperimentNotifications", + "ExperimentWorkspaceUsage", + "ExperimentWebPush", + "ExperimentOAuth2", + "ExperimentMCPServerHTTP", + "ExperimentWorkspaceSharing", + "ExperimentTerraformWorkspace" + ] + }, + "codersdk.ExternalAPIKeyScopes": { + "type": "object", + "properties": { + "external": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.APIKeyScope" + } + } + } + }, + "codersdk.ExternalAgentCredentials": { + "type": "object", + "properties": { + "agent_token": { + "type": "string" + }, + "command": { + "type": "string" + } + } + }, + "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" + } + }, + "supports_revocation": { + "type": "boolean" + }, + "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" + }, + "id": { + "description": "ID is a unique identifier for the auth config.\nIt defaults to `type` when not provided.", + "type": "string" + }, + "mcp_tool_allow_regex": { + "type": "string" + }, + "mcp_tool_deny_regex": { + "type": "string" + }, + "mcp_url": { + "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" + }, + "revoke_url": { + "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" + }, + "id": { + "type": "integer" + }, + "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" + }, + "soft_limit": { + "description": "SoftLimit is the soft limit of the feature, and is only used for showing\nincluded limits in the dashboard. No license validation or warnings are\ngenerated from this value.", + "type": "integer" + }, + "usage_period": { + "description": "UsagePeriod denotes that the usage is a counter that accumulates over\nthis period (and most likely resets with the issuance of the next\nlicense).\n\nThese dates are determined from the license that this entitlement comes\nfrom, see enterprise/coderd/license/license.go.\n\nOnly certain features set these fields:\n- FeatureManagedAgentLimit", + "allOf": [ + { + "$ref": "#/definitions/codersdk.UsagePeriod" + } + ] + } + } + }, + "codersdk.FriendlyDiagnostic": { + "type": "object", + "properties": { + "detail": { + "type": "string" + }, + "extra": { + "$ref": "#/definitions/codersdk.DiagnosticExtra" + }, + "severity": { + "$ref": "#/definitions/codersdk.DiagnosticSeverityString" + }, + "summary": { + "type": "string" + } + } + }, + "codersdk.GenerateAPIKeyResponse": { + "type": "object", + "properties": { + "key": { + "type": "string" + } + } + }, + "codersdk.GetInboxNotificationResponse": { + "type": "object", + "properties": { + "notification": { + "$ref": "#/definitions/codersdk.InboxNotification" + }, + "unread_count": { + "type": "integer" + } + } + }, + "codersdk.GetUserStatusCountsResponse": { + "type": "object", + "properties": { + "status_counts": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.UserStatusChangeCount" + } + } + } + } + }, + "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": { + "description": "PublicKey is the SSH public key in OpenSSH format.\nExample: \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3OmYJvT7q1cF1azbybYy0OZ9yrXfA+M6Lr4vzX5zlp\\n\"\nNote: The key includes a trailing newline (\\n).", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "user_id": { + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.GithubAuthMethod": { + "type": "object", + "properties": { + "default_provider_configured": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + } + } + }, + "codersdk.Group": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ReducedUser" + } + }, + "name": { + "type": "string" + }, + "organization_display_name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_name": { + "type": "string" + }, + "quota_allowance": { + "type": "integer" + }, + "source": { + "$ref": "#/definitions/codersdk.GroupSource" + }, + "total_member_count": { + "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", + "type": "integer" + } + } + }, + "codersdk.GroupSource": { + "type": "string", + "enum": [ + "user", + "oidc" + ], + "x-enum-varnames": [ + "GroupSourceUser", + "GroupSourceOIDC" + ] + }, + "codersdk.GroupSyncSettings": { + "type": "object", + "properties": { + "auto_create_missing_groups": { + "description": "AutoCreateMissing controls whether groups returned by the OIDC provider\nare automatically created in Coder if they are missing.", + "type": "boolean" + }, + "field": { + "description": "Field is the name of the claim field that specifies what groups a user\nshould be in. If empty, no groups will be synced.", + "type": "string" + }, + "legacy_group_name_mapping": { + "description": "LegacyNameMapping is deprecated. It remaps an IDP group name to\na Coder group name. Since configuration is now done at runtime,\ngroup IDs are used to account for group renames.\nFor legacy configurations, this config option has to remain.\nDeprecated: Use Mapping instead.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "mapping": { + "description": "Mapping is a map from OIDC groups to Coder group IDs", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "regex_filter": { + "description": "RegexFilter is a regular expression that filters the groups returned by\nthe OIDC provider. Any group not matched by this regex will be ignored.\nIf the group filter is nil, then no group filtering will occur.", + "allOf": [ + { + "$ref": "#/definitions/regexp.Regexp" + } + ] + } + } + }, + "codersdk.HTTPCookieConfig": { + "type": "object", + "properties": { + "same_site": { + "type": "string" + }, + "secure_auth_cookie": { + "type": "boolean" + } + } + }, + "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.InboxNotification": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.InboxNotificationAction" + } + }, + "content": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "read_at": { + "type": "string" + }, + "targets": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "template_id": { + "type": "string", + "format": "uuid" + }, + "title": { + "type": "string" + }, + "user_id": { + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.InboxNotificationAction": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "codersdk.InsightsReportInterval": { + "type": "string", + "enum": [ + "day", + "week" + ], + "x-enum-varnames": [ + "InsightsReportIntervalDay", + "InsightsReportIntervalWeek" + ] + }, + "codersdk.InvalidatePresetsResponse": { + "type": "object", + "properties": { + "invalidated": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.InvalidatedPreset" + } + } + } + }, + "codersdk.InvalidatedPreset": { + "type": "object", + "properties": { + "preset_name": { + "type": "string" + }, + "template_name": { + "type": "string" + }, + "template_version_name": { + "type": "string" + } + } + }, + "codersdk.IssueReconnectingPTYSignedTokenRequest": { + "type": "object", + "required": [ + "agentID", + "url" + ], + "properties": { + "agentID": { + "type": "string", + "format": "uuid" + }, + "url": { + "description": "URL is the URL of the reconnecting-pty endpoint you are connecting to.", + "type": "string" + } + } + }, + "codersdk.IssueReconnectingPTYSignedTokenResponse": { + "type": "object", + "properties": { + "signed_token": { + "type": "string" + } + } + }, + "codersdk.JobErrorCode": { + "type": "string", + "enum": [ + "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", + "star" + ] + }, + "location": { + "type": "string", + "enum": [ + "navbar", + "dropdown" + ] + }, + "name": { + "type": "string" + }, + "target": { + "type": "string" + } + } + }, + "codersdk.ListInboxNotificationsResponse": { + "type": "object", + "properties": { + "notifications": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.InboxNotification" + } + }, + "unread_count": { + "type": "integer" + } + } + }, + "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.MatchedProvisioners": { + "type": "object", + "properties": { + "available": { + "description": "Available is the number of provisioner daemons that are available to\ntake jobs. This may be less than the count if some provisioners are\nbusy or have been stopped.", + "type": "integer" + }, + "count": { + "description": "Count is the number of provisioner daemons that matched the given\ntags. If the count is 0, it means no provisioner daemons matched the\nrequested tags.", + "type": "integer" + }, + "most_recently_seen": { + "description": "MostRecentlySeen is the most recently seen time of the set of matched\nprovisioners. If no provisioners matched, this field will be null.", + "type": "string", + "format": "date-time" + } + } + }, + "codersdk.MinimalOrganization": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "display_name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + } + }, + "codersdk.MinimalUser": { + "type": "object", + "required": [ + "id", + "username" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "username": { + "type": "string" + } + } + }, + "codersdk.NotificationMethodsResponse": { + "type": "object", + "properties": { + "available": { + "type": "array", + "items": { + "type": "string" + } + }, + "default": { + "type": "string" + } + } + }, + "codersdk.NotificationPreference": { + "type": "object", + "properties": { + "disabled": { + "type": "boolean" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + } + }, + "codersdk.NotificationTemplate": { + "type": "object", + "properties": { + "actions": { + "type": "string" + }, + "body_template": { + "type": "string" + }, + "enabled_by_default": { + "type": "boolean" + }, + "group": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "kind": { + "type": "string" + }, + "method": { + "type": "string" + }, + "name": { + "type": "string" + }, + "title_template": { + "type": "string" + } + } + }, + "codersdk.NotificationsConfig": { + "type": "object", + "properties": { + "dispatch_timeout": { + "description": "How long to wait while a notification is being sent before giving up.", + "type": "integer" + }, + "email": { + "description": "SMTP settings.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.NotificationsEmailConfig" + } + ] + }, + "fetch_interval": { + "description": "How often to query the database for queued notifications.", + "type": "integer" + }, + "inbox": { + "description": "Inbox settings.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.NotificationsInboxConfig" + } + ] + }, + "lease_count": { + "description": "How many notifications a notifier should lease per fetch interval.", + "type": "integer" + }, + "lease_period": { + "description": "How long a notifier should lease a message. This is effectively how long a notification is 'owned'\nby a notifier, and once this period expires it will be available for lease by another notifier. Leasing\nis important in order for multiple running notifiers to not pick the same messages to deliver concurrently.\nThis lease period will only expire if a notifier shuts down ungracefully; a dispatch of the notification\nreleases the lease.", + "type": "integer" + }, + "max_send_attempts": { + "description": "The upper limit of attempts to send a notification.", + "type": "integer" + }, + "method": { + "description": "Which delivery method to use (available options: 'smtp', 'webhook').", + "type": "string" + }, + "retry_interval": { + "description": "The minimum time between retries.", + "type": "integer" + }, + "sync_buffer_size": { + "description": "The notifications system buffers message updates in memory to ease pressure on the database.\nThis option controls how many updates are kept in memory. The lower this value the\nlower the change of state inconsistency in a non-graceful shutdown - but it also increases load on the\ndatabase. It is recommended to keep this option at its default value.", + "type": "integer" + }, + "sync_interval": { + "description": "The notifications system buffers message updates in memory to ease pressure on the database.\nThis option controls how often it synchronizes its state with the database. The shorter this value the\nlower the change of state inconsistency in a non-graceful shutdown - but it also increases load on the\ndatabase. It is recommended to keep this option at its default value.", + "type": "integer" + }, + "webhook": { + "description": "Webhook settings.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.NotificationsWebhookConfig" + } + ] + } + } + }, + "codersdk.NotificationsEmailAuthConfig": { + "type": "object", + "properties": { + "identity": { + "description": "Identity for PLAIN auth.", + "type": "string" + }, + "password": { + "description": "Password for LOGIN/PLAIN auth.", + "type": "string" + }, + "password_file": { + "description": "File from which to load the password for LOGIN/PLAIN auth.", + "type": "string" + }, + "username": { + "description": "Username for LOGIN/PLAIN auth.", + "type": "string" + } + } + }, + "codersdk.NotificationsEmailConfig": { + "type": "object", + "properties": { + "auth": { + "description": "Authentication details.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.NotificationsEmailAuthConfig" + } + ] + }, + "force_tls": { + "description": "ForceTLS causes a TLS connection to be attempted.", + "type": "boolean" + }, + "from": { + "description": "The sender's address.", + "type": "string" + }, + "hello": { + "description": "The hostname identifying the SMTP server.", + "type": "string" + }, + "smarthost": { + "description": "The intermediary SMTP host through which emails are sent (host:port).", + "type": "string" + }, + "tls": { + "description": "TLS details.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.NotificationsEmailTLSConfig" + } + ] + } + } + }, + "codersdk.NotificationsEmailTLSConfig": { + "type": "object", + "properties": { + "ca_file": { + "description": "CAFile specifies the location of the CA certificate to use.", + "type": "string" + }, + "cert_file": { + "description": "CertFile specifies the location of the certificate to use.", + "type": "string" + }, + "insecure_skip_verify": { + "description": "InsecureSkipVerify skips target certificate validation.", + "type": "boolean" + }, + "key_file": { + "description": "KeyFile specifies the location of the key to use.", + "type": "string" + }, + "server_name": { + "description": "ServerName to verify the hostname for the targets.", + "type": "string" + }, + "start_tls": { + "description": "StartTLS attempts to upgrade plain connections to TLS.", + "type": "boolean" + } + } + }, + "codersdk.NotificationsInboxConfig": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "codersdk.NotificationsSettings": { + "type": "object", + "properties": { + "notifier_paused": { + "type": "boolean" + } + } + }, + "codersdk.NotificationsWebhookConfig": { + "type": "object", + "properties": { + "endpoint": { + "description": "The URL to which the payload will be sent with an HTTP POST request.", + "allOf": [ + { + "$ref": "#/definitions/serpent.URL" + } + ] + } + } + }, + "codersdk.NullHCLString": { + "type": "object", + "properties": { + "valid": { + "type": "boolean" + }, + "value": { + "type": "string" + } + } + }, + "codersdk.OAuth2AppEndpoints": { + "type": "object", + "properties": { + "authorization": { + "type": "string" + }, + "device_authorization": { + "description": "DeviceAuth is optional.", + "type": "string" + }, + "token": { + "type": "string" + }, + "token_revoke": { + "type": "string" + } + } + }, + "codersdk.OAuth2AuthorizationServerMetadata": { + "type": "object", + "properties": { + "authorization_endpoint": { + "type": "string" + }, + "code_challenge_methods_supported": { + "type": "array", + "items": { + "type": "string" + } + }, + "grant_types_supported": { + "type": "array", + "items": { + "type": "string" + } + }, + "issuer": { + "type": "string" + }, + "registration_endpoint": { + "type": "string" + }, + "response_types_supported": { + "type": "array", + "items": { + "type": "string" + } + }, + "revocation_endpoint": { + "type": "string" + }, + "scopes_supported": { + "type": "array", + "items": { + "type": "string" + } + }, + "token_endpoint": { + "type": "string" + }, + "token_endpoint_auth_methods_supported": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "codersdk.OAuth2ClientConfiguration": { + "type": "object", + "properties": { + "client_id": { + "type": "string" + }, + "client_id_issued_at": { + "type": "integer" + }, + "client_name": { + "type": "string" + }, + "client_secret_expires_at": { + "type": "integer" + }, + "client_uri": { + "type": "string" + }, + "contacts": { + "type": "array", + "items": { + "type": "string" + } + }, + "grant_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "jwks": { + "type": "object" + }, + "jwks_uri": { + "type": "string" + }, + "logo_uri": { + "type": "string" + }, + "policy_uri": { + "type": "string" + }, + "redirect_uris": { + "type": "array", + "items": { + "type": "string" + } + }, + "registration_access_token": { + "type": "array", + "items": { + "type": "integer" + } + }, + "registration_client_uri": { + "type": "string" + }, + "response_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string" + }, + "software_id": { + "type": "string" + }, + "software_version": { + "type": "string" + }, + "token_endpoint_auth_method": { + "type": "string" + }, + "tos_uri": { + "type": "string" + } + } + }, + "codersdk.OAuth2ClientRegistrationRequest": { + "type": "object", + "properties": { + "client_name": { + "type": "string" + }, + "client_uri": { + "type": "string" + }, + "contacts": { + "type": "array", + "items": { + "type": "string" + } + }, + "grant_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "jwks": { + "type": "object" + }, + "jwks_uri": { + "type": "string" + }, + "logo_uri": { + "type": "string" + }, + "policy_uri": { + "type": "string" + }, + "redirect_uris": { + "type": "array", + "items": { + "type": "string" + } + }, + "response_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string" + }, + "software_id": { + "type": "string" + }, + "software_statement": { + "type": "string" + }, + "software_version": { + "type": "string" + }, + "token_endpoint_auth_method": { + "type": "string" + }, + "tos_uri": { + "type": "string" + } + } + }, + "codersdk.OAuth2ClientRegistrationResponse": { + "type": "object", + "properties": { + "client_id": { + "type": "string" + }, + "client_id_issued_at": { + "type": "integer" + }, + "client_name": { + "type": "string" + }, + "client_secret": { + "type": "string" + }, + "client_secret_expires_at": { + "type": "integer" + }, + "client_uri": { + "type": "string" + }, + "contacts": { + "type": "array", + "items": { + "type": "string" + } + }, + "grant_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "jwks": { + "type": "object" + }, + "jwks_uri": { + "type": "string" + }, + "logo_uri": { + "type": "string" + }, + "policy_uri": { + "type": "string" + }, + "redirect_uris": { + "type": "array", + "items": { + "type": "string" + } + }, + "registration_access_token": { + "type": "string" + }, + "registration_client_uri": { + "type": "string" + }, + "response_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string" + }, + "software_id": { + "type": "string" + }, + "software_version": { + "type": "string" + }, + "token_endpoint_auth_method": { + "type": "string" + }, + "tos_uri": { + "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" + }, + "default_provider_enable": { + "type": "boolean" + }, + "device_flow": { + "type": "boolean" + }, + "enterprise_base_url": { + "type": "string" + } + } + }, + "codersdk.OAuth2ProtectedResourceMetadata": { + "type": "object", + "properties": { + "authorization_servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "bearer_methods_supported": { + "type": "array", + "items": { + "type": "string" + } + }, + "resource": { + "type": "string" + }, + "scopes_supported": { + "type": "array", + "items": { + "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": { + "description": "IgnoreUserInfo \u0026 UserInfoFromAccessToken are mutually exclusive. Only 1\ncan be set to true. Ideally this would be an enum with 3 states, ['none',\n'userinfo', 'access_token']. However, for backward compatibility,\n`ignore_user_info` must remain. And `access_token` is a niche, non-spec\ncompliant edge case. So it's use is rare, and should not be advised.", + "type": "boolean" + }, + "issuer_url": { + "type": "string" + }, + "name_field": { + "type": "string" + }, + "organization_assign_default": { + "type": "boolean" + }, + "organization_field": { + "type": "string" + }, + "organization_mapping": { + "type": "object" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "sign_in_text": { + "type": "string" + }, + "signups_disabled_text": { + "type": "string" + }, + "skip_issuer_checks": { + "type": "boolean" + }, + "source_user_info_from_access_token": { + "description": "UserInfoFromAccessToken as mentioned above is an edge case. This allows\nsourcing the user_info from the access token itself instead of a user_info\nendpoint. This assumes the access token is a valid JWT with a set of claims to\nbe merged with the id_token.", + "type": "boolean" + }, + "user_role_field": { + "type": "string" + }, + "user_role_mapping": { + "type": "object" + }, + "user_roles_default": { + "type": "array", + "items": { + "type": "string" + } + }, + "username_field": { + "type": "string" + } + } + }, + "codersdk.OptionType": { + "type": "string", + "enum": [ + "string", + "number", + "bool", + "list(string)" + ], + "x-enum-varnames": [ + "OptionTypeString", + "OptionTypeNumber", + "OptionTypeBoolean", + "OptionTypeListString" + ] + }, + "codersdk.Organization": { + "type": "object", + "required": [ + "created_at", + "id", + "is_default", + "updated_at" + ], + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "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.SlimRole" + } + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "user_id": { + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.OrganizationMemberWithUserData": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string" + }, + "global_roles": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.SlimRole" + } + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.SlimRole" + } + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "user_id": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string" + } + } + }, + "codersdk.OrganizationSyncSettings": { + "type": "object", + "properties": { + "field": { + "description": "Field selects the claim field to be used as the created user's\norganizations. If the field is the empty string, then no organization\nupdates will ever come from the OIDC provider.", + "type": "string" + }, + "mapping": { + "description": "Mapping maps from an OIDC claim --\u003e Coder organization uuid", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "organization_assign_default": { + "description": "AssignDefault will ensure the default org is always included\nfor every user, regardless of their claims. This preserves legacy behavior.", + "type": "boolean" + } + } + }, + "codersdk.PaginatedMembersResponse": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.OrganizationMemberWithUserData" + } + } + } + }, + "codersdk.ParameterFormType": { + "type": "string", + "enum": [ + "", + "radio", + "slider", + "input", + "dropdown", + "checkbox", + "switch", + "multi-select", + "tag-select", + "textarea", + "error" + ], + "x-enum-varnames": [ + "ParameterFormTypeDefault", + "ParameterFormTypeRadio", + "ParameterFormTypeSlider", + "ParameterFormTypeInput", + "ParameterFormTypeDropdown", + "ParameterFormTypeCheckbox", + "ParameterFormTypeSwitch", + "ParameterFormTypeMultiSelect", + "ParameterFormTypeTagSelect", + "ParameterFormTypeTextArea", + "ParameterFormTypeError" + ] + }, + "codersdk.PatchGroupIDPSyncConfigRequest": { + "type": "object", + "properties": { + "auto_create_missing_groups": { + "type": "boolean" + }, + "field": { + "type": "string" + }, + "regex_filter": { + "$ref": "#/definitions/regexp.Regexp" + } + } + }, + "codersdk.PatchGroupIDPSyncMappingRequest": { + "type": "object", + "properties": { + "add": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "type": "string" + } + } + } + }, + "remove": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "type": "string" + } + } + } + } + } + }, + "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.PatchOrganizationIDPSyncConfigRequest": { + "type": "object", + "properties": { + "assign_default": { + "type": "boolean" + }, + "field": { + "type": "string" + } + } + }, + "codersdk.PatchOrganizationIDPSyncMappingRequest": { + "type": "object", + "properties": { + "add": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "type": "string" + } + } + } + }, + "remove": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "type": "string" + } + } + } + } + } + }, + "codersdk.PatchRoleIDPSyncConfigRequest": { + "type": "object", + "properties": { + "field": { + "type": "string" + } + } + }, + "codersdk.PatchRoleIDPSyncMappingRequest": { + "type": "object", + "properties": { + "add": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "type": "string" + } + } + } + }, + "remove": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "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.Permission": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/codersdk.RBACAction" + }, + "negate": { + "description": "Negate makes this a negative permission", + "type": "boolean" + }, + "resource_type": { + "$ref": "#/definitions/codersdk.RBACResource" + } + } + }, + "codersdk.PostOAuth2ProviderAppRequest": { + "type": "object", + "required": [ + "callback_url", + "name" + ], + "properties": { + "callback_url": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "codersdk.PostWorkspaceUsageRequest": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "format": "uuid" + }, + "app_name": { + "$ref": "#/definitions/codersdk.UsageAppName" + } + } + }, + "codersdk.PprofConfig": { + "type": "object", + "properties": { + "address": { + "$ref": "#/definitions/serpent.HostPort" + }, + "enable": { + "type": "boolean" + } + } + }, + "codersdk.PrebuildsConfig": { + "type": "object", + "properties": { + "failure_hard_limit": { + "description": "FailureHardLimit defines the maximum number of consecutive failed prebuild attempts allowed\nbefore a preset is considered to be in a hard limit state. When a preset hits this limit,\nno new prebuilds will be created until the limit is reset.\nFailureHardLimit is disabled when set to zero.", + "type": "integer" + }, + "reconciliation_backoff_interval": { + "description": "ReconciliationBackoffInterval specifies the amount of time to increase the backoff interval\nwhen errors occur during reconciliation.", + "type": "integer" + }, + "reconciliation_backoff_lookback": { + "description": "ReconciliationBackoffLookback determines the time window to look back when calculating\nthe number of failed prebuilds, which influences the backoff strategy.", + "type": "integer" + }, + "reconciliation_interval": { + "description": "ReconciliationInterval defines how often the workspace prebuilds state should be reconciled.", + "type": "integer" + } + } + }, + "codersdk.PrebuildsSettings": { + "type": "object", + "properties": { + "reconciliation_paused": { + "type": "boolean" + } + } + }, + "codersdk.Preset": { + "type": "object", + "properties": { + "default": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "desiredPrebuildInstances": { + "type": "integer" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.PresetParameter" + } + } + } + }, + "codersdk.PresetParameter": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "codersdk.PreviewParameter": { + "type": "object", + "properties": { + "default_value": { + "$ref": "#/definitions/codersdk.NullHCLString" + }, + "description": { + "type": "string" + }, + "diagnostics": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.FriendlyDiagnostic" + } + }, + "display_name": { + "type": "string" + }, + "ephemeral": { + "type": "boolean" + }, + "form_type": { + "$ref": "#/definitions/codersdk.ParameterFormType" + }, + "icon": { + "type": "string" + }, + "mutable": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.PreviewParameterOption" + } + }, + "order": { + "description": "legacy_variable_name was removed (= 14)", + "type": "integer" + }, + "required": { + "type": "boolean" + }, + "styling": { + "$ref": "#/definitions/codersdk.PreviewParameterStyling" + }, + "type": { + "$ref": "#/definitions/codersdk.OptionType" + }, + "validations": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.PreviewParameterValidation" + } + }, + "value": { + "$ref": "#/definitions/codersdk.NullHCLString" + } + } + }, + "codersdk.PreviewParameterOption": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/codersdk.NullHCLString" + } + } + }, + "codersdk.PreviewParameterStyling": { + "type": "object", + "properties": { + "disabled": { + "type": "boolean" + }, + "label": { + "type": "string" + }, + "mask_input": { + "type": "boolean" + }, + "placeholder": { + "type": "string" + } + } + }, + "codersdk.PreviewParameterValidation": { + "type": "object", + "properties": { + "validation_error": { + "type": "string" + }, + "validation_max": { + "type": "integer" + }, + "validation_min": { + "type": "integer" + }, + "validation_monotonic": { + "type": "string" + }, + "validation_regex": { + "description": "All validation attributes are optional.", + "type": "string" + } + } + }, + "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" + }, + "daemon_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "daemons": { + "description": "Daemons is the number of built-in terraform provisioners.", + "type": "integer" + }, + "force_cancel_interval": { + "type": "integer" + } + } + }, + "codersdk.ProvisionerDaemon": { + "type": "object", + "properties": { + "api_version": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "current_job": { + "$ref": "#/definitions/codersdk.ProvisionerDaemonJob" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "key_id": { + "type": "string", + "format": "uuid" + }, + "key_name": { + "description": "Optional fields.", + "type": "string" + }, + "last_seen_at": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "previous_job": { + "$ref": "#/definitions/codersdk.ProvisionerDaemonJob" + }, + "provisioners": { + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "enum": [ + "offline", + "idle", + "busy" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.ProvisionerDaemonStatus" + } + ] + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "version": { + "type": "string" + } + } + }, + "codersdk.ProvisionerDaemonJob": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "status": { + "enum": [ + "pending", + "running", + "succeeded", + "canceling", + "canceled", + "failed" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.ProvisionerJobStatus" + } + ] + }, + "template_display_name": { + "type": "string" + }, + "template_icon": { + "type": "string" + }, + "template_name": { + "type": "string" + } + } + }, + "codersdk.ProvisionerDaemonStatus": { + "type": "string", + "enum": [ + "offline", + "idle", + "busy" + ], + "x-enum-varnames": [ + "ProvisionerDaemonOffline", + "ProvisionerDaemonIdle", + "ProvisionerDaemonBusy" + ] + }, + "codersdk.ProvisionerJob": { + "type": "object", + "properties": { + "available_workers": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "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" + }, + "initiator_id": { + "type": "string", + "format": "uuid" + }, + "input": { + "$ref": "#/definitions/codersdk.ProvisionerJobInput" + }, + "logs_overflowed": { + "type": "boolean" + }, + "metadata": { + "$ref": "#/definitions/codersdk.ProvisionerJobMetadata" + }, + "organization_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" + } + }, + "type": { + "$ref": "#/definitions/codersdk.ProvisionerJobType" + }, + "worker_id": { + "type": "string", + "format": "uuid" + }, + "worker_name": { + "type": "string" + } + } + }, + "codersdk.ProvisionerJobInput": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "template_version_id": { + "type": "string", + "format": "uuid" + }, + "workspace_build_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.ProvisionerJobMetadata": { + "type": "object", + "properties": { + "template_display_name": { + "type": "string" + }, + "template_icon": { + "type": "string" + }, + "template_id": { + "type": "string", + "format": "uuid" + }, + "template_name": { + "type": "string" + }, + "template_version_name": { + "type": "string" + }, + "workspace_id": { + "type": "string", + "format": "uuid" + }, + "workspace_name": { + "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.ProvisionerJobType": { + "type": "string", + "enum": [ + "template_version_import", + "workspace_build", + "template_version_dry_run" + ], + "x-enum-varnames": [ + "ProvisionerJobTypeTemplateVersionImport", + "ProvisionerJobTypeWorkspaceBuild", + "ProvisionerJobTypeTemplateVersionDryRun" + ] + }, + "codersdk.ProvisionerKey": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "organization": { + "type": "string", + "format": "uuid" + }, + "tags": { + "$ref": "#/definitions/codersdk.ProvisionerKeyTags" + } + } + }, + "codersdk.ProvisionerKeyDaemons": { + "type": "object", + "properties": { + "daemons": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ProvisionerDaemon" + } + }, + "key": { + "$ref": "#/definitions/codersdk.ProvisionerKey" + } + } + }, + "codersdk.ProvisionerKeyTags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "codersdk.ProvisionerLogLevel": { + "type": "string", + "enum": [ + "debug" + ], + "x-enum-varnames": [ + "ProvisionerLogLevelDebug" + ] + }, + "codersdk.ProvisionerStorageMethod": { + "type": "string", + "enum": [ + "file" + ], + "x-enum-varnames": [ + "ProvisionerStorageMethodFile" + ] + }, + "codersdk.ProvisionerTiming": { + "type": "object", + "properties": { + "action": { + "type": "string" + }, + "ended_at": { + "type": "string", + "format": "date-time" + }, + "job_id": { + "type": "string", + "format": "uuid" + }, + "resource": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stage": { + "$ref": "#/definitions/codersdk.TimingStage" + }, + "started_at": { + "type": "string", + "format": "date-time" + } + } + }, + "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.RBACAction": { + "type": "string", + "enum": [ + "application_connect", + "assign", + "create", + "create_agent", + "delete", + "delete_agent", + "read", + "read_personal", + "ssh", + "share", + "unassign", + "update", + "update_personal", + "use", + "view_insights", + "start", + "stop" + ], + "x-enum-varnames": [ + "ActionApplicationConnect", + "ActionAssign", + "ActionCreate", + "ActionCreateAgent", + "ActionDelete", + "ActionDeleteAgent", + "ActionRead", + "ActionReadPersonal", + "ActionSSH", + "ActionShare", + "ActionUnassign", + "ActionUpdate", + "ActionUpdatePersonal", + "ActionUse", + "ActionViewInsights", + "ActionWorkspaceStart", + "ActionWorkspaceStop" + ] + }, + "codersdk.RBACResource": { + "type": "string", + "enum": [ + "*", + "aibridge_interception", + "api_key", + "assign_org_role", + "assign_role", + "audit_log", + "connection_log", + "crypto_key", + "debug_info", + "deployment_config", + "deployment_stats", + "file", + "group", + "group_member", + "idpsync_settings", + "inbox_notification", + "license", + "notification_message", + "notification_preference", + "notification_template", + "oauth2_app", + "oauth2_app_code_token", + "oauth2_app_secret", + "organization", + "organization_member", + "prebuilt_workspace", + "provisioner_daemon", + "provisioner_jobs", + "replicas", + "system", + "tailnet_coordinator", + "task", + "template", + "usage_event", + "user", + "user_secret", + "webpush_subscription", + "workspace", + "workspace_agent_devcontainers", + "workspace_agent_resource_monitor", + "workspace_dormant", + "workspace_proxy" + ], + "x-enum-varnames": [ + "ResourceWildcard", + "ResourceAibridgeInterception", + "ResourceApiKey", + "ResourceAssignOrgRole", + "ResourceAssignRole", + "ResourceAuditLog", + "ResourceConnectionLog", + "ResourceCryptoKey", + "ResourceDebugInfo", + "ResourceDeploymentConfig", + "ResourceDeploymentStats", + "ResourceFile", + "ResourceGroup", + "ResourceGroupMember", + "ResourceIdpsyncSettings", + "ResourceInboxNotification", + "ResourceLicense", + "ResourceNotificationMessage", + "ResourceNotificationPreference", + "ResourceNotificationTemplate", + "ResourceOauth2App", + "ResourceOauth2AppCodeToken", + "ResourceOauth2AppSecret", + "ResourceOrganization", + "ResourceOrganizationMember", + "ResourcePrebuiltWorkspace", + "ResourceProvisionerDaemon", + "ResourceProvisionerJobs", + "ResourceReplicas", + "ResourceSystem", + "ResourceTailnetCoordinator", + "ResourceTask", + "ResourceTemplate", + "ResourceUsageEvent", + "ResourceUser", + "ResourceUserSecret", + "ResourceWebpushSubscription", + "ResourceWorkspace", + "ResourceWorkspaceAgentDevcontainers", + "ResourceWorkspaceAgentResourceMonitor", + "ResourceWorkspaceDormant", + "ResourceWorkspaceProxy" + ] + }, + "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": { + "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "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.RequestOneTimePasscodeRequest": { + "type": "object", + "required": [ + "email" + ], + "properties": { + "email": { + "type": "string", + "format": "email" + } + } + }, + "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", + "notifications_settings", + "prebuilds_settings", + "workspace_proxy", + "organization", + "oauth2_provider_app", + "oauth2_provider_app_secret", + "custom_role", + "organization_member", + "notification_template", + "idp_sync_settings_organization", + "idp_sync_settings_group", + "idp_sync_settings_role", + "workspace_agent", + "workspace_app", + "task" + ], + "x-enum-varnames": [ + "ResourceTypeTemplate", + "ResourceTypeTemplateVersion", + "ResourceTypeUser", + "ResourceTypeWorkspace", + "ResourceTypeWorkspaceBuild", + "ResourceTypeGitSSHKey", + "ResourceTypeAPIKey", + "ResourceTypeGroup", + "ResourceTypeLicense", + "ResourceTypeConvertLogin", + "ResourceTypeHealthSettings", + "ResourceTypeNotificationsSettings", + "ResourceTypePrebuildsSettings", + "ResourceTypeWorkspaceProxy", + "ResourceTypeOrganization", + "ResourceTypeOAuth2ProviderApp", + "ResourceTypeOAuth2ProviderAppSecret", + "ResourceTypeCustomRole", + "ResourceTypeOrganizationMember", + "ResourceTypeNotificationTemplate", + "ResourceTypeIdpSyncSettingsOrganization", + "ResourceTypeIdpSyncSettingsGroup", + "ResourceTypeIdpSyncSettingsRole", + "ResourceTypeWorkspaceAgent", + "ResourceTypeWorkspaceApp", + "ResourceTypeTask" + ] + }, + "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.RetentionConfig": { + "type": "object", + "properties": { + "api_keys": { + "description": "APIKeys controls how long expired API keys are retained before being deleted.\nKeys are only deleted if they have been expired for at least this duration.\nDefaults to 7 days to preserve existing behavior.", + "type": "integer" + }, + "audit_logs": { + "description": "AuditLogs controls how long audit log entries are retained.\nSet to 0 to disable (keep indefinitely).", + "type": "integer" + }, + "connection_logs": { + "description": "ConnectionLogs controls how long connection log entries are retained.\nSet to 0 to disable (keep indefinitely).", + "type": "integer" + }, + "workspace_agent_logs": { + "description": "WorkspaceAgentLogs controls how long workspace agent logs are retained.\nLogs are deleted if the agent hasn't connected within this period.\nLogs from the latest build are always retained regardless of age.\nDefaults to 7 days to preserve existing behavior.", + "type": "integer" + } + } + }, + "codersdk.Role": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_member_permissions": { + "description": "OrganizationMemberPermissions are specific for the organization in the field 'OrganizationID' above.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "organization_permissions": { + "description": "OrganizationPermissions are specific for the organization in the field 'OrganizationID' above.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "site_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "user_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + } + } + }, + "codersdk.RoleSyncSettings": { + "type": "object", + "properties": { + "field": { + "description": "Field is the name of the claim field that specifies what organization roles\na user should be given. If empty, no roles will be synced.", + "type": "string" + }, + "mapping": { + "description": "Mapping is a map from OIDC groups to Coder organization roles.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "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": { + "description": "HostnamePrefix is the prefix we append to workspace names for SSH hostnames.\nDeprecated: use HostnameSuffix instead.", + "type": "string" + }, + "hostname_suffix": { + "description": "HostnameSuffix is the suffix to append to workspace names for SSH hostnames.", + "type": "string" + }, + "ssh_config_options": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "codersdk.ServerSentEvent": { + "type": "object", + "properties": { + "data": {}, + "type": { + "$ref": "#/definitions/codersdk.ServerSentEventType" + } + } + }, + "codersdk.ServerSentEventType": { + "type": "string", + "enum": [ + "ping", + "data", + "error" + ], + "x-enum-varnames": [ + "ServerSentEventTypePing", + "ServerSentEventTypeData", + "ServerSentEventTypeError" + ] + }, + "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 only for browser, workspace app and oauth sessions.", + "type": "integer" + }, + "default_token_lifetime": { + "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_admin_token_lifetime": { + "type": "integer" + }, + "max_token_lifetime": { + "type": "integer" + }, + "refresh_default_duration": { + "description": "RefreshDefaultDuration is the default lifetime for OAuth2 refresh tokens.\nThis should generally be longer than access token lifetimes to allow\nrefreshing after access token expiry.", + "type": "integer" + } + } + }, + "codersdk.SlimRole": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string" + } + } + }, + "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.Task": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "current_state": { + "$ref": "#/definitions/codersdk.TaskStateEntry" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "initial_prompt": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "owner_avatar_url": { + "type": "string" + }, + "owner_id": { + "type": "string", + "format": "uuid" + }, + "owner_name": { + "type": "string" + }, + "status": { + "enum": [ + "pending", + "initializing", + "active", + "paused", + "unknown", + "error" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.TaskStatus" + } + ] + }, + "template_display_name": { + "type": "string" + }, + "template_icon": { + "type": "string" + }, + "template_id": { + "type": "string", + "format": "uuid" + }, + "template_name": { + "type": "string" + }, + "template_version_id": { + "type": "string", + "format": "uuid" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "workspace_agent_health": { + "$ref": "#/definitions/codersdk.WorkspaceAgentHealth" + }, + "workspace_agent_id": { + "format": "uuid", + "allOf": [ + { + "$ref": "#/definitions/uuid.NullUUID" + } + ] + }, + "workspace_agent_lifecycle": { + "$ref": "#/definitions/codersdk.WorkspaceAgentLifecycle" + }, + "workspace_app_id": { + "format": "uuid", + "allOf": [ + { + "$ref": "#/definitions/uuid.NullUUID" + } + ] + }, + "workspace_build_number": { + "type": "integer" + }, + "workspace_id": { + "format": "uuid", + "allOf": [ + { + "$ref": "#/definitions/uuid.NullUUID" + } + ] + }, + "workspace_name": { + "type": "string" + }, + "workspace_status": { + "enum": [ + "pending", + "starting", + "running", + "stopping", + "stopped", + "failed", + "canceling", + "canceled", + "deleting", + "deleted" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceStatus" + } + ] + } + } + }, + "codersdk.TaskLogEntry": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "type": { + "$ref": "#/definitions/codersdk.TaskLogType" + } + } + }, + "codersdk.TaskLogType": { + "type": "string", + "enum": [ + "input", + "output" + ], + "x-enum-varnames": [ + "TaskLogTypeInput", + "TaskLogTypeOutput" + ] + }, + "codersdk.TaskLogsResponse": { + "type": "object", + "properties": { + "logs": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.TaskLogEntry" + } + } + } + }, + "codersdk.TaskSendRequest": { + "type": "object", + "properties": { + "input": { + "type": "string" + } + } + }, + "codersdk.TaskState": { + "type": "string", + "enum": [ + "working", + "idle", + "complete", + "failed" + ], + "x-enum-varnames": [ + "TaskStateWorking", + "TaskStateIdle", + "TaskStateComplete", + "TaskStateFailed" + ] + }, + "codersdk.TaskStateEntry": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "state": { + "$ref": "#/definitions/codersdk.TaskState" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "uri": { + "type": "string" + } + } + }, + "codersdk.TaskStatus": { + "type": "string", + "enum": [ + "pending", + "initializing", + "active", + "paused", + "unknown", + "error" + ], + "x-enum-varnames": [ + "TaskStatusPending", + "TaskStatusInitializing", + "TaskStatusActive", + "TaskStatusPaused", + "TaskStatusUnknown", + "TaskStatusError" + ] + }, + "codersdk.TasksListResponse": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "tasks": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Task" + } + } + } + }, + "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" + }, + "cors_behavior": { + "$ref": "#/definitions/codersdk.CORSBehavior" + }, + "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_display_name": { + "type": "string" + }, + "organization_icon": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_name": { + "type": "string", + "format": "url" + }, + "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" + }, + "use_classic_parameter_flow": { + "type": "boolean" + }, + "use_terraform_workspace_cache": { + "type": "boolean" + } + } + }, + "codersdk.TemplateACL": { + "type": "object", + "properties": { + "group": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.TemplateGroup" + } + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.TemplateUser" + } + } + } + }, + "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" + } + }, + "times_used": { + "type": "integer", + "example": 2 + }, + "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.TemplateGroup": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ReducedUser" + } + }, + "name": { + "type": "string" + }, + "organization_display_name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_name": { + "type": "string" + }, + "quota_allowance": { + "type": "integer" + }, + "role": { + "enum": [ + "admin", + "use" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.TemplateRole" + } + ] + }, + "source": { + "$ref": "#/definitions/codersdk.GroupSource" + }, + "total_member_count": { + "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", + "type": "integer" + } + } + }, + "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.SlimRole" + } + }, + "status": { + "enum": [ + "active", + "suspended" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.UserStatus" + } + ] + }, + "theme_preference": { + "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + } + }, + "codersdk.TemplateVersion": { + "type": "object", + "properties": { + "archived": { + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "created_by": { + "$ref": "#/definitions/codersdk.MinimalUser" + }, + "has_external_agent": { + "type": "boolean" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "job": { + "$ref": "#/definitions/codersdk.ProvisionerJob" + }, + "matched_provisioners": { + "$ref": "#/definitions/codersdk.MatchedProvisioners" + }, + "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" + }, + "form_type": { + "description": "FormType has an enum value of empty string, `\"\"`.\nKeep the leading comma in the enums struct tag.", + "type": "string", + "enum": [ + "", + "radio", + "dropdown", + "input", + "textarea", + "slider", + "checkbox", + "switch", + "tag-select", + "multi-select", + "error" + ] + }, + "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.TerminalFontName": { + "type": "string", + "enum": [ + "", + "ibm-plex-mono", + "fira-code", + "source-code-pro", + "jetbrains-mono" + ], + "x-enum-varnames": [ + "TerminalFontUnknown", + "TerminalFontIBMPlexMono", + "TerminalFontFiraCode", + "TerminalFontSourceCodePro", + "TerminalFontJetBrainsMono" + ] + }, + "codersdk.TimingStage": { + "type": "string", + "enum": [ + "init", + "plan", + "graph", + "apply", + "start", + "stop", + "cron", + "connect" + ], + "x-enum-varnames": [ + "TimingStageInit", + "TimingStagePlan", + "TimingStageGraph", + "TimingStageApply", + "TimingStageStart", + "TimingStageStop", + "TimingStageCron", + "TimingStageConnect" + ] + }, + "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": { + "announcement_banners": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.BannerConfig" + } + }, + "application_name": { + "type": "string" + }, + "logo_url": { + "type": "string" + }, + "service_banner": { + "description": "Deprecated: ServiceBanner has been replaced by AnnouncementBanners.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.BannerConfig" + } + ] + } + } + }, + "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.UpdateOrganizationRequest": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "codersdk.UpdateRoles": { + "type": "object", + "properties": { + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "codersdk.UpdateTaskInputRequest": { + "type": "object", + "properties": { + "input": { + "type": "string" + } + } + }, + "codersdk.UpdateTemplateACL": { + "type": "object", + "properties": { + "group_perms": { + "description": "GroupPerms is a mapping from valid group UUIDs to the template role they\nshould be granted. To remove a group from the template, use \"\" as the role\n(available as a constant named codersdk.TemplateRoleDeleted)", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/codersdk.TemplateRole" + }, + "example": { + "8bd26b20-f3e8-48be-a903-46bb920cf671": "use", + "\u003cgroup_id\u003e": "admin" + } + }, + "user_perms": { + "description": "UserPerms is a mapping from valid user UUIDs to the template role they\nshould be granted. To remove a user from the template, use \"\" as the role\n(available as a constant named codersdk.TemplateRoleDeleted)", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/codersdk.TemplateRole" + }, + "example": { + "4df59e74-c027-470b-ab4d-cbba8963a5e9": "use", + "\u003cuser_id\u003e": "admin" + } + } + } + }, + "codersdk.UpdateTemplateMeta": { + "type": "object", + "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": { + "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 can only be set if your license\nincludes the advanced template scheduling feature. If you attempt to set this\nvalue while unlicensed, it will be ignored.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.TemplateAutostopRequirement" + } + ] + }, + "cors_behavior": { + "$ref": "#/definitions/codersdk.CORSBehavior" + }, + "default_ttl_ms": { + "type": "integer" + }, + "deprecation_message": { + "description": "DeprecationMessage if set, will mark the template as deprecated and block\nany new workspaces from using this template.\nIf passed an empty string, will remove the deprecated message, making\nthe template usable for new workspaces again.", + "type": "string" + }, + "description": { + "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": { + "type": "string" + }, + "failure_ttl_ms": { + "type": "integer" + }, + "icon": { + "type": "string" + }, + "max_port_share_level": { + "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" + }, + "name": { + "type": "string" + }, + "require_active_version": { + "description": "RequireActiveVersion mandates workspaces built using this template\nuse the active version of the template. This option has no\neffect on template admins.", + "type": "boolean" + }, + "time_til_dormant_autodelete_ms": { + "type": "integer" + }, + "time_til_dormant_ms": { + "type": "integer" + }, + "update_workspace_dormant_at": { + "description": "UpdateWorkspaceDormant updates the dormant_at field of workspaces spawned\nfrom the template. This is useful for preventing dormant workspaces being immediately\ndeleted when updating the dormant_ttl field to a new, shorter value.", + "type": "boolean" + }, + "update_workspace_last_used_at": { + "description": "UpdateWorkspaceLastUsedAt updates the last_used_at field of workspaces\nspawned from the template. This is useful for preventing workspaces being\nimmediately locked when updating the inactivity_ttl field to a new, shorter\nvalue.", + "type": "boolean" + }, + "use_classic_parameter_flow": { + "description": "UseClassicParameterFlow is a flag that switches the default behavior to use the classic\nparameter flow when creating a workspace. This only affects deployments with the experiment\n\"dynamic-parameters\" enabled. This setting will live for a period after the experiment is\nmade the default.\nAn \"opt-out\" is present in case the new feature breaks some existing templates.", + "type": "boolean" + }, + "use_terraform_workspace_cache": { + "description": "UseTerraformWorkspaceCache allows optionally specifying whether to use cached\nterraform directories for workspaces created from this template. This field\nonly applies when the correct experiment is enabled. This field is subject to\nbeing removed in the future.", + "type": "boolean" + } + } + }, + "codersdk.UpdateUserAppearanceSettingsRequest": { + "type": "object", + "required": [ + "terminal_font", + "theme_preference" + ], + "properties": { + "terminal_font": { + "$ref": "#/definitions/codersdk.TerminalFontName" + }, + "theme_preference": { + "type": "string" + } + } + }, + "codersdk.UpdateUserNotificationPreferences": { + "type": "object", + "properties": { + "template_disabled_map": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + } + }, + "codersdk.UpdateUserPasswordRequest": { + "type": "object", + "required": [ + "password" + ], + "properties": { + "old_password": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "codersdk.UpdateUserPreferenceSettingsRequest": { + "type": "object", + "properties": { + "task_notification_alert_dismissed": { + "type": "boolean" + } + } + }, + "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.UpdateWorkspaceACL": { + "type": "object", + "properties": { + "group_roles": { + "description": "GroupRoles is a mapping from valid group UUIDs to the workspace role they\nshould be granted. To remove a group from the workspace, use \"\" as the role\n(available as a constant named codersdk.WorkspaceRoleDeleted)", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/codersdk.WorkspaceRole" + } + }, + "user_roles": { + "description": "UserRoles is a mapping from valid user UUIDs to the workspace role they\nshould be granted. To remove a user from the workspace, use \"\" as the role\n(available as a constant named codersdk.WorkspaceRoleDeleted)", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/codersdk.WorkspaceRole" + } + } + } + }, + "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", + "organization", + "public" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" + } + ] + } + } + }, + "codersdk.UsageAppName": { + "type": "string", + "enum": [ + "vscode", + "jetbrains", + "reconnecting-pty", + "ssh" + ], + "x-enum-varnames": [ + "UsageAppNameVscode", + "UsageAppNameJetbrains", + "UsageAppNameReconnectingPty", + "UsageAppNameSSH" + ] + }, + "codersdk.UsagePeriod": { + "type": "object", + "properties": { + "end": { + "type": "string", + "format": "date-time" + }, + "issued_at": { + "type": "string", + "format": "date-time" + }, + "start": { + "type": "string", + "format": "date-time" + } + } + }, + "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.SlimRole" + } + }, + "status": { + "enum": [ + "active", + "suspended" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.UserStatus" + } + ] + }, + "theme_preference": { + "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "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.UserAppearanceSettings": { + "type": "object", + "properties": { + "terminal_font": { + "$ref": "#/definitions/codersdk.TerminalFontName" + }, + "theme_preference": { + "type": "string" + } + } + }, + "codersdk.UserLatency": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "latency_ms": { + "$ref": "#/definitions/codersdk.ConnectionLatency" + }, + "template_ids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "user_id": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string" + } + } + }, + "codersdk.UserLatencyInsightsReport": { + "type": "object", + "properties": { + "end_time": { + "type": "string", + "format": "date-time" + }, + "start_time": { + "type": "string", + "format": "date-time" + }, + "template_ids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.UserLatency" + } + } + } + }, + "codersdk.UserLatencyInsightsResponse": { + "type": "object", + "properties": { + "report": { + "$ref": "#/definitions/codersdk.UserLatencyInsightsReport" + } + } + }, + "codersdk.UserLoginType": { + "type": "object", + "properties": { + "login_type": { + "$ref": "#/definitions/codersdk.LoginType" + } + } + }, + "codersdk.UserParameter": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "codersdk.UserPreferenceSettings": { + "type": "object", + "properties": { + "task_notification_alert_dismissed": { + "type": "boolean" + } + } + }, + "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.UserStatusChangeCount": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 10 + }, + "date": { + "type": "string", + "format": "date-time" + } + } + }, + "codersdk.ValidateUserPasswordRequest": { + "type": "object", + "required": [ + "password" + ], + "properties": { + "password": { + "type": "string" + } + } + }, + "codersdk.ValidateUserPasswordResponse": { + "type": "object", + "properties": { + "details": { + "type": "string" + }, + "valid": { + "type": "boolean" + } + } + }, + "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.WebpushSubscription": { + "type": "object", + "properties": { + "auth_key": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "p256dh_key": { + "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" + }, + "is_prebuild": { + "description": "IsPrebuild indicates whether the workspace is a prebuilt workspace.\nPrebuilt workspaces are owned by the prebuilds system user and have specific behavior,\nsuch as being managed differently from regular workspaces.\nOnce a prebuilt workspace is claimed by a user, it transitions to a regular workspace,\nand IsPrebuild returns false.", + "type": "boolean" + }, + "last_used_at": { + "type": "string", + "format": "date-time" + }, + "latest_app_status": { + "$ref": "#/definitions/codersdk.WorkspaceAppStatus" + }, + "latest_build": { + "$ref": "#/definitions/codersdk.WorkspaceBuild" + }, + "name": { + "type": "string" + }, + "next_start_at": { + "type": "string", + "format": "date-time" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_name": { + "type": "string" + }, + "outdated": { + "type": "boolean" + }, + "owner_avatar_url": { + "type": "string" + }, + "owner_id": { + "type": "string", + "format": "uuid" + }, + "owner_name": { + "description": "OwnerName is the username of the owner of the workspace.", + "type": "string" + }, + "task_id": { + "description": "TaskID, if set, indicates that the workspace is relevant to the given codersdk.Task.", + "allOf": [ + { + "$ref": "#/definitions/uuid.NullUUID" + } + ] + }, + "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" + }, + "template_use_classic_parameter_flow": { + "type": "boolean" + }, + "ttl_ms": { + "type": "integer" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + } + }, + "codersdk.WorkspaceACL": { + "type": "object", + "properties": { + "group": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceGroup" + } + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceUser" + } + } + } + }, + "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" + }, + "parent_id": { + "format": "uuid", + "allOf": [ + { + "$ref": "#/definitions/uuid.NullUUID" + } + ] + }, + "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.WorkspaceAgentContainer": { + "type": "object", + "properties": { + "created_at": { + "description": "CreatedAt is the time the container was created.", + "type": "string", + "format": "date-time" + }, + "id": { + "description": "ID is the unique identifier of the container.", + "type": "string" + }, + "image": { + "description": "Image is the name of the container image.", + "type": "string" + }, + "labels": { + "description": "Labels is a map of key-value pairs of container labels.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "name": { + "description": "FriendlyName is the human-readable name of the container.", + "type": "string" + }, + "ports": { + "description": "Ports includes ports exposed by the container.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceAgentContainerPort" + } + }, + "running": { + "description": "Running is true if the container is currently running.", + "type": "boolean" + }, + "status": { + "description": "Status is the current status of the container. This is somewhat\nimplementation-dependent, but should generally be a human-readable\nstring.", + "type": "string" + }, + "volumes": { + "description": "Volumes is a map of \"things\" mounted into the container. Again, this\nis somewhat implementation-dependent.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "codersdk.WorkspaceAgentContainerPort": { + "type": "object", + "properties": { + "host_ip": { + "description": "HostIP is the IP address of the host interface to which the port is\nbound. Note that this can be an IPv4 or IPv6 address.", + "type": "string" + }, + "host_port": { + "description": "HostPort is the port number *outside* the container.", + "type": "integer" + }, + "network": { + "description": "Network is the network protocol used by the port (tcp, udp, etc).", + "type": "string" + }, + "port": { + "description": "Port is the port number *inside* the container.", + "type": "integer" + } + } + }, + "codersdk.WorkspaceAgentDevcontainer": { + "type": "object", + "properties": { + "agent": { + "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainerAgent" + }, + "config_path": { + "type": "string" + }, + "container": { + "$ref": "#/definitions/codersdk.WorkspaceAgentContainer" + }, + "dirty": { + "type": "boolean" + }, + "error": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "status": { + "description": "Additional runtime fields.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainerStatus" + } + ] + }, + "workspace_folder": { + "type": "string" + } + } + }, + "codersdk.WorkspaceAgentDevcontainerAgent": { + "type": "object", + "properties": { + "directory": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + } + }, + "codersdk.WorkspaceAgentDevcontainerStatus": { + "type": "string", + "enum": [ + "running", + "stopped", + "starting", + "error" + ], + "x-enum-varnames": [ + "WorkspaceAgentDevcontainerStatusRunning", + "WorkspaceAgentDevcontainerStatusStopped", + "WorkspaceAgentDevcontainerStatusStarting", + "WorkspaceAgentDevcontainerStatusError" + ] + }, + "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.WorkspaceAgentListContainersResponse": { + "type": "object", + "properties": { + "containers": { + "description": "Containers is a list of containers visible to the workspace agent.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceAgentContainer" + } + }, + "devcontainers": { + "description": "Devcontainers is a list of devcontainers visible to the workspace agent.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainer" + } + }, + "warnings": { + "description": "Warnings is a list of warnings that may have occurred during the\nprocess of listing containers. This should not include fatal errors.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "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.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", + "organization", + "public" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" + } + ] + }, + "workspace_id": { + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.WorkspaceAgentPortShareLevel": { + "type": "string", + "enum": [ + "owner", + "authenticated", + "organization", + "public" + ], + "x-enum-varnames": [ + "WorkspaceAgentPortShareLevelOwner", + "WorkspaceAgentPortShareLevelAuthenticated", + "WorkspaceAgentPortShareLevelOrganization", + "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" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "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" + }, + "group": { + "type": "string" + }, + "health": { + "$ref": "#/definitions/codersdk.WorkspaceAppHealth" + }, + "healthcheck": { + "description": "Healthcheck specifies the configuration for checking app health.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.Healthcheck" + } + ] + }, + "hidden": { + "type": "boolean" + }, + "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" + }, + "open_in": { + "$ref": "#/definitions/codersdk.WorkspaceAppOpenIn" + }, + "sharing_level": { + "enum": [ + "owner", + "authenticated", + "organization", + "public" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceAppSharingLevel" + } + ] + }, + "slug": { + "description": "Slug is a unique identifier within the agent.", + "type": "string" + }, + "statuses": { + "description": "Statuses is a list of statuses for the app.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceAppStatus" + } + }, + "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" + }, + "tooltip": { + "description": "Tooltip is an optional markdown supported field that is displayed\nwhen hovering over workspace apps in the UI.", + "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.WorkspaceAppOpenIn": { + "type": "string", + "enum": [ + "slim-window", + "tab" + ], + "x-enum-varnames": [ + "WorkspaceAppOpenInSlimWindow", + "WorkspaceAppOpenInTab" + ] + }, + "codersdk.WorkspaceAppSharingLevel": { + "type": "string", + "enum": [ + "owner", + "authenticated", + "organization", + "public" + ], + "x-enum-varnames": [ + "WorkspaceAppSharingLevelOwner", + "WorkspaceAppSharingLevelAuthenticated", + "WorkspaceAppSharingLevelOrganization", + "WorkspaceAppSharingLevelPublic" + ] + }, + "codersdk.WorkspaceAppStatus": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "format": "uuid" + }, + "app_id": { + "type": "string", + "format": "uuid" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "icon": { + "description": "Deprecated: This field is unused and will be removed in a future version.\nIcon is an external URL to an icon that will be rendered in the UI.", + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "message": { + "type": "string" + }, + "needs_user_attention": { + "description": "Deprecated: This field is unused and will be removed in a future version.\nNeedsUserAttention specifies whether the status needs user attention.", + "type": "boolean" + }, + "state": { + "$ref": "#/definitions/codersdk.WorkspaceAppStatusState" + }, + "uri": { + "description": "URI is the URI of the resource that the status is for.\ne.g. https://github.com/org/repo/pull/123\ne.g. file:///path/to/file", + "type": "string" + }, + "workspace_id": { + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.WorkspaceAppStatusState": { + "type": "string", + "enum": [ + "working", + "idle", + "complete", + "failure" + ], + "x-enum-varnames": [ + "WorkspaceAppStatusStateWorking", + "WorkspaceAppStatusStateIdle", + "WorkspaceAppStatusStateComplete", + "WorkspaceAppStatusStateFailure" + ] + }, + "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" + }, + "has_ai_task": { + "description": "Deprecated: This field has been deprecated in favor of Task WorkspaceID.", + "type": "boolean" + }, + "has_external_agent": { + "type": "boolean" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "initiator_id": { + "type": "string", + "format": "uuid" + }, + "initiator_name": { + "type": "string" + }, + "job": { + "$ref": "#/definitions/codersdk.ProvisionerJob" + }, + "matched_provisioners": { + "$ref": "#/definitions/codersdk.MatchedProvisioners" + }, + "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" + }, + "template_version_preset_id": { + "type": "string", + "format": "uuid" + }, + "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": { + "description": "WorkspaceOwnerName is the username of the owner of the workspace.", + "type": "string" + } + } + }, + "codersdk.WorkspaceBuildParameter": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "codersdk.WorkspaceBuildTimings": { + "type": "object", + "properties": { + "agent_connection_timings": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AgentConnectionTiming" + } + }, + "agent_script_timings": { + "description": "TODO: Consolidate agent-related timing metrics into a single struct when\nupdating the API version", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AgentScriptTiming" + } + }, + "provisioner_timings": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ProvisionerTiming" + } + } + } + }, + "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.WorkspaceGroup": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ReducedUser" + } + }, + "name": { + "type": "string" + }, + "organization_display_name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_name": { + "type": "string" + }, + "quota_allowance": { + "type": "integer" + }, + "role": { + "enum": [ + "admin", + "use" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceRole" + } + ] + }, + "source": { + "$ref": "#/definitions/codersdk.GroupSource" + }, + "total_member_count": { + "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", + "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.WorkspaceRole": { + "type": "string", + "enum": [ + "admin", + "use", + "" + ], + "x-enum-varnames": [ + "WorkspaceRoleAdmin", + "WorkspaceRoleUse", + "WorkspaceRoleDeleted" + ] + }, + "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.WorkspaceUser": { + "type": "object", + "required": [ + "id", + "username" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "admin", + "use" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceRole" + } + ] + }, + "username": { + "type": "string" + } + } + }, + "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" + }, + "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" + }, + "expires_in": { + "description": "ExpiresIn is the OAuth2 wire format \"expires_in\" field,\nwhich specifies how many seconds later the token expires,\nrelative to an unknown time base approximately around \"now\".\nIt is the application's responsibility to populate\n`Expiry` from `ExpiresIn` when required.", + "type": "integer" + }, + "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" + } + } + }, + "regexp.Regexp": { + "type": "object" + }, + "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 (see Hostname and Port methods)", + "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" + }, + "uuid.NullUUID": { + "type": "object", + "properties": { + "uuid": { + "type": "string" + }, + "valid": { + "description": "Valid is true if UUID is not NULL", + "type": "boolean" + } + } + }, + "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" + }, + "hostname_suffix": { + "type": "string" + } + } + }, + "wsproxysdk.CryptoKeysResponse": { + "type": "object", + "properties": { + "crypto_keys": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.CryptoKey" + } + } + } + }, + "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": { + "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": { + "Authorization": { + "type": "apiKey", + "name": "Authorizaiton", + "in": "header" + }, + "CoderSessionToken": { + "type": "apiKey", + "name": "Coder-Session-Token", + "in": "header" + } + } +} \ No newline at end of file diff --git a/docs/reference/api/aibridge.md b/docs/reference/api/aibridge.md index 9969a51d4adc7..e0b0187885e2b 100644 --- a/docs/reference/api/aibridge.md +++ b/docs/reference/api/aibridge.md @@ -103,3 +103,36 @@ curl -X GET http://coder-server:8080/api/v2/aibridge/interceptions \ | 200 | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1) | OK | [codersdk.AIBridgeListInterceptionsResponse](schemas.md#codersdkaibridgelistinterceptionsresponse) | To perform this operation, you must be authenticated. [Learn more](authentication.md). + +## List AI Bridge models + +### Code samples + +```shell +# Example request using curl +curl -X GET http://coder-server:8080/api/v2/aibridge/models \ + -H 'Accept: application/json' \ + -H 'Coder-Session-Token: API_KEY' +``` + +`GET /aibridge/models` + +### Example responses + +> 200 Response + +```json +[ + "string" +] +``` + +### Responses + +| Status | Meaning | Description | Schema | +|--------|---------------------------------------------------------|-------------|-----------------| +| 200 | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1) | OK | array of string | + +

Response Schema

+ +To perform this operation, you must be authenticated. [Learn more](authentication.md). From 0d13fe93e739e6dff1df353cff0b65bba955a485 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Sat, 13 Dec 2025 14:50:57 +0000 Subject: [PATCH 05/22] fix: resolve `dbmock.go` --- coderd/database/dbmock/dbmock.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/coderd/database/dbmock/dbmock.go b/coderd/database/dbmock/dbmock.go index c462b0257c4f7..a675d00b82ca5 100644 --- a/coderd/database/dbmock/dbmock.go +++ b/coderd/database/dbmock/dbmock.go @@ -6087,18 +6087,18 @@ func (mr *MockStoreMockRecorder) ListAuthorizedAIBridgeInterceptions(ctx, arg, p } // ListAuthorizedAIBridgeModels mocks base method. -func (m *MockStore) ListAuthorizedAIBridgeModels(ctx context.Context, prepared rbac.PreparedAuthorized) ([]string, error) { +func (m *MockStore) ListAuthorizedAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams, prepared rbac.PreparedAuthorized) ([]string, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAuthorizedAIBridgeModels", ctx, prepared) + ret := m.ctrl.Call(m, "ListAuthorizedAIBridgeModels", ctx, arg, prepared) ret0, _ := ret[0].([]string) ret1, _ := ret[1].(error) return ret0, ret1 } // ListAuthorizedAIBridgeModels indicates an expected call of ListAuthorizedAIBridgeModels. -func (mr *MockStoreMockRecorder) ListAuthorizedAIBridgeModels(ctx, prepared any) *gomock.Call { +func (mr *MockStoreMockRecorder) ListAuthorizedAIBridgeModels(ctx, arg, prepared any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAuthorizedAIBridgeModels", reflect.TypeOf((*MockStore)(nil).ListAuthorizedAIBridgeModels), ctx, prepared) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAuthorizedAIBridgeModels", reflect.TypeOf((*MockStore)(nil).ListAuthorizedAIBridgeModels), ctx, arg, prepared) } // ListProvisionerKeysByOrganization mocks base method. From d6ead777d4009a36e2f242e04189a934e9b6021b Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Sat, 13 Dec 2025 14:53:45 +0000 Subject: [PATCH 06/22] chore: regenerate `dbmock.go` --- dbmock.go | 8097 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 8097 insertions(+) create mode 100644 dbmock.go diff --git a/dbmock.go b/dbmock.go new file mode 100644 index 0000000000000..a675d00b82ca5 --- /dev/null +++ b/dbmock.go @@ -0,0 +1,8097 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: github.com/coder/coder/v2/coderd/database (interfaces: Store) +// +// Generated by this command: +// +// mockgen -destination ./dbmock.go -package dbmock github.com/coder/coder/v2/coderd/database Store +// + +// Package dbmock is a generated GoMock package. +package dbmock + +import ( + context "context" + reflect "reflect" + time "time" + + database "github.com/coder/coder/v2/coderd/database" + rbac "github.com/coder/coder/v2/coderd/rbac" + uuid "github.com/google/uuid" + gomock "go.uber.org/mock/gomock" +) + +// MockStore is a mock of Store interface. +type MockStore struct { + ctrl *gomock.Controller + recorder *MockStoreMockRecorder + isgomock struct{} +} + +// MockStoreMockRecorder is the mock recorder for MockStore. +type MockStoreMockRecorder struct { + mock *MockStore +} + +// NewMockStore creates a new mock instance. +func NewMockStore(ctrl *gomock.Controller) *MockStore { + mock := &MockStore{ctrl: ctrl} + mock.recorder = &MockStoreMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockStore) EXPECT() *MockStoreMockRecorder { + return m.recorder +} + +// AcquireLock mocks base method. +func (m *MockStore) AcquireLock(ctx context.Context, pgAdvisoryXactLock int64) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AcquireLock", ctx, pgAdvisoryXactLock) + ret0, _ := ret[0].(error) + return ret0 +} + +// AcquireLock indicates an expected call of AcquireLock. +func (mr *MockStoreMockRecorder) AcquireLock(ctx, pgAdvisoryXactLock any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AcquireLock", reflect.TypeOf((*MockStore)(nil).AcquireLock), ctx, pgAdvisoryXactLock) +} + +// AcquireNotificationMessages mocks base method. +func (m *MockStore) AcquireNotificationMessages(ctx context.Context, arg database.AcquireNotificationMessagesParams) ([]database.AcquireNotificationMessagesRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AcquireNotificationMessages", ctx, arg) + ret0, _ := ret[0].([]database.AcquireNotificationMessagesRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AcquireNotificationMessages indicates an expected call of AcquireNotificationMessages. +func (mr *MockStoreMockRecorder) AcquireNotificationMessages(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AcquireNotificationMessages", reflect.TypeOf((*MockStore)(nil).AcquireNotificationMessages), ctx, arg) +} + +// AcquireProvisionerJob mocks base method. +func (m *MockStore) AcquireProvisionerJob(ctx context.Context, arg database.AcquireProvisionerJobParams) (database.ProvisionerJob, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AcquireProvisionerJob", ctx, arg) + ret0, _ := ret[0].(database.ProvisionerJob) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AcquireProvisionerJob indicates an expected call of AcquireProvisionerJob. +func (mr *MockStoreMockRecorder) AcquireProvisionerJob(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AcquireProvisionerJob", reflect.TypeOf((*MockStore)(nil).AcquireProvisionerJob), ctx, arg) +} + +// ActivityBumpWorkspace mocks base method. +func (m *MockStore) ActivityBumpWorkspace(ctx context.Context, arg database.ActivityBumpWorkspaceParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ActivityBumpWorkspace", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// ActivityBumpWorkspace indicates an expected call of ActivityBumpWorkspace. +func (mr *MockStoreMockRecorder) ActivityBumpWorkspace(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ActivityBumpWorkspace", reflect.TypeOf((*MockStore)(nil).ActivityBumpWorkspace), ctx, arg) +} + +// AllUserIDs mocks base method. +func (m *MockStore) AllUserIDs(ctx context.Context, includeSystem bool) ([]uuid.UUID, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AllUserIDs", ctx, includeSystem) + ret0, _ := ret[0].([]uuid.UUID) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AllUserIDs indicates an expected call of AllUserIDs. +func (mr *MockStoreMockRecorder) AllUserIDs(ctx, includeSystem any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AllUserIDs", reflect.TypeOf((*MockStore)(nil).AllUserIDs), ctx, includeSystem) +} + +// ArchiveUnusedTemplateVersions mocks base method. +func (m *MockStore) ArchiveUnusedTemplateVersions(ctx context.Context, arg database.ArchiveUnusedTemplateVersionsParams) ([]uuid.UUID, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ArchiveUnusedTemplateVersions", ctx, arg) + ret0, _ := ret[0].([]uuid.UUID) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ArchiveUnusedTemplateVersions indicates an expected call of ArchiveUnusedTemplateVersions. +func (mr *MockStoreMockRecorder) ArchiveUnusedTemplateVersions(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ArchiveUnusedTemplateVersions", reflect.TypeOf((*MockStore)(nil).ArchiveUnusedTemplateVersions), ctx, arg) +} + +// BatchUpdateWorkspaceLastUsedAt mocks base method. +func (m *MockStore) BatchUpdateWorkspaceLastUsedAt(ctx context.Context, arg database.BatchUpdateWorkspaceLastUsedAtParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "BatchUpdateWorkspaceLastUsedAt", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// BatchUpdateWorkspaceLastUsedAt indicates an expected call of BatchUpdateWorkspaceLastUsedAt. +func (mr *MockStoreMockRecorder) BatchUpdateWorkspaceLastUsedAt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchUpdateWorkspaceLastUsedAt", reflect.TypeOf((*MockStore)(nil).BatchUpdateWorkspaceLastUsedAt), ctx, arg) +} + +// BatchUpdateWorkspaceNextStartAt mocks base method. +func (m *MockStore) BatchUpdateWorkspaceNextStartAt(ctx context.Context, arg database.BatchUpdateWorkspaceNextStartAtParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "BatchUpdateWorkspaceNextStartAt", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// BatchUpdateWorkspaceNextStartAt indicates an expected call of BatchUpdateWorkspaceNextStartAt. +func (mr *MockStoreMockRecorder) BatchUpdateWorkspaceNextStartAt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchUpdateWorkspaceNextStartAt", reflect.TypeOf((*MockStore)(nil).BatchUpdateWorkspaceNextStartAt), ctx, arg) +} + +// BulkMarkNotificationMessagesFailed mocks base method. +func (m *MockStore) BulkMarkNotificationMessagesFailed(ctx context.Context, arg database.BulkMarkNotificationMessagesFailedParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "BulkMarkNotificationMessagesFailed", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// BulkMarkNotificationMessagesFailed indicates an expected call of BulkMarkNotificationMessagesFailed. +func (mr *MockStoreMockRecorder) BulkMarkNotificationMessagesFailed(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BulkMarkNotificationMessagesFailed", reflect.TypeOf((*MockStore)(nil).BulkMarkNotificationMessagesFailed), ctx, arg) +} + +// BulkMarkNotificationMessagesSent mocks base method. +func (m *MockStore) BulkMarkNotificationMessagesSent(ctx context.Context, arg database.BulkMarkNotificationMessagesSentParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "BulkMarkNotificationMessagesSent", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// BulkMarkNotificationMessagesSent indicates an expected call of BulkMarkNotificationMessagesSent. +func (mr *MockStoreMockRecorder) BulkMarkNotificationMessagesSent(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BulkMarkNotificationMessagesSent", reflect.TypeOf((*MockStore)(nil).BulkMarkNotificationMessagesSent), ctx, arg) +} + +// CalculateAIBridgeInterceptionsTelemetrySummary mocks base method. +func (m *MockStore) CalculateAIBridgeInterceptionsTelemetrySummary(ctx context.Context, arg database.CalculateAIBridgeInterceptionsTelemetrySummaryParams) (database.CalculateAIBridgeInterceptionsTelemetrySummaryRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CalculateAIBridgeInterceptionsTelemetrySummary", ctx, arg) + ret0, _ := ret[0].(database.CalculateAIBridgeInterceptionsTelemetrySummaryRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CalculateAIBridgeInterceptionsTelemetrySummary indicates an expected call of CalculateAIBridgeInterceptionsTelemetrySummary. +func (mr *MockStoreMockRecorder) CalculateAIBridgeInterceptionsTelemetrySummary(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CalculateAIBridgeInterceptionsTelemetrySummary", reflect.TypeOf((*MockStore)(nil).CalculateAIBridgeInterceptionsTelemetrySummary), ctx, arg) +} + +// ClaimPrebuiltWorkspace mocks base method. +func (m *MockStore) ClaimPrebuiltWorkspace(ctx context.Context, arg database.ClaimPrebuiltWorkspaceParams) (database.ClaimPrebuiltWorkspaceRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ClaimPrebuiltWorkspace", ctx, arg) + ret0, _ := ret[0].(database.ClaimPrebuiltWorkspaceRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ClaimPrebuiltWorkspace indicates an expected call of ClaimPrebuiltWorkspace. +func (mr *MockStoreMockRecorder) ClaimPrebuiltWorkspace(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ClaimPrebuiltWorkspace", reflect.TypeOf((*MockStore)(nil).ClaimPrebuiltWorkspace), ctx, arg) +} + +// CleanTailnetCoordinators mocks base method. +func (m *MockStore) CleanTailnetCoordinators(ctx context.Context) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CleanTailnetCoordinators", ctx) + ret0, _ := ret[0].(error) + return ret0 +} + +// CleanTailnetCoordinators indicates an expected call of CleanTailnetCoordinators. +func (mr *MockStoreMockRecorder) CleanTailnetCoordinators(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CleanTailnetCoordinators", reflect.TypeOf((*MockStore)(nil).CleanTailnetCoordinators), ctx) +} + +// CleanTailnetLostPeers mocks base method. +func (m *MockStore) CleanTailnetLostPeers(ctx context.Context) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CleanTailnetLostPeers", ctx) + ret0, _ := ret[0].(error) + return ret0 +} + +// CleanTailnetLostPeers indicates an expected call of CleanTailnetLostPeers. +func (mr *MockStoreMockRecorder) CleanTailnetLostPeers(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CleanTailnetLostPeers", reflect.TypeOf((*MockStore)(nil).CleanTailnetLostPeers), ctx) +} + +// CleanTailnetTunnels mocks base method. +func (m *MockStore) CleanTailnetTunnels(ctx context.Context) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CleanTailnetTunnels", ctx) + ret0, _ := ret[0].(error) + return ret0 +} + +// CleanTailnetTunnels indicates an expected call of CleanTailnetTunnels. +func (mr *MockStoreMockRecorder) CleanTailnetTunnels(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CleanTailnetTunnels", reflect.TypeOf((*MockStore)(nil).CleanTailnetTunnels), ctx) +} + +// CountAIBridgeInterceptions mocks base method. +func (m *MockStore) CountAIBridgeInterceptions(ctx context.Context, arg database.CountAIBridgeInterceptionsParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CountAIBridgeInterceptions", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountAIBridgeInterceptions indicates an expected call of CountAIBridgeInterceptions. +func (mr *MockStoreMockRecorder) CountAIBridgeInterceptions(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountAIBridgeInterceptions", reflect.TypeOf((*MockStore)(nil).CountAIBridgeInterceptions), ctx, arg) +} + +// CountAuditLogs mocks base method. +func (m *MockStore) CountAuditLogs(ctx context.Context, arg database.CountAuditLogsParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CountAuditLogs", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountAuditLogs indicates an expected call of CountAuditLogs. +func (mr *MockStoreMockRecorder) CountAuditLogs(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountAuditLogs", reflect.TypeOf((*MockStore)(nil).CountAuditLogs), ctx, arg) +} + +// CountAuthorizedAIBridgeInterceptions mocks base method. +func (m *MockStore) CountAuthorizedAIBridgeInterceptions(ctx context.Context, arg database.CountAIBridgeInterceptionsParams, prepared rbac.PreparedAuthorized) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CountAuthorizedAIBridgeInterceptions", ctx, arg, prepared) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountAuthorizedAIBridgeInterceptions indicates an expected call of CountAuthorizedAIBridgeInterceptions. +func (mr *MockStoreMockRecorder) CountAuthorizedAIBridgeInterceptions(ctx, arg, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountAuthorizedAIBridgeInterceptions", reflect.TypeOf((*MockStore)(nil).CountAuthorizedAIBridgeInterceptions), ctx, arg, prepared) +} + +// CountAuthorizedAuditLogs mocks base method. +func (m *MockStore) CountAuthorizedAuditLogs(ctx context.Context, arg database.CountAuditLogsParams, prepared rbac.PreparedAuthorized) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CountAuthorizedAuditLogs", ctx, arg, prepared) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountAuthorizedAuditLogs indicates an expected call of CountAuthorizedAuditLogs. +func (mr *MockStoreMockRecorder) CountAuthorizedAuditLogs(ctx, arg, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountAuthorizedAuditLogs", reflect.TypeOf((*MockStore)(nil).CountAuthorizedAuditLogs), ctx, arg, prepared) +} + +// CountAuthorizedConnectionLogs mocks base method. +func (m *MockStore) CountAuthorizedConnectionLogs(ctx context.Context, arg database.CountConnectionLogsParams, prepared rbac.PreparedAuthorized) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CountAuthorizedConnectionLogs", ctx, arg, prepared) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountAuthorizedConnectionLogs indicates an expected call of CountAuthorizedConnectionLogs. +func (mr *MockStoreMockRecorder) CountAuthorizedConnectionLogs(ctx, arg, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountAuthorizedConnectionLogs", reflect.TypeOf((*MockStore)(nil).CountAuthorizedConnectionLogs), ctx, arg, prepared) +} + +// CountConnectionLogs mocks base method. +func (m *MockStore) CountConnectionLogs(ctx context.Context, arg database.CountConnectionLogsParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CountConnectionLogs", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountConnectionLogs indicates an expected call of CountConnectionLogs. +func (mr *MockStoreMockRecorder) CountConnectionLogs(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountConnectionLogs", reflect.TypeOf((*MockStore)(nil).CountConnectionLogs), ctx, arg) +} + +// CountInProgressPrebuilds mocks base method. +func (m *MockStore) CountInProgressPrebuilds(ctx context.Context) ([]database.CountInProgressPrebuildsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CountInProgressPrebuilds", ctx) + ret0, _ := ret[0].([]database.CountInProgressPrebuildsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountInProgressPrebuilds indicates an expected call of CountInProgressPrebuilds. +func (mr *MockStoreMockRecorder) CountInProgressPrebuilds(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountInProgressPrebuilds", reflect.TypeOf((*MockStore)(nil).CountInProgressPrebuilds), ctx) +} + +// CountPendingNonActivePrebuilds mocks base method. +func (m *MockStore) CountPendingNonActivePrebuilds(ctx context.Context) ([]database.CountPendingNonActivePrebuildsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CountPendingNonActivePrebuilds", ctx) + ret0, _ := ret[0].([]database.CountPendingNonActivePrebuildsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountPendingNonActivePrebuilds indicates an expected call of CountPendingNonActivePrebuilds. +func (mr *MockStoreMockRecorder) CountPendingNonActivePrebuilds(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountPendingNonActivePrebuilds", reflect.TypeOf((*MockStore)(nil).CountPendingNonActivePrebuilds), ctx) +} + +// CountUnreadInboxNotificationsByUserID mocks base method. +func (m *MockStore) CountUnreadInboxNotificationsByUserID(ctx context.Context, userID uuid.UUID) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CountUnreadInboxNotificationsByUserID", ctx, userID) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountUnreadInboxNotificationsByUserID indicates an expected call of CountUnreadInboxNotificationsByUserID. +func (mr *MockStoreMockRecorder) CountUnreadInboxNotificationsByUserID(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountUnreadInboxNotificationsByUserID", reflect.TypeOf((*MockStore)(nil).CountUnreadInboxNotificationsByUserID), ctx, userID) +} + +// CreateUserSecret mocks base method. +func (m *MockStore) CreateUserSecret(ctx context.Context, arg database.CreateUserSecretParams) (database.UserSecret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateUserSecret", ctx, arg) + ret0, _ := ret[0].(database.UserSecret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateUserSecret indicates an expected call of CreateUserSecret. +func (mr *MockStoreMockRecorder) CreateUserSecret(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateUserSecret", reflect.TypeOf((*MockStore)(nil).CreateUserSecret), ctx, arg) +} + +// CustomRoles mocks base method. +func (m *MockStore) CustomRoles(ctx context.Context, arg database.CustomRolesParams) ([]database.CustomRole, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CustomRoles", ctx, arg) + ret0, _ := ret[0].([]database.CustomRole) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CustomRoles indicates an expected call of CustomRoles. +func (mr *MockStoreMockRecorder) CustomRoles(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CustomRoles", reflect.TypeOf((*MockStore)(nil).CustomRoles), ctx, arg) +} + +// DeleteAPIKeyByID mocks base method. +func (m *MockStore) DeleteAPIKeyByID(ctx context.Context, id string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteAPIKeyByID", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteAPIKeyByID indicates an expected call of DeleteAPIKeyByID. +func (mr *MockStoreMockRecorder) DeleteAPIKeyByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAPIKeyByID", reflect.TypeOf((*MockStore)(nil).DeleteAPIKeyByID), ctx, id) +} + +// DeleteAPIKeysByUserID mocks base method. +func (m *MockStore) DeleteAPIKeysByUserID(ctx context.Context, userID uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteAPIKeysByUserID", ctx, userID) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteAPIKeysByUserID indicates an expected call of DeleteAPIKeysByUserID. +func (mr *MockStoreMockRecorder) DeleteAPIKeysByUserID(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAPIKeysByUserID", reflect.TypeOf((*MockStore)(nil).DeleteAPIKeysByUserID), ctx, userID) +} + +// DeleteAllTailnetClientSubscriptions mocks base method. +func (m *MockStore) DeleteAllTailnetClientSubscriptions(ctx context.Context, arg database.DeleteAllTailnetClientSubscriptionsParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteAllTailnetClientSubscriptions", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteAllTailnetClientSubscriptions indicates an expected call of DeleteAllTailnetClientSubscriptions. +func (mr *MockStoreMockRecorder) DeleteAllTailnetClientSubscriptions(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllTailnetClientSubscriptions", reflect.TypeOf((*MockStore)(nil).DeleteAllTailnetClientSubscriptions), ctx, arg) +} + +// DeleteAllTailnetTunnels mocks base method. +func (m *MockStore) DeleteAllTailnetTunnels(ctx context.Context, arg database.DeleteAllTailnetTunnelsParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteAllTailnetTunnels", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteAllTailnetTunnels indicates an expected call of DeleteAllTailnetTunnels. +func (mr *MockStoreMockRecorder) DeleteAllTailnetTunnels(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllTailnetTunnels", reflect.TypeOf((*MockStore)(nil).DeleteAllTailnetTunnels), ctx, arg) +} + +// DeleteAllWebpushSubscriptions mocks base method. +func (m *MockStore) DeleteAllWebpushSubscriptions(ctx context.Context) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteAllWebpushSubscriptions", ctx) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteAllWebpushSubscriptions indicates an expected call of DeleteAllWebpushSubscriptions. +func (mr *MockStoreMockRecorder) DeleteAllWebpushSubscriptions(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllWebpushSubscriptions", reflect.TypeOf((*MockStore)(nil).DeleteAllWebpushSubscriptions), ctx) +} + +// DeleteApplicationConnectAPIKeysByUserID mocks base method. +func (m *MockStore) DeleteApplicationConnectAPIKeysByUserID(ctx context.Context, userID uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteApplicationConnectAPIKeysByUserID", ctx, userID) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteApplicationConnectAPIKeysByUserID indicates an expected call of DeleteApplicationConnectAPIKeysByUserID. +func (mr *MockStoreMockRecorder) DeleteApplicationConnectAPIKeysByUserID(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteApplicationConnectAPIKeysByUserID", reflect.TypeOf((*MockStore)(nil).DeleteApplicationConnectAPIKeysByUserID), ctx, userID) +} + +// DeleteCoordinator mocks base method. +func (m *MockStore) DeleteCoordinator(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteCoordinator", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteCoordinator indicates an expected call of DeleteCoordinator. +func (mr *MockStoreMockRecorder) DeleteCoordinator(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCoordinator", reflect.TypeOf((*MockStore)(nil).DeleteCoordinator), ctx, id) +} + +// DeleteCryptoKey mocks base method. +func (m *MockStore) DeleteCryptoKey(ctx context.Context, arg database.DeleteCryptoKeyParams) (database.CryptoKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteCryptoKey", ctx, arg) + ret0, _ := ret[0].(database.CryptoKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteCryptoKey indicates an expected call of DeleteCryptoKey. +func (mr *MockStoreMockRecorder) DeleteCryptoKey(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCryptoKey", reflect.TypeOf((*MockStore)(nil).DeleteCryptoKey), ctx, arg) +} + +// DeleteCustomRole mocks base method. +func (m *MockStore) DeleteCustomRole(ctx context.Context, arg database.DeleteCustomRoleParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteCustomRole", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteCustomRole indicates an expected call of DeleteCustomRole. +func (mr *MockStoreMockRecorder) DeleteCustomRole(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCustomRole", reflect.TypeOf((*MockStore)(nil).DeleteCustomRole), ctx, arg) +} + +// DeleteExpiredAPIKeys mocks base method. +func (m *MockStore) DeleteExpiredAPIKeys(ctx context.Context, arg database.DeleteExpiredAPIKeysParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteExpiredAPIKeys", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteExpiredAPIKeys indicates an expected call of DeleteExpiredAPIKeys. +func (mr *MockStoreMockRecorder) DeleteExpiredAPIKeys(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExpiredAPIKeys", reflect.TypeOf((*MockStore)(nil).DeleteExpiredAPIKeys), ctx, arg) +} + +// DeleteExternalAuthLink mocks base method. +func (m *MockStore) DeleteExternalAuthLink(ctx context.Context, arg database.DeleteExternalAuthLinkParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteExternalAuthLink", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteExternalAuthLink indicates an expected call of DeleteExternalAuthLink. +func (mr *MockStoreMockRecorder) DeleteExternalAuthLink(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExternalAuthLink", reflect.TypeOf((*MockStore)(nil).DeleteExternalAuthLink), ctx, arg) +} + +// DeleteGitSSHKey mocks base method. +func (m *MockStore) DeleteGitSSHKey(ctx context.Context, userID uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteGitSSHKey", ctx, userID) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteGitSSHKey indicates an expected call of DeleteGitSSHKey. +func (mr *MockStoreMockRecorder) DeleteGitSSHKey(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteGitSSHKey", reflect.TypeOf((*MockStore)(nil).DeleteGitSSHKey), ctx, userID) +} + +// DeleteGroupByID mocks base method. +func (m *MockStore) DeleteGroupByID(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteGroupByID", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteGroupByID indicates an expected call of DeleteGroupByID. +func (mr *MockStoreMockRecorder) DeleteGroupByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteGroupByID", reflect.TypeOf((*MockStore)(nil).DeleteGroupByID), ctx, id) +} + +// DeleteGroupMemberFromGroup mocks base method. +func (m *MockStore) DeleteGroupMemberFromGroup(ctx context.Context, arg database.DeleteGroupMemberFromGroupParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteGroupMemberFromGroup", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteGroupMemberFromGroup indicates an expected call of DeleteGroupMemberFromGroup. +func (mr *MockStoreMockRecorder) DeleteGroupMemberFromGroup(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteGroupMemberFromGroup", reflect.TypeOf((*MockStore)(nil).DeleteGroupMemberFromGroup), ctx, arg) +} + +// DeleteLicense mocks base method. +func (m *MockStore) DeleteLicense(ctx context.Context, id int32) (int32, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteLicense", ctx, id) + ret0, _ := ret[0].(int32) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteLicense indicates an expected call of DeleteLicense. +func (mr *MockStoreMockRecorder) DeleteLicense(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLicense", reflect.TypeOf((*MockStore)(nil).DeleteLicense), ctx, id) +} + +// DeleteOAuth2ProviderAppByClientID mocks base method. +func (m *MockStore) DeleteOAuth2ProviderAppByClientID(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppByClientID", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOAuth2ProviderAppByClientID indicates an expected call of DeleteOAuth2ProviderAppByClientID. +func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppByClientID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppByClientID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppByClientID), ctx, id) +} + +// DeleteOAuth2ProviderAppByID mocks base method. +func (m *MockStore) DeleteOAuth2ProviderAppByID(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppByID", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOAuth2ProviderAppByID indicates an expected call of DeleteOAuth2ProviderAppByID. +func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppByID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppByID), ctx, id) +} + +// DeleteOAuth2ProviderAppCodeByID mocks base method. +func (m *MockStore) DeleteOAuth2ProviderAppCodeByID(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppCodeByID", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOAuth2ProviderAppCodeByID indicates an expected call of DeleteOAuth2ProviderAppCodeByID. +func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppCodeByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppCodeByID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppCodeByID), ctx, id) +} + +// DeleteOAuth2ProviderAppCodesByAppAndUserID mocks base method. +func (m *MockStore) DeleteOAuth2ProviderAppCodesByAppAndUserID(ctx context.Context, arg database.DeleteOAuth2ProviderAppCodesByAppAndUserIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppCodesByAppAndUserID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOAuth2ProviderAppCodesByAppAndUserID indicates an expected call of DeleteOAuth2ProviderAppCodesByAppAndUserID. +func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppCodesByAppAndUserID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppCodesByAppAndUserID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppCodesByAppAndUserID), ctx, arg) +} + +// DeleteOAuth2ProviderAppSecretByID mocks base method. +func (m *MockStore) DeleteOAuth2ProviderAppSecretByID(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppSecretByID", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOAuth2ProviderAppSecretByID indicates an expected call of DeleteOAuth2ProviderAppSecretByID. +func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppSecretByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppSecretByID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppSecretByID), ctx, id) +} + +// DeleteOAuth2ProviderAppTokensByAppAndUserID mocks base method. +func (m *MockStore) DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx context.Context, arg database.DeleteOAuth2ProviderAppTokensByAppAndUserIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppTokensByAppAndUserID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOAuth2ProviderAppTokensByAppAndUserID indicates an expected call of DeleteOAuth2ProviderAppTokensByAppAndUserID. +func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppTokensByAppAndUserID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppTokensByAppAndUserID), ctx, arg) +} + +// DeleteOldAIBridgeRecords mocks base method. +func (m *MockStore) DeleteOldAIBridgeRecords(ctx context.Context, beforeTime time.Time) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOldAIBridgeRecords", ctx, beforeTime) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteOldAIBridgeRecords indicates an expected call of DeleteOldAIBridgeRecords. +func (mr *MockStoreMockRecorder) DeleteOldAIBridgeRecords(ctx, beforeTime any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldAIBridgeRecords", reflect.TypeOf((*MockStore)(nil).DeleteOldAIBridgeRecords), ctx, beforeTime) +} + +// DeleteOldAuditLogConnectionEvents mocks base method. +func (m *MockStore) DeleteOldAuditLogConnectionEvents(ctx context.Context, arg database.DeleteOldAuditLogConnectionEventsParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOldAuditLogConnectionEvents", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOldAuditLogConnectionEvents indicates an expected call of DeleteOldAuditLogConnectionEvents. +func (mr *MockStoreMockRecorder) DeleteOldAuditLogConnectionEvents(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldAuditLogConnectionEvents", reflect.TypeOf((*MockStore)(nil).DeleteOldAuditLogConnectionEvents), ctx, arg) +} + +// DeleteOldAuditLogs mocks base method. +func (m *MockStore) DeleteOldAuditLogs(ctx context.Context, arg database.DeleteOldAuditLogsParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOldAuditLogs", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteOldAuditLogs indicates an expected call of DeleteOldAuditLogs. +func (mr *MockStoreMockRecorder) DeleteOldAuditLogs(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldAuditLogs", reflect.TypeOf((*MockStore)(nil).DeleteOldAuditLogs), ctx, arg) +} + +// DeleteOldConnectionLogs mocks base method. +func (m *MockStore) DeleteOldConnectionLogs(ctx context.Context, arg database.DeleteOldConnectionLogsParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOldConnectionLogs", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteOldConnectionLogs indicates an expected call of DeleteOldConnectionLogs. +func (mr *MockStoreMockRecorder) DeleteOldConnectionLogs(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldConnectionLogs", reflect.TypeOf((*MockStore)(nil).DeleteOldConnectionLogs), ctx, arg) +} + +// DeleteOldNotificationMessages mocks base method. +func (m *MockStore) DeleteOldNotificationMessages(ctx context.Context) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOldNotificationMessages", ctx) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOldNotificationMessages indicates an expected call of DeleteOldNotificationMessages. +func (mr *MockStoreMockRecorder) DeleteOldNotificationMessages(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldNotificationMessages", reflect.TypeOf((*MockStore)(nil).DeleteOldNotificationMessages), ctx) +} + +// DeleteOldProvisionerDaemons mocks base method. +func (m *MockStore) DeleteOldProvisionerDaemons(ctx context.Context) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOldProvisionerDaemons", ctx) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOldProvisionerDaemons indicates an expected call of DeleteOldProvisionerDaemons. +func (mr *MockStoreMockRecorder) DeleteOldProvisionerDaemons(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldProvisionerDaemons", reflect.TypeOf((*MockStore)(nil).DeleteOldProvisionerDaemons), ctx) +} + +// DeleteOldTelemetryLocks mocks base method. +func (m *MockStore) DeleteOldTelemetryLocks(ctx context.Context, periodEndingAtBefore time.Time) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOldTelemetryLocks", ctx, periodEndingAtBefore) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOldTelemetryLocks indicates an expected call of DeleteOldTelemetryLocks. +func (mr *MockStoreMockRecorder) DeleteOldTelemetryLocks(ctx, periodEndingAtBefore any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldTelemetryLocks", reflect.TypeOf((*MockStore)(nil).DeleteOldTelemetryLocks), ctx, periodEndingAtBefore) +} + +// DeleteOldWorkspaceAgentLogs mocks base method. +func (m *MockStore) DeleteOldWorkspaceAgentLogs(ctx context.Context, threshold time.Time) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOldWorkspaceAgentLogs", ctx, threshold) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteOldWorkspaceAgentLogs indicates an expected call of DeleteOldWorkspaceAgentLogs. +func (mr *MockStoreMockRecorder) DeleteOldWorkspaceAgentLogs(ctx, threshold any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldWorkspaceAgentLogs", reflect.TypeOf((*MockStore)(nil).DeleteOldWorkspaceAgentLogs), ctx, threshold) +} + +// DeleteOldWorkspaceAgentStats mocks base method. +func (m *MockStore) DeleteOldWorkspaceAgentStats(ctx context.Context) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOldWorkspaceAgentStats", ctx) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOldWorkspaceAgentStats indicates an expected call of DeleteOldWorkspaceAgentStats. +func (mr *MockStoreMockRecorder) DeleteOldWorkspaceAgentStats(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldWorkspaceAgentStats", reflect.TypeOf((*MockStore)(nil).DeleteOldWorkspaceAgentStats), ctx) +} + +// DeleteOrganizationMember mocks base method. +func (m *MockStore) DeleteOrganizationMember(ctx context.Context, arg database.DeleteOrganizationMemberParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteOrganizationMember", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteOrganizationMember indicates an expected call of DeleteOrganizationMember. +func (mr *MockStoreMockRecorder) DeleteOrganizationMember(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOrganizationMember", reflect.TypeOf((*MockStore)(nil).DeleteOrganizationMember), ctx, arg) +} + +// DeleteProvisionerKey mocks base method. +func (m *MockStore) DeleteProvisionerKey(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteProvisionerKey", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteProvisionerKey indicates an expected call of DeleteProvisionerKey. +func (mr *MockStoreMockRecorder) DeleteProvisionerKey(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProvisionerKey", reflect.TypeOf((*MockStore)(nil).DeleteProvisionerKey), ctx, id) +} + +// DeleteReplicasUpdatedBefore mocks base method. +func (m *MockStore) DeleteReplicasUpdatedBefore(ctx context.Context, updatedAt time.Time) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteReplicasUpdatedBefore", ctx, updatedAt) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteReplicasUpdatedBefore indicates an expected call of DeleteReplicasUpdatedBefore. +func (mr *MockStoreMockRecorder) DeleteReplicasUpdatedBefore(ctx, updatedAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteReplicasUpdatedBefore", reflect.TypeOf((*MockStore)(nil).DeleteReplicasUpdatedBefore), ctx, updatedAt) +} + +// DeleteRuntimeConfig mocks base method. +func (m *MockStore) DeleteRuntimeConfig(ctx context.Context, key string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteRuntimeConfig", ctx, key) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteRuntimeConfig indicates an expected call of DeleteRuntimeConfig. +func (mr *MockStoreMockRecorder) DeleteRuntimeConfig(ctx, key any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRuntimeConfig", reflect.TypeOf((*MockStore)(nil).DeleteRuntimeConfig), ctx, key) +} + +// DeleteTailnetAgent mocks base method. +func (m *MockStore) DeleteTailnetAgent(ctx context.Context, arg database.DeleteTailnetAgentParams) (database.DeleteTailnetAgentRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteTailnetAgent", ctx, arg) + ret0, _ := ret[0].(database.DeleteTailnetAgentRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteTailnetAgent indicates an expected call of DeleteTailnetAgent. +func (mr *MockStoreMockRecorder) DeleteTailnetAgent(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTailnetAgent", reflect.TypeOf((*MockStore)(nil).DeleteTailnetAgent), ctx, arg) +} + +// DeleteTailnetClient mocks base method. +func (m *MockStore) DeleteTailnetClient(ctx context.Context, arg database.DeleteTailnetClientParams) (database.DeleteTailnetClientRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteTailnetClient", ctx, arg) + ret0, _ := ret[0].(database.DeleteTailnetClientRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteTailnetClient indicates an expected call of DeleteTailnetClient. +func (mr *MockStoreMockRecorder) DeleteTailnetClient(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTailnetClient", reflect.TypeOf((*MockStore)(nil).DeleteTailnetClient), ctx, arg) +} + +// DeleteTailnetClientSubscription mocks base method. +func (m *MockStore) DeleteTailnetClientSubscription(ctx context.Context, arg database.DeleteTailnetClientSubscriptionParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteTailnetClientSubscription", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteTailnetClientSubscription indicates an expected call of DeleteTailnetClientSubscription. +func (mr *MockStoreMockRecorder) DeleteTailnetClientSubscription(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTailnetClientSubscription", reflect.TypeOf((*MockStore)(nil).DeleteTailnetClientSubscription), ctx, arg) +} + +// DeleteTailnetPeer mocks base method. +func (m *MockStore) DeleteTailnetPeer(ctx context.Context, arg database.DeleteTailnetPeerParams) (database.DeleteTailnetPeerRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteTailnetPeer", ctx, arg) + ret0, _ := ret[0].(database.DeleteTailnetPeerRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteTailnetPeer indicates an expected call of DeleteTailnetPeer. +func (mr *MockStoreMockRecorder) DeleteTailnetPeer(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTailnetPeer", reflect.TypeOf((*MockStore)(nil).DeleteTailnetPeer), ctx, arg) +} + +// DeleteTailnetTunnel mocks base method. +func (m *MockStore) DeleteTailnetTunnel(ctx context.Context, arg database.DeleteTailnetTunnelParams) (database.DeleteTailnetTunnelRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteTailnetTunnel", ctx, arg) + ret0, _ := ret[0].(database.DeleteTailnetTunnelRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteTailnetTunnel indicates an expected call of DeleteTailnetTunnel. +func (mr *MockStoreMockRecorder) DeleteTailnetTunnel(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTailnetTunnel", reflect.TypeOf((*MockStore)(nil).DeleteTailnetTunnel), ctx, arg) +} + +// DeleteTask mocks base method. +func (m *MockStore) DeleteTask(ctx context.Context, arg database.DeleteTaskParams) (database.TaskTable, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteTask", ctx, arg) + ret0, _ := ret[0].(database.TaskTable) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteTask indicates an expected call of DeleteTask. +func (mr *MockStoreMockRecorder) DeleteTask(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTask", reflect.TypeOf((*MockStore)(nil).DeleteTask), ctx, arg) +} + +// DeleteUserSecret mocks base method. +func (m *MockStore) DeleteUserSecret(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteUserSecret", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteUserSecret indicates an expected call of DeleteUserSecret. +func (mr *MockStoreMockRecorder) DeleteUserSecret(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteUserSecret", reflect.TypeOf((*MockStore)(nil).DeleteUserSecret), ctx, id) +} + +// DeleteWebpushSubscriptionByUserIDAndEndpoint mocks base method. +func (m *MockStore) DeleteWebpushSubscriptionByUserIDAndEndpoint(ctx context.Context, arg database.DeleteWebpushSubscriptionByUserIDAndEndpointParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteWebpushSubscriptionByUserIDAndEndpoint", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteWebpushSubscriptionByUserIDAndEndpoint indicates an expected call of DeleteWebpushSubscriptionByUserIDAndEndpoint. +func (mr *MockStoreMockRecorder) DeleteWebpushSubscriptionByUserIDAndEndpoint(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWebpushSubscriptionByUserIDAndEndpoint", reflect.TypeOf((*MockStore)(nil).DeleteWebpushSubscriptionByUserIDAndEndpoint), ctx, arg) +} + +// DeleteWebpushSubscriptions mocks base method. +func (m *MockStore) DeleteWebpushSubscriptions(ctx context.Context, ids []uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteWebpushSubscriptions", ctx, ids) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteWebpushSubscriptions indicates an expected call of DeleteWebpushSubscriptions. +func (mr *MockStoreMockRecorder) DeleteWebpushSubscriptions(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWebpushSubscriptions", reflect.TypeOf((*MockStore)(nil).DeleteWebpushSubscriptions), ctx, ids) +} + +// DeleteWorkspaceACLByID mocks base method. +func (m *MockStore) DeleteWorkspaceACLByID(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteWorkspaceACLByID", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteWorkspaceACLByID indicates an expected call of DeleteWorkspaceACLByID. +func (mr *MockStoreMockRecorder) DeleteWorkspaceACLByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWorkspaceACLByID", reflect.TypeOf((*MockStore)(nil).DeleteWorkspaceACLByID), ctx, id) +} + +// DeleteWorkspaceAgentPortShare mocks base method. +func (m *MockStore) DeleteWorkspaceAgentPortShare(ctx context.Context, arg database.DeleteWorkspaceAgentPortShareParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteWorkspaceAgentPortShare", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteWorkspaceAgentPortShare indicates an expected call of DeleteWorkspaceAgentPortShare. +func (mr *MockStoreMockRecorder) DeleteWorkspaceAgentPortShare(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWorkspaceAgentPortShare", reflect.TypeOf((*MockStore)(nil).DeleteWorkspaceAgentPortShare), ctx, arg) +} + +// DeleteWorkspaceAgentPortSharesByTemplate mocks base method. +func (m *MockStore) DeleteWorkspaceAgentPortSharesByTemplate(ctx context.Context, templateID uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteWorkspaceAgentPortSharesByTemplate", ctx, templateID) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteWorkspaceAgentPortSharesByTemplate indicates an expected call of DeleteWorkspaceAgentPortSharesByTemplate. +func (mr *MockStoreMockRecorder) DeleteWorkspaceAgentPortSharesByTemplate(ctx, templateID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWorkspaceAgentPortSharesByTemplate", reflect.TypeOf((*MockStore)(nil).DeleteWorkspaceAgentPortSharesByTemplate), ctx, templateID) +} + +// DeleteWorkspaceSubAgentByID mocks base method. +func (m *MockStore) DeleteWorkspaceSubAgentByID(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteWorkspaceSubAgentByID", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteWorkspaceSubAgentByID indicates an expected call of DeleteWorkspaceSubAgentByID. +func (mr *MockStoreMockRecorder) DeleteWorkspaceSubAgentByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWorkspaceSubAgentByID", reflect.TypeOf((*MockStore)(nil).DeleteWorkspaceSubAgentByID), ctx, id) +} + +// DisableForeignKeysAndTriggers mocks base method. +func (m *MockStore) DisableForeignKeysAndTriggers(ctx context.Context) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DisableForeignKeysAndTriggers", ctx) + ret0, _ := ret[0].(error) + return ret0 +} + +// DisableForeignKeysAndTriggers indicates an expected call of DisableForeignKeysAndTriggers. +func (mr *MockStoreMockRecorder) DisableForeignKeysAndTriggers(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableForeignKeysAndTriggers", reflect.TypeOf((*MockStore)(nil).DisableForeignKeysAndTriggers), ctx) +} + +// EnqueueNotificationMessage mocks base method. +func (m *MockStore) EnqueueNotificationMessage(ctx context.Context, arg database.EnqueueNotificationMessageParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "EnqueueNotificationMessage", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// EnqueueNotificationMessage indicates an expected call of EnqueueNotificationMessage. +func (mr *MockStoreMockRecorder) EnqueueNotificationMessage(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnqueueNotificationMessage", reflect.TypeOf((*MockStore)(nil).EnqueueNotificationMessage), ctx, arg) +} + +// ExpirePrebuildsAPIKeys mocks base method. +func (m *MockStore) ExpirePrebuildsAPIKeys(ctx context.Context, now time.Time) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ExpirePrebuildsAPIKeys", ctx, now) + ret0, _ := ret[0].(error) + return ret0 +} + +// ExpirePrebuildsAPIKeys indicates an expected call of ExpirePrebuildsAPIKeys. +func (mr *MockStoreMockRecorder) ExpirePrebuildsAPIKeys(ctx, now any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExpirePrebuildsAPIKeys", reflect.TypeOf((*MockStore)(nil).ExpirePrebuildsAPIKeys), ctx, now) +} + +// FavoriteWorkspace mocks base method. +func (m *MockStore) FavoriteWorkspace(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FavoriteWorkspace", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// FavoriteWorkspace indicates an expected call of FavoriteWorkspace. +func (mr *MockStoreMockRecorder) FavoriteWorkspace(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FavoriteWorkspace", reflect.TypeOf((*MockStore)(nil).FavoriteWorkspace), ctx, id) +} + +// FetchMemoryResourceMonitorsByAgentID mocks base method. +func (m *MockStore) FetchMemoryResourceMonitorsByAgentID(ctx context.Context, agentID uuid.UUID) (database.WorkspaceAgentMemoryResourceMonitor, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FetchMemoryResourceMonitorsByAgentID", ctx, agentID) + ret0, _ := ret[0].(database.WorkspaceAgentMemoryResourceMonitor) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// FetchMemoryResourceMonitorsByAgentID indicates an expected call of FetchMemoryResourceMonitorsByAgentID. +func (mr *MockStoreMockRecorder) FetchMemoryResourceMonitorsByAgentID(ctx, agentID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchMemoryResourceMonitorsByAgentID", reflect.TypeOf((*MockStore)(nil).FetchMemoryResourceMonitorsByAgentID), ctx, agentID) +} + +// FetchMemoryResourceMonitorsUpdatedAfter mocks base method. +func (m *MockStore) FetchMemoryResourceMonitorsUpdatedAfter(ctx context.Context, updatedAt time.Time) ([]database.WorkspaceAgentMemoryResourceMonitor, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FetchMemoryResourceMonitorsUpdatedAfter", ctx, updatedAt) + ret0, _ := ret[0].([]database.WorkspaceAgentMemoryResourceMonitor) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// FetchMemoryResourceMonitorsUpdatedAfter indicates an expected call of FetchMemoryResourceMonitorsUpdatedAfter. +func (mr *MockStoreMockRecorder) FetchMemoryResourceMonitorsUpdatedAfter(ctx, updatedAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchMemoryResourceMonitorsUpdatedAfter", reflect.TypeOf((*MockStore)(nil).FetchMemoryResourceMonitorsUpdatedAfter), ctx, updatedAt) +} + +// FetchNewMessageMetadata mocks base method. +func (m *MockStore) FetchNewMessageMetadata(ctx context.Context, arg database.FetchNewMessageMetadataParams) (database.FetchNewMessageMetadataRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FetchNewMessageMetadata", ctx, arg) + ret0, _ := ret[0].(database.FetchNewMessageMetadataRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// FetchNewMessageMetadata indicates an expected call of FetchNewMessageMetadata. +func (mr *MockStoreMockRecorder) FetchNewMessageMetadata(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchNewMessageMetadata", reflect.TypeOf((*MockStore)(nil).FetchNewMessageMetadata), ctx, arg) +} + +// FetchVolumesResourceMonitorsByAgentID mocks base method. +func (m *MockStore) FetchVolumesResourceMonitorsByAgentID(ctx context.Context, agentID uuid.UUID) ([]database.WorkspaceAgentVolumeResourceMonitor, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FetchVolumesResourceMonitorsByAgentID", ctx, agentID) + ret0, _ := ret[0].([]database.WorkspaceAgentVolumeResourceMonitor) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// FetchVolumesResourceMonitorsByAgentID indicates an expected call of FetchVolumesResourceMonitorsByAgentID. +func (mr *MockStoreMockRecorder) FetchVolumesResourceMonitorsByAgentID(ctx, agentID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchVolumesResourceMonitorsByAgentID", reflect.TypeOf((*MockStore)(nil).FetchVolumesResourceMonitorsByAgentID), ctx, agentID) +} + +// FetchVolumesResourceMonitorsUpdatedAfter mocks base method. +func (m *MockStore) FetchVolumesResourceMonitorsUpdatedAfter(ctx context.Context, updatedAt time.Time) ([]database.WorkspaceAgentVolumeResourceMonitor, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FetchVolumesResourceMonitorsUpdatedAfter", ctx, updatedAt) + ret0, _ := ret[0].([]database.WorkspaceAgentVolumeResourceMonitor) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// FetchVolumesResourceMonitorsUpdatedAfter indicates an expected call of FetchVolumesResourceMonitorsUpdatedAfter. +func (mr *MockStoreMockRecorder) FetchVolumesResourceMonitorsUpdatedAfter(ctx, updatedAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchVolumesResourceMonitorsUpdatedAfter", reflect.TypeOf((*MockStore)(nil).FetchVolumesResourceMonitorsUpdatedAfter), ctx, updatedAt) +} + +// FindMatchingPresetID mocks base method. +func (m *MockStore) FindMatchingPresetID(ctx context.Context, arg database.FindMatchingPresetIDParams) (uuid.UUID, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FindMatchingPresetID", ctx, arg) + ret0, _ := ret[0].(uuid.UUID) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// FindMatchingPresetID indicates an expected call of FindMatchingPresetID. +func (mr *MockStoreMockRecorder) FindMatchingPresetID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindMatchingPresetID", reflect.TypeOf((*MockStore)(nil).FindMatchingPresetID), ctx, arg) +} + +// GetAIBridgeInterceptionByID mocks base method. +func (m *MockStore) GetAIBridgeInterceptionByID(ctx context.Context, id uuid.UUID) (database.AIBridgeInterception, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAIBridgeInterceptionByID", ctx, id) + ret0, _ := ret[0].(database.AIBridgeInterception) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAIBridgeInterceptionByID indicates an expected call of GetAIBridgeInterceptionByID. +func (mr *MockStoreMockRecorder) GetAIBridgeInterceptionByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAIBridgeInterceptionByID", reflect.TypeOf((*MockStore)(nil).GetAIBridgeInterceptionByID), ctx, id) +} + +// GetAIBridgeInterceptions mocks base method. +func (m *MockStore) GetAIBridgeInterceptions(ctx context.Context) ([]database.AIBridgeInterception, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAIBridgeInterceptions", ctx) + ret0, _ := ret[0].([]database.AIBridgeInterception) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAIBridgeInterceptions indicates an expected call of GetAIBridgeInterceptions. +func (mr *MockStoreMockRecorder) GetAIBridgeInterceptions(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAIBridgeInterceptions", reflect.TypeOf((*MockStore)(nil).GetAIBridgeInterceptions), ctx) +} + +// GetAIBridgeTokenUsagesByInterceptionID mocks base method. +func (m *MockStore) GetAIBridgeTokenUsagesByInterceptionID(ctx context.Context, interceptionID uuid.UUID) ([]database.AIBridgeTokenUsage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAIBridgeTokenUsagesByInterceptionID", ctx, interceptionID) + ret0, _ := ret[0].([]database.AIBridgeTokenUsage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAIBridgeTokenUsagesByInterceptionID indicates an expected call of GetAIBridgeTokenUsagesByInterceptionID. +func (mr *MockStoreMockRecorder) GetAIBridgeTokenUsagesByInterceptionID(ctx, interceptionID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAIBridgeTokenUsagesByInterceptionID", reflect.TypeOf((*MockStore)(nil).GetAIBridgeTokenUsagesByInterceptionID), ctx, interceptionID) +} + +// GetAIBridgeToolUsagesByInterceptionID mocks base method. +func (m *MockStore) GetAIBridgeToolUsagesByInterceptionID(ctx context.Context, interceptionID uuid.UUID) ([]database.AIBridgeToolUsage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAIBridgeToolUsagesByInterceptionID", ctx, interceptionID) + ret0, _ := ret[0].([]database.AIBridgeToolUsage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAIBridgeToolUsagesByInterceptionID indicates an expected call of GetAIBridgeToolUsagesByInterceptionID. +func (mr *MockStoreMockRecorder) GetAIBridgeToolUsagesByInterceptionID(ctx, interceptionID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAIBridgeToolUsagesByInterceptionID", reflect.TypeOf((*MockStore)(nil).GetAIBridgeToolUsagesByInterceptionID), ctx, interceptionID) +} + +// GetAIBridgeUserPromptsByInterceptionID mocks base method. +func (m *MockStore) GetAIBridgeUserPromptsByInterceptionID(ctx context.Context, interceptionID uuid.UUID) ([]database.AIBridgeUserPrompt, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAIBridgeUserPromptsByInterceptionID", ctx, interceptionID) + ret0, _ := ret[0].([]database.AIBridgeUserPrompt) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAIBridgeUserPromptsByInterceptionID indicates an expected call of GetAIBridgeUserPromptsByInterceptionID. +func (mr *MockStoreMockRecorder) GetAIBridgeUserPromptsByInterceptionID(ctx, interceptionID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAIBridgeUserPromptsByInterceptionID", reflect.TypeOf((*MockStore)(nil).GetAIBridgeUserPromptsByInterceptionID), ctx, interceptionID) +} + +// GetAPIKeyByID mocks base method. +func (m *MockStore) GetAPIKeyByID(ctx context.Context, id string) (database.APIKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAPIKeyByID", ctx, id) + ret0, _ := ret[0].(database.APIKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAPIKeyByID indicates an expected call of GetAPIKeyByID. +func (mr *MockStoreMockRecorder) GetAPIKeyByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIKeyByID", reflect.TypeOf((*MockStore)(nil).GetAPIKeyByID), ctx, id) +} + +// GetAPIKeyByName mocks base method. +func (m *MockStore) GetAPIKeyByName(ctx context.Context, arg database.GetAPIKeyByNameParams) (database.APIKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAPIKeyByName", ctx, arg) + ret0, _ := ret[0].(database.APIKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAPIKeyByName indicates an expected call of GetAPIKeyByName. +func (mr *MockStoreMockRecorder) GetAPIKeyByName(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIKeyByName", reflect.TypeOf((*MockStore)(nil).GetAPIKeyByName), ctx, arg) +} + +// GetAPIKeysByLoginType mocks base method. +func (m *MockStore) GetAPIKeysByLoginType(ctx context.Context, loginType database.LoginType) ([]database.APIKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAPIKeysByLoginType", ctx, loginType) + ret0, _ := ret[0].([]database.APIKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAPIKeysByLoginType indicates an expected call of GetAPIKeysByLoginType. +func (mr *MockStoreMockRecorder) GetAPIKeysByLoginType(ctx, loginType any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIKeysByLoginType", reflect.TypeOf((*MockStore)(nil).GetAPIKeysByLoginType), ctx, loginType) +} + +// GetAPIKeysByUserID mocks base method. +func (m *MockStore) GetAPIKeysByUserID(ctx context.Context, arg database.GetAPIKeysByUserIDParams) ([]database.APIKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAPIKeysByUserID", ctx, arg) + ret0, _ := ret[0].([]database.APIKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAPIKeysByUserID indicates an expected call of GetAPIKeysByUserID. +func (mr *MockStoreMockRecorder) GetAPIKeysByUserID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIKeysByUserID", reflect.TypeOf((*MockStore)(nil).GetAPIKeysByUserID), ctx, arg) +} + +// GetAPIKeysLastUsedAfter mocks base method. +func (m *MockStore) GetAPIKeysLastUsedAfter(ctx context.Context, lastUsed time.Time) ([]database.APIKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAPIKeysLastUsedAfter", ctx, lastUsed) + ret0, _ := ret[0].([]database.APIKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAPIKeysLastUsedAfter indicates an expected call of GetAPIKeysLastUsedAfter. +func (mr *MockStoreMockRecorder) GetAPIKeysLastUsedAfter(ctx, lastUsed any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIKeysLastUsedAfter", reflect.TypeOf((*MockStore)(nil).GetAPIKeysLastUsedAfter), ctx, lastUsed) +} + +// GetActivePresetPrebuildSchedules mocks base method. +func (m *MockStore) GetActivePresetPrebuildSchedules(ctx context.Context) ([]database.TemplateVersionPresetPrebuildSchedule, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetActivePresetPrebuildSchedules", ctx) + ret0, _ := ret[0].([]database.TemplateVersionPresetPrebuildSchedule) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetActivePresetPrebuildSchedules indicates an expected call of GetActivePresetPrebuildSchedules. +func (mr *MockStoreMockRecorder) GetActivePresetPrebuildSchedules(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetActivePresetPrebuildSchedules", reflect.TypeOf((*MockStore)(nil).GetActivePresetPrebuildSchedules), ctx) +} + +// GetActiveUserCount mocks base method. +func (m *MockStore) GetActiveUserCount(ctx context.Context, includeSystem bool) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetActiveUserCount", ctx, includeSystem) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetActiveUserCount indicates an expected call of GetActiveUserCount. +func (mr *MockStoreMockRecorder) GetActiveUserCount(ctx, includeSystem any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetActiveUserCount", reflect.TypeOf((*MockStore)(nil).GetActiveUserCount), ctx, includeSystem) +} + +// GetActiveWorkspaceBuildsByTemplateID mocks base method. +func (m *MockStore) GetActiveWorkspaceBuildsByTemplateID(ctx context.Context, templateID uuid.UUID) ([]database.WorkspaceBuild, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetActiveWorkspaceBuildsByTemplateID", ctx, templateID) + ret0, _ := ret[0].([]database.WorkspaceBuild) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetActiveWorkspaceBuildsByTemplateID indicates an expected call of GetActiveWorkspaceBuildsByTemplateID. +func (mr *MockStoreMockRecorder) GetActiveWorkspaceBuildsByTemplateID(ctx, templateID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetActiveWorkspaceBuildsByTemplateID", reflect.TypeOf((*MockStore)(nil).GetActiveWorkspaceBuildsByTemplateID), ctx, templateID) +} + +// GetAllTailnetAgents mocks base method. +func (m *MockStore) GetAllTailnetAgents(ctx context.Context) ([]database.TailnetAgent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAllTailnetAgents", ctx) + ret0, _ := ret[0].([]database.TailnetAgent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAllTailnetAgents indicates an expected call of GetAllTailnetAgents. +func (mr *MockStoreMockRecorder) GetAllTailnetAgents(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllTailnetAgents", reflect.TypeOf((*MockStore)(nil).GetAllTailnetAgents), ctx) +} + +// GetAllTailnetCoordinators mocks base method. +func (m *MockStore) GetAllTailnetCoordinators(ctx context.Context) ([]database.TailnetCoordinator, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAllTailnetCoordinators", ctx) + ret0, _ := ret[0].([]database.TailnetCoordinator) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAllTailnetCoordinators indicates an expected call of GetAllTailnetCoordinators. +func (mr *MockStoreMockRecorder) GetAllTailnetCoordinators(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllTailnetCoordinators", reflect.TypeOf((*MockStore)(nil).GetAllTailnetCoordinators), ctx) +} + +// GetAllTailnetPeers mocks base method. +func (m *MockStore) GetAllTailnetPeers(ctx context.Context) ([]database.TailnetPeer, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAllTailnetPeers", ctx) + ret0, _ := ret[0].([]database.TailnetPeer) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAllTailnetPeers indicates an expected call of GetAllTailnetPeers. +func (mr *MockStoreMockRecorder) GetAllTailnetPeers(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllTailnetPeers", reflect.TypeOf((*MockStore)(nil).GetAllTailnetPeers), ctx) +} + +// GetAllTailnetTunnels mocks base method. +func (m *MockStore) GetAllTailnetTunnels(ctx context.Context) ([]database.TailnetTunnel, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAllTailnetTunnels", ctx) + ret0, _ := ret[0].([]database.TailnetTunnel) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAllTailnetTunnels indicates an expected call of GetAllTailnetTunnels. +func (mr *MockStoreMockRecorder) GetAllTailnetTunnels(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllTailnetTunnels", reflect.TypeOf((*MockStore)(nil).GetAllTailnetTunnels), ctx) +} + +// GetAnnouncementBanners mocks base method. +func (m *MockStore) GetAnnouncementBanners(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAnnouncementBanners", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAnnouncementBanners indicates an expected call of GetAnnouncementBanners. +func (mr *MockStoreMockRecorder) GetAnnouncementBanners(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAnnouncementBanners", reflect.TypeOf((*MockStore)(nil).GetAnnouncementBanners), ctx) +} + +// GetAppSecurityKey mocks base method. +func (m *MockStore) GetAppSecurityKey(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAppSecurityKey", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAppSecurityKey indicates an expected call of GetAppSecurityKey. +func (mr *MockStoreMockRecorder) GetAppSecurityKey(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAppSecurityKey", reflect.TypeOf((*MockStore)(nil).GetAppSecurityKey), ctx) +} + +// GetApplicationName mocks base method. +func (m *MockStore) GetApplicationName(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetApplicationName", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetApplicationName indicates an expected call of GetApplicationName. +func (mr *MockStoreMockRecorder) GetApplicationName(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetApplicationName", reflect.TypeOf((*MockStore)(nil).GetApplicationName), ctx) +} + +// GetAuditLogsOffset mocks base method. +func (m *MockStore) GetAuditLogsOffset(ctx context.Context, arg database.GetAuditLogsOffsetParams) ([]database.GetAuditLogsOffsetRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAuditLogsOffset", ctx, arg) + ret0, _ := ret[0].([]database.GetAuditLogsOffsetRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAuditLogsOffset indicates an expected call of GetAuditLogsOffset. +func (mr *MockStoreMockRecorder) GetAuditLogsOffset(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuditLogsOffset", reflect.TypeOf((*MockStore)(nil).GetAuditLogsOffset), ctx, arg) +} + +// GetAuthorizationUserRoles mocks base method. +func (m *MockStore) GetAuthorizationUserRoles(ctx context.Context, userID uuid.UUID) (database.GetAuthorizationUserRolesRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAuthorizationUserRoles", ctx, userID) + ret0, _ := ret[0].(database.GetAuthorizationUserRolesRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAuthorizationUserRoles indicates an expected call of GetAuthorizationUserRoles. +func (mr *MockStoreMockRecorder) GetAuthorizationUserRoles(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizationUserRoles", reflect.TypeOf((*MockStore)(nil).GetAuthorizationUserRoles), ctx, userID) +} + +// GetAuthorizedAuditLogsOffset mocks base method. +func (m *MockStore) GetAuthorizedAuditLogsOffset(ctx context.Context, arg database.GetAuditLogsOffsetParams, prepared rbac.PreparedAuthorized) ([]database.GetAuditLogsOffsetRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAuthorizedAuditLogsOffset", ctx, arg, prepared) + ret0, _ := ret[0].([]database.GetAuditLogsOffsetRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAuthorizedAuditLogsOffset indicates an expected call of GetAuthorizedAuditLogsOffset. +func (mr *MockStoreMockRecorder) GetAuthorizedAuditLogsOffset(ctx, arg, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedAuditLogsOffset", reflect.TypeOf((*MockStore)(nil).GetAuthorizedAuditLogsOffset), ctx, arg, prepared) +} + +// GetAuthorizedConnectionLogsOffset mocks base method. +func (m *MockStore) GetAuthorizedConnectionLogsOffset(ctx context.Context, arg database.GetConnectionLogsOffsetParams, prepared rbac.PreparedAuthorized) ([]database.GetConnectionLogsOffsetRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAuthorizedConnectionLogsOffset", ctx, arg, prepared) + ret0, _ := ret[0].([]database.GetConnectionLogsOffsetRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAuthorizedConnectionLogsOffset indicates an expected call of GetAuthorizedConnectionLogsOffset. +func (mr *MockStoreMockRecorder) GetAuthorizedConnectionLogsOffset(ctx, arg, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedConnectionLogsOffset", reflect.TypeOf((*MockStore)(nil).GetAuthorizedConnectionLogsOffset), ctx, arg, prepared) +} + +// GetAuthorizedTemplates mocks base method. +func (m *MockStore) GetAuthorizedTemplates(ctx context.Context, arg database.GetTemplatesWithFilterParams, prepared rbac.PreparedAuthorized) ([]database.Template, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAuthorizedTemplates", ctx, arg, prepared) + ret0, _ := ret[0].([]database.Template) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAuthorizedTemplates indicates an expected call of GetAuthorizedTemplates. +func (mr *MockStoreMockRecorder) GetAuthorizedTemplates(ctx, arg, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedTemplates", reflect.TypeOf((*MockStore)(nil).GetAuthorizedTemplates), ctx, arg, prepared) +} + +// GetAuthorizedUsers mocks base method. +func (m *MockStore) GetAuthorizedUsers(ctx context.Context, arg database.GetUsersParams, prepared rbac.PreparedAuthorized) ([]database.GetUsersRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAuthorizedUsers", ctx, arg, prepared) + ret0, _ := ret[0].([]database.GetUsersRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAuthorizedUsers indicates an expected call of GetAuthorizedUsers. +func (mr *MockStoreMockRecorder) GetAuthorizedUsers(ctx, arg, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedUsers", reflect.TypeOf((*MockStore)(nil).GetAuthorizedUsers), ctx, arg, prepared) +} + +// GetAuthorizedWorkspaceBuildParametersByBuildIDs mocks base method. +func (m *MockStore) GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIDs []uuid.UUID, prepared rbac.PreparedAuthorized) ([]database.WorkspaceBuildParameter, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAuthorizedWorkspaceBuildParametersByBuildIDs", ctx, workspaceBuildIDs, prepared) + ret0, _ := ret[0].([]database.WorkspaceBuildParameter) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAuthorizedWorkspaceBuildParametersByBuildIDs indicates an expected call of GetAuthorizedWorkspaceBuildParametersByBuildIDs. +func (mr *MockStoreMockRecorder) GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx, workspaceBuildIDs, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedWorkspaceBuildParametersByBuildIDs", reflect.TypeOf((*MockStore)(nil).GetAuthorizedWorkspaceBuildParametersByBuildIDs), ctx, workspaceBuildIDs, prepared) +} + +// GetAuthorizedWorkspaces mocks base method. +func (m *MockStore) GetAuthorizedWorkspaces(ctx context.Context, arg database.GetWorkspacesParams, prepared rbac.PreparedAuthorized) ([]database.GetWorkspacesRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAuthorizedWorkspaces", ctx, arg, prepared) + ret0, _ := ret[0].([]database.GetWorkspacesRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAuthorizedWorkspaces indicates an expected call of GetAuthorizedWorkspaces. +func (mr *MockStoreMockRecorder) GetAuthorizedWorkspaces(ctx, arg, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedWorkspaces", reflect.TypeOf((*MockStore)(nil).GetAuthorizedWorkspaces), ctx, arg, prepared) +} + +// GetAuthorizedWorkspacesAndAgentsByOwnerID mocks base method. +func (m *MockStore) GetAuthorizedWorkspacesAndAgentsByOwnerID(ctx context.Context, ownerID uuid.UUID, prepared rbac.PreparedAuthorized) ([]database.GetWorkspacesAndAgentsByOwnerIDRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAuthorizedWorkspacesAndAgentsByOwnerID", ctx, ownerID, prepared) + ret0, _ := ret[0].([]database.GetWorkspacesAndAgentsByOwnerIDRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAuthorizedWorkspacesAndAgentsByOwnerID indicates an expected call of GetAuthorizedWorkspacesAndAgentsByOwnerID. +func (mr *MockStoreMockRecorder) GetAuthorizedWorkspacesAndAgentsByOwnerID(ctx, ownerID, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedWorkspacesAndAgentsByOwnerID", reflect.TypeOf((*MockStore)(nil).GetAuthorizedWorkspacesAndAgentsByOwnerID), ctx, ownerID, prepared) +} + +// GetConnectionLogsOffset mocks base method. +func (m *MockStore) GetConnectionLogsOffset(ctx context.Context, arg database.GetConnectionLogsOffsetParams) ([]database.GetConnectionLogsOffsetRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetConnectionLogsOffset", ctx, arg) + ret0, _ := ret[0].([]database.GetConnectionLogsOffsetRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetConnectionLogsOffset indicates an expected call of GetConnectionLogsOffset. +func (mr *MockStoreMockRecorder) GetConnectionLogsOffset(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetConnectionLogsOffset", reflect.TypeOf((*MockStore)(nil).GetConnectionLogsOffset), ctx, arg) +} + +// GetCoordinatorResumeTokenSigningKey mocks base method. +func (m *MockStore) GetCoordinatorResumeTokenSigningKey(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCoordinatorResumeTokenSigningKey", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetCoordinatorResumeTokenSigningKey indicates an expected call of GetCoordinatorResumeTokenSigningKey. +func (mr *MockStoreMockRecorder) GetCoordinatorResumeTokenSigningKey(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCoordinatorResumeTokenSigningKey", reflect.TypeOf((*MockStore)(nil).GetCoordinatorResumeTokenSigningKey), ctx) +} + +// GetCryptoKeyByFeatureAndSequence mocks base method. +func (m *MockStore) GetCryptoKeyByFeatureAndSequence(ctx context.Context, arg database.GetCryptoKeyByFeatureAndSequenceParams) (database.CryptoKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCryptoKeyByFeatureAndSequence", ctx, arg) + ret0, _ := ret[0].(database.CryptoKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetCryptoKeyByFeatureAndSequence indicates an expected call of GetCryptoKeyByFeatureAndSequence. +func (mr *MockStoreMockRecorder) GetCryptoKeyByFeatureAndSequence(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCryptoKeyByFeatureAndSequence", reflect.TypeOf((*MockStore)(nil).GetCryptoKeyByFeatureAndSequence), ctx, arg) +} + +// GetCryptoKeys mocks base method. +func (m *MockStore) GetCryptoKeys(ctx context.Context) ([]database.CryptoKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCryptoKeys", ctx) + ret0, _ := ret[0].([]database.CryptoKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetCryptoKeys indicates an expected call of GetCryptoKeys. +func (mr *MockStoreMockRecorder) GetCryptoKeys(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCryptoKeys", reflect.TypeOf((*MockStore)(nil).GetCryptoKeys), ctx) +} + +// GetCryptoKeysByFeature mocks base method. +func (m *MockStore) GetCryptoKeysByFeature(ctx context.Context, feature database.CryptoKeyFeature) ([]database.CryptoKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCryptoKeysByFeature", ctx, feature) + ret0, _ := ret[0].([]database.CryptoKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetCryptoKeysByFeature indicates an expected call of GetCryptoKeysByFeature. +func (mr *MockStoreMockRecorder) GetCryptoKeysByFeature(ctx, feature any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCryptoKeysByFeature", reflect.TypeOf((*MockStore)(nil).GetCryptoKeysByFeature), ctx, feature) +} + +// GetDBCryptKeys mocks base method. +func (m *MockStore) GetDBCryptKeys(ctx context.Context) ([]database.DBCryptKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDBCryptKeys", ctx) + ret0, _ := ret[0].([]database.DBCryptKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDBCryptKeys indicates an expected call of GetDBCryptKeys. +func (mr *MockStoreMockRecorder) GetDBCryptKeys(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDBCryptKeys", reflect.TypeOf((*MockStore)(nil).GetDBCryptKeys), ctx) +} + +// GetDERPMeshKey mocks base method. +func (m *MockStore) GetDERPMeshKey(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDERPMeshKey", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDERPMeshKey indicates an expected call of GetDERPMeshKey. +func (mr *MockStoreMockRecorder) GetDERPMeshKey(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDERPMeshKey", reflect.TypeOf((*MockStore)(nil).GetDERPMeshKey), ctx) +} + +// GetDefaultOrganization mocks base method. +func (m *MockStore) GetDefaultOrganization(ctx context.Context) (database.Organization, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDefaultOrganization", ctx) + ret0, _ := ret[0].(database.Organization) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDefaultOrganization indicates an expected call of GetDefaultOrganization. +func (mr *MockStoreMockRecorder) GetDefaultOrganization(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDefaultOrganization", reflect.TypeOf((*MockStore)(nil).GetDefaultOrganization), ctx) +} + +// GetDefaultProxyConfig mocks base method. +func (m *MockStore) GetDefaultProxyConfig(ctx context.Context) (database.GetDefaultProxyConfigRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDefaultProxyConfig", ctx) + ret0, _ := ret[0].(database.GetDefaultProxyConfigRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDefaultProxyConfig indicates an expected call of GetDefaultProxyConfig. +func (mr *MockStoreMockRecorder) GetDefaultProxyConfig(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDefaultProxyConfig", reflect.TypeOf((*MockStore)(nil).GetDefaultProxyConfig), ctx) +} + +// GetDeploymentDAUs mocks base method. +func (m *MockStore) GetDeploymentDAUs(ctx context.Context, tzOffset int32) ([]database.GetDeploymentDAUsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDeploymentDAUs", ctx, tzOffset) + ret0, _ := ret[0].([]database.GetDeploymentDAUsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDeploymentDAUs indicates an expected call of GetDeploymentDAUs. +func (mr *MockStoreMockRecorder) GetDeploymentDAUs(ctx, tzOffset any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentDAUs", reflect.TypeOf((*MockStore)(nil).GetDeploymentDAUs), ctx, tzOffset) +} + +// GetDeploymentID mocks base method. +func (m *MockStore) GetDeploymentID(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDeploymentID", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDeploymentID indicates an expected call of GetDeploymentID. +func (mr *MockStoreMockRecorder) GetDeploymentID(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentID", reflect.TypeOf((*MockStore)(nil).GetDeploymentID), ctx) +} + +// GetDeploymentWorkspaceAgentStats mocks base method. +func (m *MockStore) GetDeploymentWorkspaceAgentStats(ctx context.Context, createdAt time.Time) (database.GetDeploymentWorkspaceAgentStatsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDeploymentWorkspaceAgentStats", ctx, createdAt) + ret0, _ := ret[0].(database.GetDeploymentWorkspaceAgentStatsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDeploymentWorkspaceAgentStats indicates an expected call of GetDeploymentWorkspaceAgentStats. +func (mr *MockStoreMockRecorder) GetDeploymentWorkspaceAgentStats(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentWorkspaceAgentStats", reflect.TypeOf((*MockStore)(nil).GetDeploymentWorkspaceAgentStats), ctx, createdAt) +} + +// GetDeploymentWorkspaceAgentUsageStats mocks base method. +func (m *MockStore) GetDeploymentWorkspaceAgentUsageStats(ctx context.Context, createdAt time.Time) (database.GetDeploymentWorkspaceAgentUsageStatsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDeploymentWorkspaceAgentUsageStats", ctx, createdAt) + ret0, _ := ret[0].(database.GetDeploymentWorkspaceAgentUsageStatsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDeploymentWorkspaceAgentUsageStats indicates an expected call of GetDeploymentWorkspaceAgentUsageStats. +func (mr *MockStoreMockRecorder) GetDeploymentWorkspaceAgentUsageStats(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentWorkspaceAgentUsageStats", reflect.TypeOf((*MockStore)(nil).GetDeploymentWorkspaceAgentUsageStats), ctx, createdAt) +} + +// GetDeploymentWorkspaceStats mocks base method. +func (m *MockStore) GetDeploymentWorkspaceStats(ctx context.Context) (database.GetDeploymentWorkspaceStatsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDeploymentWorkspaceStats", ctx) + ret0, _ := ret[0].(database.GetDeploymentWorkspaceStatsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDeploymentWorkspaceStats indicates an expected call of GetDeploymentWorkspaceStats. +func (mr *MockStoreMockRecorder) GetDeploymentWorkspaceStats(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentWorkspaceStats", reflect.TypeOf((*MockStore)(nil).GetDeploymentWorkspaceStats), ctx) +} + +// GetEligibleProvisionerDaemonsByProvisionerJobIDs mocks base method. +func (m *MockStore) GetEligibleProvisionerDaemonsByProvisionerJobIDs(ctx context.Context, provisionerJobIds []uuid.UUID) ([]database.GetEligibleProvisionerDaemonsByProvisionerJobIDsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetEligibleProvisionerDaemonsByProvisionerJobIDs", ctx, provisionerJobIds) + ret0, _ := ret[0].([]database.GetEligibleProvisionerDaemonsByProvisionerJobIDsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetEligibleProvisionerDaemonsByProvisionerJobIDs indicates an expected call of GetEligibleProvisionerDaemonsByProvisionerJobIDs. +func (mr *MockStoreMockRecorder) GetEligibleProvisionerDaemonsByProvisionerJobIDs(ctx, provisionerJobIds any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEligibleProvisionerDaemonsByProvisionerJobIDs", reflect.TypeOf((*MockStore)(nil).GetEligibleProvisionerDaemonsByProvisionerJobIDs), ctx, provisionerJobIds) +} + +// GetExternalAuthLink mocks base method. +func (m *MockStore) GetExternalAuthLink(ctx context.Context, arg database.GetExternalAuthLinkParams) (database.ExternalAuthLink, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetExternalAuthLink", ctx, arg) + ret0, _ := ret[0].(database.ExternalAuthLink) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetExternalAuthLink indicates an expected call of GetExternalAuthLink. +func (mr *MockStoreMockRecorder) GetExternalAuthLink(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetExternalAuthLink", reflect.TypeOf((*MockStore)(nil).GetExternalAuthLink), ctx, arg) +} + +// GetExternalAuthLinksByUserID mocks base method. +func (m *MockStore) GetExternalAuthLinksByUserID(ctx context.Context, userID uuid.UUID) ([]database.ExternalAuthLink, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetExternalAuthLinksByUserID", ctx, userID) + ret0, _ := ret[0].([]database.ExternalAuthLink) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetExternalAuthLinksByUserID indicates an expected call of GetExternalAuthLinksByUserID. +func (mr *MockStoreMockRecorder) GetExternalAuthLinksByUserID(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetExternalAuthLinksByUserID", reflect.TypeOf((*MockStore)(nil).GetExternalAuthLinksByUserID), ctx, userID) +} + +// GetFailedWorkspaceBuildsByTemplateID mocks base method. +func (m *MockStore) GetFailedWorkspaceBuildsByTemplateID(ctx context.Context, arg database.GetFailedWorkspaceBuildsByTemplateIDParams) ([]database.GetFailedWorkspaceBuildsByTemplateIDRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetFailedWorkspaceBuildsByTemplateID", ctx, arg) + ret0, _ := ret[0].([]database.GetFailedWorkspaceBuildsByTemplateIDRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFailedWorkspaceBuildsByTemplateID indicates an expected call of GetFailedWorkspaceBuildsByTemplateID. +func (mr *MockStoreMockRecorder) GetFailedWorkspaceBuildsByTemplateID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFailedWorkspaceBuildsByTemplateID", reflect.TypeOf((*MockStore)(nil).GetFailedWorkspaceBuildsByTemplateID), ctx, arg) +} + +// GetFileByHashAndCreator mocks base method. +func (m *MockStore) GetFileByHashAndCreator(ctx context.Context, arg database.GetFileByHashAndCreatorParams) (database.File, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetFileByHashAndCreator", ctx, arg) + ret0, _ := ret[0].(database.File) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFileByHashAndCreator indicates an expected call of GetFileByHashAndCreator. +func (mr *MockStoreMockRecorder) GetFileByHashAndCreator(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFileByHashAndCreator", reflect.TypeOf((*MockStore)(nil).GetFileByHashAndCreator), ctx, arg) +} + +// GetFileByID mocks base method. +func (m *MockStore) GetFileByID(ctx context.Context, id uuid.UUID) (database.File, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetFileByID", ctx, id) + ret0, _ := ret[0].(database.File) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFileByID indicates an expected call of GetFileByID. +func (mr *MockStoreMockRecorder) GetFileByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFileByID", reflect.TypeOf((*MockStore)(nil).GetFileByID), ctx, id) +} + +// GetFileIDByTemplateVersionID mocks base method. +func (m *MockStore) GetFileIDByTemplateVersionID(ctx context.Context, templateVersionID uuid.UUID) (uuid.UUID, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetFileIDByTemplateVersionID", ctx, templateVersionID) + ret0, _ := ret[0].(uuid.UUID) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFileIDByTemplateVersionID indicates an expected call of GetFileIDByTemplateVersionID. +func (mr *MockStoreMockRecorder) GetFileIDByTemplateVersionID(ctx, templateVersionID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFileIDByTemplateVersionID", reflect.TypeOf((*MockStore)(nil).GetFileIDByTemplateVersionID), ctx, templateVersionID) +} + +// GetFileTemplates mocks base method. +func (m *MockStore) GetFileTemplates(ctx context.Context, fileID uuid.UUID) ([]database.GetFileTemplatesRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetFileTemplates", ctx, fileID) + ret0, _ := ret[0].([]database.GetFileTemplatesRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFileTemplates indicates an expected call of GetFileTemplates. +func (mr *MockStoreMockRecorder) GetFileTemplates(ctx, fileID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFileTemplates", reflect.TypeOf((*MockStore)(nil).GetFileTemplates), ctx, fileID) +} + +// GetFilteredInboxNotificationsByUserID mocks base method. +func (m *MockStore) GetFilteredInboxNotificationsByUserID(ctx context.Context, arg database.GetFilteredInboxNotificationsByUserIDParams) ([]database.InboxNotification, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetFilteredInboxNotificationsByUserID", ctx, arg) + ret0, _ := ret[0].([]database.InboxNotification) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFilteredInboxNotificationsByUserID indicates an expected call of GetFilteredInboxNotificationsByUserID. +func (mr *MockStoreMockRecorder) GetFilteredInboxNotificationsByUserID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFilteredInboxNotificationsByUserID", reflect.TypeOf((*MockStore)(nil).GetFilteredInboxNotificationsByUserID), ctx, arg) +} + +// GetGitSSHKey mocks base method. +func (m *MockStore) GetGitSSHKey(ctx context.Context, userID uuid.UUID) (database.GitSSHKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetGitSSHKey", ctx, userID) + ret0, _ := ret[0].(database.GitSSHKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetGitSSHKey indicates an expected call of GetGitSSHKey. +func (mr *MockStoreMockRecorder) GetGitSSHKey(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGitSSHKey", reflect.TypeOf((*MockStore)(nil).GetGitSSHKey), ctx, userID) +} + +// GetGroupByID mocks base method. +func (m *MockStore) GetGroupByID(ctx context.Context, id uuid.UUID) (database.Group, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetGroupByID", ctx, id) + ret0, _ := ret[0].(database.Group) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetGroupByID indicates an expected call of GetGroupByID. +func (mr *MockStoreMockRecorder) GetGroupByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupByID", reflect.TypeOf((*MockStore)(nil).GetGroupByID), ctx, id) +} + +// GetGroupByOrgAndName mocks base method. +func (m *MockStore) GetGroupByOrgAndName(ctx context.Context, arg database.GetGroupByOrgAndNameParams) (database.Group, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetGroupByOrgAndName", ctx, arg) + ret0, _ := ret[0].(database.Group) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetGroupByOrgAndName indicates an expected call of GetGroupByOrgAndName. +func (mr *MockStoreMockRecorder) GetGroupByOrgAndName(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupByOrgAndName", reflect.TypeOf((*MockStore)(nil).GetGroupByOrgAndName), ctx, arg) +} + +// GetGroupMembers mocks base method. +func (m *MockStore) GetGroupMembers(ctx context.Context, includeSystem bool) ([]database.GroupMember, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetGroupMembers", ctx, includeSystem) + ret0, _ := ret[0].([]database.GroupMember) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetGroupMembers indicates an expected call of GetGroupMembers. +func (mr *MockStoreMockRecorder) GetGroupMembers(ctx, includeSystem any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembers", reflect.TypeOf((*MockStore)(nil).GetGroupMembers), ctx, includeSystem) +} + +// GetGroupMembersByGroupID mocks base method. +func (m *MockStore) GetGroupMembersByGroupID(ctx context.Context, arg database.GetGroupMembersByGroupIDParams) ([]database.GroupMember, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetGroupMembersByGroupID", ctx, arg) + ret0, _ := ret[0].([]database.GroupMember) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetGroupMembersByGroupID indicates an expected call of GetGroupMembersByGroupID. +func (mr *MockStoreMockRecorder) GetGroupMembersByGroupID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembersByGroupID", reflect.TypeOf((*MockStore)(nil).GetGroupMembersByGroupID), ctx, arg) +} + +// GetGroupMembersCountByGroupID mocks base method. +func (m *MockStore) GetGroupMembersCountByGroupID(ctx context.Context, arg database.GetGroupMembersCountByGroupIDParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetGroupMembersCountByGroupID", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetGroupMembersCountByGroupID indicates an expected call of GetGroupMembersCountByGroupID. +func (mr *MockStoreMockRecorder) GetGroupMembersCountByGroupID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembersCountByGroupID", reflect.TypeOf((*MockStore)(nil).GetGroupMembersCountByGroupID), ctx, arg) +} + +// GetGroups mocks base method. +func (m *MockStore) GetGroups(ctx context.Context, arg database.GetGroupsParams) ([]database.GetGroupsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetGroups", ctx, arg) + ret0, _ := ret[0].([]database.GetGroupsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetGroups indicates an expected call of GetGroups. +func (mr *MockStoreMockRecorder) GetGroups(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroups", reflect.TypeOf((*MockStore)(nil).GetGroups), ctx, arg) +} + +// GetHealthSettings mocks base method. +func (m *MockStore) GetHealthSettings(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetHealthSettings", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetHealthSettings indicates an expected call of GetHealthSettings. +func (mr *MockStoreMockRecorder) GetHealthSettings(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthSettings", reflect.TypeOf((*MockStore)(nil).GetHealthSettings), ctx) +} + +// GetInboxNotificationByID mocks base method. +func (m *MockStore) GetInboxNotificationByID(ctx context.Context, id uuid.UUID) (database.InboxNotification, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetInboxNotificationByID", ctx, id) + ret0, _ := ret[0].(database.InboxNotification) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetInboxNotificationByID indicates an expected call of GetInboxNotificationByID. +func (mr *MockStoreMockRecorder) GetInboxNotificationByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInboxNotificationByID", reflect.TypeOf((*MockStore)(nil).GetInboxNotificationByID), ctx, id) +} + +// GetInboxNotificationsByUserID mocks base method. +func (m *MockStore) GetInboxNotificationsByUserID(ctx context.Context, arg database.GetInboxNotificationsByUserIDParams) ([]database.InboxNotification, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetInboxNotificationsByUserID", ctx, arg) + ret0, _ := ret[0].([]database.InboxNotification) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetInboxNotificationsByUserID indicates an expected call of GetInboxNotificationsByUserID. +func (mr *MockStoreMockRecorder) GetInboxNotificationsByUserID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInboxNotificationsByUserID", reflect.TypeOf((*MockStore)(nil).GetInboxNotificationsByUserID), ctx, arg) +} + +// GetLastUpdateCheck mocks base method. +func (m *MockStore) GetLastUpdateCheck(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLastUpdateCheck", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLastUpdateCheck indicates an expected call of GetLastUpdateCheck. +func (mr *MockStoreMockRecorder) GetLastUpdateCheck(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLastUpdateCheck", reflect.TypeOf((*MockStore)(nil).GetLastUpdateCheck), ctx) +} + +// GetLatestCryptoKeyByFeature mocks base method. +func (m *MockStore) GetLatestCryptoKeyByFeature(ctx context.Context, feature database.CryptoKeyFeature) (database.CryptoKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLatestCryptoKeyByFeature", ctx, feature) + ret0, _ := ret[0].(database.CryptoKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestCryptoKeyByFeature indicates an expected call of GetLatestCryptoKeyByFeature. +func (mr *MockStoreMockRecorder) GetLatestCryptoKeyByFeature(ctx, feature any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestCryptoKeyByFeature", reflect.TypeOf((*MockStore)(nil).GetLatestCryptoKeyByFeature), ctx, feature) +} + +// GetLatestWorkspaceAppStatusByAppID mocks base method. +func (m *MockStore) GetLatestWorkspaceAppStatusByAppID(ctx context.Context, appID uuid.UUID) (database.WorkspaceAppStatus, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLatestWorkspaceAppStatusByAppID", ctx, appID) + ret0, _ := ret[0].(database.WorkspaceAppStatus) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestWorkspaceAppStatusByAppID indicates an expected call of GetLatestWorkspaceAppStatusByAppID. +func (mr *MockStoreMockRecorder) GetLatestWorkspaceAppStatusByAppID(ctx, appID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestWorkspaceAppStatusByAppID", reflect.TypeOf((*MockStore)(nil).GetLatestWorkspaceAppStatusByAppID), ctx, appID) +} + +// GetLatestWorkspaceAppStatusesByWorkspaceIDs mocks base method. +func (m *MockStore) GetLatestWorkspaceAppStatusesByWorkspaceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAppStatus, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLatestWorkspaceAppStatusesByWorkspaceIDs", ctx, ids) + ret0, _ := ret[0].([]database.WorkspaceAppStatus) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestWorkspaceAppStatusesByWorkspaceIDs indicates an expected call of GetLatestWorkspaceAppStatusesByWorkspaceIDs. +func (mr *MockStoreMockRecorder) GetLatestWorkspaceAppStatusesByWorkspaceIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestWorkspaceAppStatusesByWorkspaceIDs", reflect.TypeOf((*MockStore)(nil).GetLatestWorkspaceAppStatusesByWorkspaceIDs), ctx, ids) +} + +// GetLatestWorkspaceBuildByWorkspaceID mocks base method. +func (m *MockStore) GetLatestWorkspaceBuildByWorkspaceID(ctx context.Context, workspaceID uuid.UUID) (database.WorkspaceBuild, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLatestWorkspaceBuildByWorkspaceID", ctx, workspaceID) + ret0, _ := ret[0].(database.WorkspaceBuild) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestWorkspaceBuildByWorkspaceID indicates an expected call of GetLatestWorkspaceBuildByWorkspaceID. +func (mr *MockStoreMockRecorder) GetLatestWorkspaceBuildByWorkspaceID(ctx, workspaceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestWorkspaceBuildByWorkspaceID", reflect.TypeOf((*MockStore)(nil).GetLatestWorkspaceBuildByWorkspaceID), ctx, workspaceID) +} + +// GetLatestWorkspaceBuildsByWorkspaceIDs mocks base method. +func (m *MockStore) GetLatestWorkspaceBuildsByWorkspaceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceBuild, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLatestWorkspaceBuildsByWorkspaceIDs", ctx, ids) + ret0, _ := ret[0].([]database.WorkspaceBuild) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestWorkspaceBuildsByWorkspaceIDs indicates an expected call of GetLatestWorkspaceBuildsByWorkspaceIDs. +func (mr *MockStoreMockRecorder) GetLatestWorkspaceBuildsByWorkspaceIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestWorkspaceBuildsByWorkspaceIDs", reflect.TypeOf((*MockStore)(nil).GetLatestWorkspaceBuildsByWorkspaceIDs), ctx, ids) +} + +// GetLicenseByID mocks base method. +func (m *MockStore) GetLicenseByID(ctx context.Context, id int32) (database.License, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLicenseByID", ctx, id) + ret0, _ := ret[0].(database.License) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLicenseByID indicates an expected call of GetLicenseByID. +func (mr *MockStoreMockRecorder) GetLicenseByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLicenseByID", reflect.TypeOf((*MockStore)(nil).GetLicenseByID), ctx, id) +} + +// GetLicenses mocks base method. +func (m *MockStore) GetLicenses(ctx context.Context) ([]database.License, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLicenses", ctx) + ret0, _ := ret[0].([]database.License) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLicenses indicates an expected call of GetLicenses. +func (mr *MockStoreMockRecorder) GetLicenses(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLicenses", reflect.TypeOf((*MockStore)(nil).GetLicenses), ctx) +} + +// GetLogoURL mocks base method. +func (m *MockStore) GetLogoURL(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLogoURL", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLogoURL indicates an expected call of GetLogoURL. +func (mr *MockStoreMockRecorder) GetLogoURL(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLogoURL", reflect.TypeOf((*MockStore)(nil).GetLogoURL), ctx) +} + +// GetNotificationMessagesByStatus mocks base method. +func (m *MockStore) GetNotificationMessagesByStatus(ctx context.Context, arg database.GetNotificationMessagesByStatusParams) ([]database.NotificationMessage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetNotificationMessagesByStatus", ctx, arg) + ret0, _ := ret[0].([]database.NotificationMessage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetNotificationMessagesByStatus indicates an expected call of GetNotificationMessagesByStatus. +func (mr *MockStoreMockRecorder) GetNotificationMessagesByStatus(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNotificationMessagesByStatus", reflect.TypeOf((*MockStore)(nil).GetNotificationMessagesByStatus), ctx, arg) +} + +// GetNotificationReportGeneratorLogByTemplate mocks base method. +func (m *MockStore) GetNotificationReportGeneratorLogByTemplate(ctx context.Context, templateID uuid.UUID) (database.NotificationReportGeneratorLog, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetNotificationReportGeneratorLogByTemplate", ctx, templateID) + ret0, _ := ret[0].(database.NotificationReportGeneratorLog) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetNotificationReportGeneratorLogByTemplate indicates an expected call of GetNotificationReportGeneratorLogByTemplate. +func (mr *MockStoreMockRecorder) GetNotificationReportGeneratorLogByTemplate(ctx, templateID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNotificationReportGeneratorLogByTemplate", reflect.TypeOf((*MockStore)(nil).GetNotificationReportGeneratorLogByTemplate), ctx, templateID) +} + +// GetNotificationTemplateByID mocks base method. +func (m *MockStore) GetNotificationTemplateByID(ctx context.Context, id uuid.UUID) (database.NotificationTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetNotificationTemplateByID", ctx, id) + ret0, _ := ret[0].(database.NotificationTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetNotificationTemplateByID indicates an expected call of GetNotificationTemplateByID. +func (mr *MockStoreMockRecorder) GetNotificationTemplateByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNotificationTemplateByID", reflect.TypeOf((*MockStore)(nil).GetNotificationTemplateByID), ctx, id) +} + +// GetNotificationTemplatesByKind mocks base method. +func (m *MockStore) GetNotificationTemplatesByKind(ctx context.Context, kind database.NotificationTemplateKind) ([]database.NotificationTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetNotificationTemplatesByKind", ctx, kind) + ret0, _ := ret[0].([]database.NotificationTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetNotificationTemplatesByKind indicates an expected call of GetNotificationTemplatesByKind. +func (mr *MockStoreMockRecorder) GetNotificationTemplatesByKind(ctx, kind any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNotificationTemplatesByKind", reflect.TypeOf((*MockStore)(nil).GetNotificationTemplatesByKind), ctx, kind) +} + +// GetNotificationsSettings mocks base method. +func (m *MockStore) GetNotificationsSettings(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetNotificationsSettings", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetNotificationsSettings indicates an expected call of GetNotificationsSettings. +func (mr *MockStoreMockRecorder) GetNotificationsSettings(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNotificationsSettings", reflect.TypeOf((*MockStore)(nil).GetNotificationsSettings), ctx) +} + +// GetOAuth2GithubDefaultEligible mocks base method. +func (m *MockStore) GetOAuth2GithubDefaultEligible(ctx context.Context) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2GithubDefaultEligible", ctx) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2GithubDefaultEligible indicates an expected call of GetOAuth2GithubDefaultEligible. +func (mr *MockStoreMockRecorder) GetOAuth2GithubDefaultEligible(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2GithubDefaultEligible", reflect.TypeOf((*MockStore)(nil).GetOAuth2GithubDefaultEligible), ctx) +} + +// GetOAuth2ProviderAppByClientID mocks base method. +func (m *MockStore) GetOAuth2ProviderAppByClientID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderAppByClientID", ctx, id) + ret0, _ := ret[0].(database.OAuth2ProviderApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderAppByClientID indicates an expected call of GetOAuth2ProviderAppByClientID. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppByClientID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppByClientID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppByClientID), ctx, id) +} + +// GetOAuth2ProviderAppByID mocks base method. +func (m *MockStore) GetOAuth2ProviderAppByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderAppByID", ctx, id) + ret0, _ := ret[0].(database.OAuth2ProviderApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderAppByID indicates an expected call of GetOAuth2ProviderAppByID. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppByID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppByID), ctx, id) +} + +// GetOAuth2ProviderAppByRegistrationToken mocks base method. +func (m *MockStore) GetOAuth2ProviderAppByRegistrationToken(ctx context.Context, registrationAccessToken []byte) (database.OAuth2ProviderApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderAppByRegistrationToken", ctx, registrationAccessToken) + ret0, _ := ret[0].(database.OAuth2ProviderApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderAppByRegistrationToken indicates an expected call of GetOAuth2ProviderAppByRegistrationToken. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppByRegistrationToken(ctx, registrationAccessToken any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppByRegistrationToken", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppByRegistrationToken), ctx, registrationAccessToken) +} + +// GetOAuth2ProviderAppCodeByID mocks base method. +func (m *MockStore) GetOAuth2ProviderAppCodeByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderAppCode, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderAppCodeByID", ctx, id) + ret0, _ := ret[0].(database.OAuth2ProviderAppCode) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderAppCodeByID indicates an expected call of GetOAuth2ProviderAppCodeByID. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppCodeByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppCodeByID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppCodeByID), ctx, id) +} + +// GetOAuth2ProviderAppCodeByPrefix mocks base method. +func (m *MockStore) GetOAuth2ProviderAppCodeByPrefix(ctx context.Context, secretPrefix []byte) (database.OAuth2ProviderAppCode, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderAppCodeByPrefix", ctx, secretPrefix) + ret0, _ := ret[0].(database.OAuth2ProviderAppCode) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderAppCodeByPrefix indicates an expected call of GetOAuth2ProviderAppCodeByPrefix. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppCodeByPrefix(ctx, secretPrefix any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppCodeByPrefix", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppCodeByPrefix), ctx, secretPrefix) +} + +// GetOAuth2ProviderAppSecretByID mocks base method. +func (m *MockStore) GetOAuth2ProviderAppSecretByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderAppSecret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderAppSecretByID", ctx, id) + ret0, _ := ret[0].(database.OAuth2ProviderAppSecret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderAppSecretByID indicates an expected call of GetOAuth2ProviderAppSecretByID. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppSecretByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppSecretByID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppSecretByID), ctx, id) +} + +// GetOAuth2ProviderAppSecretByPrefix mocks base method. +func (m *MockStore) GetOAuth2ProviderAppSecretByPrefix(ctx context.Context, secretPrefix []byte) (database.OAuth2ProviderAppSecret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderAppSecretByPrefix", ctx, secretPrefix) + ret0, _ := ret[0].(database.OAuth2ProviderAppSecret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderAppSecretByPrefix indicates an expected call of GetOAuth2ProviderAppSecretByPrefix. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppSecretByPrefix(ctx, secretPrefix any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppSecretByPrefix", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppSecretByPrefix), ctx, secretPrefix) +} + +// GetOAuth2ProviderAppSecretsByAppID mocks base method. +func (m *MockStore) GetOAuth2ProviderAppSecretsByAppID(ctx context.Context, appID uuid.UUID) ([]database.OAuth2ProviderAppSecret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderAppSecretsByAppID", ctx, appID) + ret0, _ := ret[0].([]database.OAuth2ProviderAppSecret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderAppSecretsByAppID indicates an expected call of GetOAuth2ProviderAppSecretsByAppID. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppSecretsByAppID(ctx, appID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppSecretsByAppID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppSecretsByAppID), ctx, appID) +} + +// GetOAuth2ProviderAppTokenByAPIKeyID mocks base method. +func (m *MockStore) GetOAuth2ProviderAppTokenByAPIKeyID(ctx context.Context, apiKeyID string) (database.OAuth2ProviderAppToken, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderAppTokenByAPIKeyID", ctx, apiKeyID) + ret0, _ := ret[0].(database.OAuth2ProviderAppToken) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderAppTokenByAPIKeyID indicates an expected call of GetOAuth2ProviderAppTokenByAPIKeyID. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppTokenByAPIKeyID(ctx, apiKeyID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppTokenByAPIKeyID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppTokenByAPIKeyID), ctx, apiKeyID) +} + +// GetOAuth2ProviderAppTokenByPrefix mocks base method. +func (m *MockStore) GetOAuth2ProviderAppTokenByPrefix(ctx context.Context, hashPrefix []byte) (database.OAuth2ProviderAppToken, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderAppTokenByPrefix", ctx, hashPrefix) + ret0, _ := ret[0].(database.OAuth2ProviderAppToken) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderAppTokenByPrefix indicates an expected call of GetOAuth2ProviderAppTokenByPrefix. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppTokenByPrefix(ctx, hashPrefix any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppTokenByPrefix", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppTokenByPrefix), ctx, hashPrefix) +} + +// GetOAuth2ProviderApps mocks base method. +func (m *MockStore) GetOAuth2ProviderApps(ctx context.Context) ([]database.OAuth2ProviderApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderApps", ctx) + ret0, _ := ret[0].([]database.OAuth2ProviderApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderApps indicates an expected call of GetOAuth2ProviderApps. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderApps(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderApps", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderApps), ctx) +} + +// GetOAuth2ProviderAppsByUserID mocks base method. +func (m *MockStore) GetOAuth2ProviderAppsByUserID(ctx context.Context, userID uuid.UUID) ([]database.GetOAuth2ProviderAppsByUserIDRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuth2ProviderAppsByUserID", ctx, userID) + ret0, _ := ret[0].([]database.GetOAuth2ProviderAppsByUserIDRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuth2ProviderAppsByUserID indicates an expected call of GetOAuth2ProviderAppsByUserID. +func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppsByUserID(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppsByUserID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppsByUserID), ctx, userID) +} + +// GetOAuthSigningKey mocks base method. +func (m *MockStore) GetOAuthSigningKey(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOAuthSigningKey", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOAuthSigningKey indicates an expected call of GetOAuthSigningKey. +func (mr *MockStoreMockRecorder) GetOAuthSigningKey(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuthSigningKey", reflect.TypeOf((*MockStore)(nil).GetOAuthSigningKey), ctx) +} + +// GetOrganizationByID mocks base method. +func (m *MockStore) GetOrganizationByID(ctx context.Context, id uuid.UUID) (database.Organization, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOrganizationByID", ctx, id) + ret0, _ := ret[0].(database.Organization) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOrganizationByID indicates an expected call of GetOrganizationByID. +func (mr *MockStoreMockRecorder) GetOrganizationByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationByID", reflect.TypeOf((*MockStore)(nil).GetOrganizationByID), ctx, id) +} + +// GetOrganizationByName mocks base method. +func (m *MockStore) GetOrganizationByName(ctx context.Context, arg database.GetOrganizationByNameParams) (database.Organization, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOrganizationByName", ctx, arg) + ret0, _ := ret[0].(database.Organization) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOrganizationByName indicates an expected call of GetOrganizationByName. +func (mr *MockStoreMockRecorder) GetOrganizationByName(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationByName", reflect.TypeOf((*MockStore)(nil).GetOrganizationByName), ctx, arg) +} + +// GetOrganizationIDsByMemberIDs mocks base method. +func (m *MockStore) GetOrganizationIDsByMemberIDs(ctx context.Context, ids []uuid.UUID) ([]database.GetOrganizationIDsByMemberIDsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOrganizationIDsByMemberIDs", ctx, ids) + ret0, _ := ret[0].([]database.GetOrganizationIDsByMemberIDsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOrganizationIDsByMemberIDs indicates an expected call of GetOrganizationIDsByMemberIDs. +func (mr *MockStoreMockRecorder) GetOrganizationIDsByMemberIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationIDsByMemberIDs", reflect.TypeOf((*MockStore)(nil).GetOrganizationIDsByMemberIDs), ctx, ids) +} + +// GetOrganizationResourceCountByID mocks base method. +func (m *MockStore) GetOrganizationResourceCountByID(ctx context.Context, organizationID uuid.UUID) (database.GetOrganizationResourceCountByIDRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOrganizationResourceCountByID", ctx, organizationID) + ret0, _ := ret[0].(database.GetOrganizationResourceCountByIDRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOrganizationResourceCountByID indicates an expected call of GetOrganizationResourceCountByID. +func (mr *MockStoreMockRecorder) GetOrganizationResourceCountByID(ctx, organizationID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationResourceCountByID", reflect.TypeOf((*MockStore)(nil).GetOrganizationResourceCountByID), ctx, organizationID) +} + +// GetOrganizations mocks base method. +func (m *MockStore) GetOrganizations(ctx context.Context, arg database.GetOrganizationsParams) ([]database.Organization, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOrganizations", ctx, arg) + ret0, _ := ret[0].([]database.Organization) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOrganizations indicates an expected call of GetOrganizations. +func (mr *MockStoreMockRecorder) GetOrganizations(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizations", reflect.TypeOf((*MockStore)(nil).GetOrganizations), ctx, arg) +} + +// GetOrganizationsByUserID mocks base method. +func (m *MockStore) GetOrganizationsByUserID(ctx context.Context, arg database.GetOrganizationsByUserIDParams) ([]database.Organization, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOrganizationsByUserID", ctx, arg) + ret0, _ := ret[0].([]database.Organization) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOrganizationsByUserID indicates an expected call of GetOrganizationsByUserID. +func (mr *MockStoreMockRecorder) GetOrganizationsByUserID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationsByUserID", reflect.TypeOf((*MockStore)(nil).GetOrganizationsByUserID), ctx, arg) +} + +// GetOrganizationsWithPrebuildStatus mocks base method. +func (m *MockStore) GetOrganizationsWithPrebuildStatus(ctx context.Context, arg database.GetOrganizationsWithPrebuildStatusParams) ([]database.GetOrganizationsWithPrebuildStatusRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOrganizationsWithPrebuildStatus", ctx, arg) + ret0, _ := ret[0].([]database.GetOrganizationsWithPrebuildStatusRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOrganizationsWithPrebuildStatus indicates an expected call of GetOrganizationsWithPrebuildStatus. +func (mr *MockStoreMockRecorder) GetOrganizationsWithPrebuildStatus(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationsWithPrebuildStatus", reflect.TypeOf((*MockStore)(nil).GetOrganizationsWithPrebuildStatus), ctx, arg) +} + +// GetParameterSchemasByJobID mocks base method. +func (m *MockStore) GetParameterSchemasByJobID(ctx context.Context, jobID uuid.UUID) ([]database.ParameterSchema, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetParameterSchemasByJobID", ctx, jobID) + ret0, _ := ret[0].([]database.ParameterSchema) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetParameterSchemasByJobID indicates an expected call of GetParameterSchemasByJobID. +func (mr *MockStoreMockRecorder) GetParameterSchemasByJobID(ctx, jobID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetParameterSchemasByJobID", reflect.TypeOf((*MockStore)(nil).GetParameterSchemasByJobID), ctx, jobID) +} + +// GetPrebuildMetrics mocks base method. +func (m *MockStore) GetPrebuildMetrics(ctx context.Context) ([]database.GetPrebuildMetricsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPrebuildMetrics", ctx) + ret0, _ := ret[0].([]database.GetPrebuildMetricsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPrebuildMetrics indicates an expected call of GetPrebuildMetrics. +func (mr *MockStoreMockRecorder) GetPrebuildMetrics(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPrebuildMetrics", reflect.TypeOf((*MockStore)(nil).GetPrebuildMetrics), ctx) +} + +// GetPrebuildsSettings mocks base method. +func (m *MockStore) GetPrebuildsSettings(ctx context.Context) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPrebuildsSettings", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPrebuildsSettings indicates an expected call of GetPrebuildsSettings. +func (mr *MockStoreMockRecorder) GetPrebuildsSettings(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPrebuildsSettings", reflect.TypeOf((*MockStore)(nil).GetPrebuildsSettings), ctx) +} + +// GetPresetByID mocks base method. +func (m *MockStore) GetPresetByID(ctx context.Context, presetID uuid.UUID) (database.GetPresetByIDRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPresetByID", ctx, presetID) + ret0, _ := ret[0].(database.GetPresetByIDRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPresetByID indicates an expected call of GetPresetByID. +func (mr *MockStoreMockRecorder) GetPresetByID(ctx, presetID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetByID", reflect.TypeOf((*MockStore)(nil).GetPresetByID), ctx, presetID) +} + +// GetPresetByWorkspaceBuildID mocks base method. +func (m *MockStore) GetPresetByWorkspaceBuildID(ctx context.Context, workspaceBuildID uuid.UUID) (database.TemplateVersionPreset, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPresetByWorkspaceBuildID", ctx, workspaceBuildID) + ret0, _ := ret[0].(database.TemplateVersionPreset) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPresetByWorkspaceBuildID indicates an expected call of GetPresetByWorkspaceBuildID. +func (mr *MockStoreMockRecorder) GetPresetByWorkspaceBuildID(ctx, workspaceBuildID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetByWorkspaceBuildID", reflect.TypeOf((*MockStore)(nil).GetPresetByWorkspaceBuildID), ctx, workspaceBuildID) +} + +// GetPresetParametersByPresetID mocks base method. +func (m *MockStore) GetPresetParametersByPresetID(ctx context.Context, presetID uuid.UUID) ([]database.TemplateVersionPresetParameter, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPresetParametersByPresetID", ctx, presetID) + ret0, _ := ret[0].([]database.TemplateVersionPresetParameter) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPresetParametersByPresetID indicates an expected call of GetPresetParametersByPresetID. +func (mr *MockStoreMockRecorder) GetPresetParametersByPresetID(ctx, presetID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetParametersByPresetID", reflect.TypeOf((*MockStore)(nil).GetPresetParametersByPresetID), ctx, presetID) +} + +// GetPresetParametersByTemplateVersionID mocks base method. +func (m *MockStore) GetPresetParametersByTemplateVersionID(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionPresetParameter, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPresetParametersByTemplateVersionID", ctx, templateVersionID) + ret0, _ := ret[0].([]database.TemplateVersionPresetParameter) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPresetParametersByTemplateVersionID indicates an expected call of GetPresetParametersByTemplateVersionID. +func (mr *MockStoreMockRecorder) GetPresetParametersByTemplateVersionID(ctx, templateVersionID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetParametersByTemplateVersionID", reflect.TypeOf((*MockStore)(nil).GetPresetParametersByTemplateVersionID), ctx, templateVersionID) +} + +// GetPresetsAtFailureLimit mocks base method. +func (m *MockStore) GetPresetsAtFailureLimit(ctx context.Context, hardLimit int64) ([]database.GetPresetsAtFailureLimitRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPresetsAtFailureLimit", ctx, hardLimit) + ret0, _ := ret[0].([]database.GetPresetsAtFailureLimitRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPresetsAtFailureLimit indicates an expected call of GetPresetsAtFailureLimit. +func (mr *MockStoreMockRecorder) GetPresetsAtFailureLimit(ctx, hardLimit any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetsAtFailureLimit", reflect.TypeOf((*MockStore)(nil).GetPresetsAtFailureLimit), ctx, hardLimit) +} + +// GetPresetsBackoff mocks base method. +func (m *MockStore) GetPresetsBackoff(ctx context.Context, lookback time.Time) ([]database.GetPresetsBackoffRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPresetsBackoff", ctx, lookback) + ret0, _ := ret[0].([]database.GetPresetsBackoffRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPresetsBackoff indicates an expected call of GetPresetsBackoff. +func (mr *MockStoreMockRecorder) GetPresetsBackoff(ctx, lookback any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetsBackoff", reflect.TypeOf((*MockStore)(nil).GetPresetsBackoff), ctx, lookback) +} + +// GetPresetsByTemplateVersionID mocks base method. +func (m *MockStore) GetPresetsByTemplateVersionID(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionPreset, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPresetsByTemplateVersionID", ctx, templateVersionID) + ret0, _ := ret[0].([]database.TemplateVersionPreset) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPresetsByTemplateVersionID indicates an expected call of GetPresetsByTemplateVersionID. +func (mr *MockStoreMockRecorder) GetPresetsByTemplateVersionID(ctx, templateVersionID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetsByTemplateVersionID", reflect.TypeOf((*MockStore)(nil).GetPresetsByTemplateVersionID), ctx, templateVersionID) +} + +// GetPreviousTemplateVersion mocks base method. +func (m *MockStore) GetPreviousTemplateVersion(ctx context.Context, arg database.GetPreviousTemplateVersionParams) (database.TemplateVersion, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPreviousTemplateVersion", ctx, arg) + ret0, _ := ret[0].(database.TemplateVersion) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPreviousTemplateVersion indicates an expected call of GetPreviousTemplateVersion. +func (mr *MockStoreMockRecorder) GetPreviousTemplateVersion(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPreviousTemplateVersion", reflect.TypeOf((*MockStore)(nil).GetPreviousTemplateVersion), ctx, arg) +} + +// GetProvisionerDaemons mocks base method. +func (m *MockStore) GetProvisionerDaemons(ctx context.Context) ([]database.ProvisionerDaemon, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerDaemons", ctx) + ret0, _ := ret[0].([]database.ProvisionerDaemon) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerDaemons indicates an expected call of GetProvisionerDaemons. +func (mr *MockStoreMockRecorder) GetProvisionerDaemons(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerDaemons", reflect.TypeOf((*MockStore)(nil).GetProvisionerDaemons), ctx) +} + +// GetProvisionerDaemonsByOrganization mocks base method. +func (m *MockStore) GetProvisionerDaemonsByOrganization(ctx context.Context, arg database.GetProvisionerDaemonsByOrganizationParams) ([]database.ProvisionerDaemon, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerDaemonsByOrganization", ctx, arg) + ret0, _ := ret[0].([]database.ProvisionerDaemon) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerDaemonsByOrganization indicates an expected call of GetProvisionerDaemonsByOrganization. +func (mr *MockStoreMockRecorder) GetProvisionerDaemonsByOrganization(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerDaemonsByOrganization", reflect.TypeOf((*MockStore)(nil).GetProvisionerDaemonsByOrganization), ctx, arg) +} + +// GetProvisionerDaemonsWithStatusByOrganization mocks base method. +func (m *MockStore) GetProvisionerDaemonsWithStatusByOrganization(ctx context.Context, arg database.GetProvisionerDaemonsWithStatusByOrganizationParams) ([]database.GetProvisionerDaemonsWithStatusByOrganizationRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerDaemonsWithStatusByOrganization", ctx, arg) + ret0, _ := ret[0].([]database.GetProvisionerDaemonsWithStatusByOrganizationRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerDaemonsWithStatusByOrganization indicates an expected call of GetProvisionerDaemonsWithStatusByOrganization. +func (mr *MockStoreMockRecorder) GetProvisionerDaemonsWithStatusByOrganization(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerDaemonsWithStatusByOrganization", reflect.TypeOf((*MockStore)(nil).GetProvisionerDaemonsWithStatusByOrganization), ctx, arg) +} + +// GetProvisionerJobByID mocks base method. +func (m *MockStore) GetProvisionerJobByID(ctx context.Context, id uuid.UUID) (database.ProvisionerJob, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerJobByID", ctx, id) + ret0, _ := ret[0].(database.ProvisionerJob) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerJobByID indicates an expected call of GetProvisionerJobByID. +func (mr *MockStoreMockRecorder) GetProvisionerJobByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobByID", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobByID), ctx, id) +} + +// GetProvisionerJobByIDForUpdate mocks base method. +func (m *MockStore) GetProvisionerJobByIDForUpdate(ctx context.Context, id uuid.UUID) (database.ProvisionerJob, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerJobByIDForUpdate", ctx, id) + ret0, _ := ret[0].(database.ProvisionerJob) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerJobByIDForUpdate indicates an expected call of GetProvisionerJobByIDForUpdate. +func (mr *MockStoreMockRecorder) GetProvisionerJobByIDForUpdate(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobByIDForUpdate", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobByIDForUpdate), ctx, id) +} + +// GetProvisionerJobByIDWithLock mocks base method. +func (m *MockStore) GetProvisionerJobByIDWithLock(ctx context.Context, id uuid.UUID) (database.ProvisionerJob, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerJobByIDWithLock", ctx, id) + ret0, _ := ret[0].(database.ProvisionerJob) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerJobByIDWithLock indicates an expected call of GetProvisionerJobByIDWithLock. +func (mr *MockStoreMockRecorder) GetProvisionerJobByIDWithLock(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobByIDWithLock", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobByIDWithLock), ctx, id) +} + +// GetProvisionerJobTimingsByJobID mocks base method. +func (m *MockStore) GetProvisionerJobTimingsByJobID(ctx context.Context, jobID uuid.UUID) ([]database.ProvisionerJobTiming, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerJobTimingsByJobID", ctx, jobID) + ret0, _ := ret[0].([]database.ProvisionerJobTiming) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerJobTimingsByJobID indicates an expected call of GetProvisionerJobTimingsByJobID. +func (mr *MockStoreMockRecorder) GetProvisionerJobTimingsByJobID(ctx, jobID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobTimingsByJobID", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobTimingsByJobID), ctx, jobID) +} + +// GetProvisionerJobsByIDs mocks base method. +func (m *MockStore) GetProvisionerJobsByIDs(ctx context.Context, ids []uuid.UUID) ([]database.ProvisionerJob, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerJobsByIDs", ctx, ids) + ret0, _ := ret[0].([]database.ProvisionerJob) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerJobsByIDs indicates an expected call of GetProvisionerJobsByIDs. +func (mr *MockStoreMockRecorder) GetProvisionerJobsByIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobsByIDs", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobsByIDs), ctx, ids) +} + +// GetProvisionerJobsByIDsWithQueuePosition mocks base method. +func (m *MockStore) GetProvisionerJobsByIDsWithQueuePosition(ctx context.Context, arg database.GetProvisionerJobsByIDsWithQueuePositionParams) ([]database.GetProvisionerJobsByIDsWithQueuePositionRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerJobsByIDsWithQueuePosition", ctx, arg) + ret0, _ := ret[0].([]database.GetProvisionerJobsByIDsWithQueuePositionRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerJobsByIDsWithQueuePosition indicates an expected call of GetProvisionerJobsByIDsWithQueuePosition. +func (mr *MockStoreMockRecorder) GetProvisionerJobsByIDsWithQueuePosition(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobsByIDsWithQueuePosition", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobsByIDsWithQueuePosition), ctx, arg) +} + +// GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner mocks base method. +func (m *MockStore) GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner(ctx context.Context, arg database.GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisionerParams) ([]database.GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisionerRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner", ctx, arg) + ret0, _ := ret[0].([]database.GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisionerRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner indicates an expected call of GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner. +func (mr *MockStoreMockRecorder) GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner), ctx, arg) +} + +// GetProvisionerJobsCreatedAfter mocks base method. +func (m *MockStore) GetProvisionerJobsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.ProvisionerJob, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerJobsCreatedAfter", ctx, createdAt) + ret0, _ := ret[0].([]database.ProvisionerJob) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerJobsCreatedAfter indicates an expected call of GetProvisionerJobsCreatedAfter. +func (mr *MockStoreMockRecorder) GetProvisionerJobsCreatedAfter(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobsCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobsCreatedAfter), ctx, createdAt) +} + +// GetProvisionerJobsToBeReaped mocks base method. +func (m *MockStore) GetProvisionerJobsToBeReaped(ctx context.Context, arg database.GetProvisionerJobsToBeReapedParams) ([]database.ProvisionerJob, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerJobsToBeReaped", ctx, arg) + ret0, _ := ret[0].([]database.ProvisionerJob) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerJobsToBeReaped indicates an expected call of GetProvisionerJobsToBeReaped. +func (mr *MockStoreMockRecorder) GetProvisionerJobsToBeReaped(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobsToBeReaped", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobsToBeReaped), ctx, arg) +} + +// GetProvisionerKeyByHashedSecret mocks base method. +func (m *MockStore) GetProvisionerKeyByHashedSecret(ctx context.Context, hashedSecret []byte) (database.ProvisionerKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerKeyByHashedSecret", ctx, hashedSecret) + ret0, _ := ret[0].(database.ProvisionerKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerKeyByHashedSecret indicates an expected call of GetProvisionerKeyByHashedSecret. +func (mr *MockStoreMockRecorder) GetProvisionerKeyByHashedSecret(ctx, hashedSecret any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerKeyByHashedSecret", reflect.TypeOf((*MockStore)(nil).GetProvisionerKeyByHashedSecret), ctx, hashedSecret) +} + +// GetProvisionerKeyByID mocks base method. +func (m *MockStore) GetProvisionerKeyByID(ctx context.Context, id uuid.UUID) (database.ProvisionerKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerKeyByID", ctx, id) + ret0, _ := ret[0].(database.ProvisionerKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerKeyByID indicates an expected call of GetProvisionerKeyByID. +func (mr *MockStoreMockRecorder) GetProvisionerKeyByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerKeyByID", reflect.TypeOf((*MockStore)(nil).GetProvisionerKeyByID), ctx, id) +} + +// GetProvisionerKeyByName mocks base method. +func (m *MockStore) GetProvisionerKeyByName(ctx context.Context, arg database.GetProvisionerKeyByNameParams) (database.ProvisionerKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerKeyByName", ctx, arg) + ret0, _ := ret[0].(database.ProvisionerKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerKeyByName indicates an expected call of GetProvisionerKeyByName. +func (mr *MockStoreMockRecorder) GetProvisionerKeyByName(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerKeyByName", reflect.TypeOf((*MockStore)(nil).GetProvisionerKeyByName), ctx, arg) +} + +// GetProvisionerLogsAfterID mocks base method. +func (m *MockStore) GetProvisionerLogsAfterID(ctx context.Context, arg database.GetProvisionerLogsAfterIDParams) ([]database.ProvisionerJobLog, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProvisionerLogsAfterID", ctx, arg) + ret0, _ := ret[0].([]database.ProvisionerJobLog) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProvisionerLogsAfterID indicates an expected call of GetProvisionerLogsAfterID. +func (mr *MockStoreMockRecorder) GetProvisionerLogsAfterID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerLogsAfterID", reflect.TypeOf((*MockStore)(nil).GetProvisionerLogsAfterID), ctx, arg) +} + +// GetQuotaAllowanceForUser mocks base method. +func (m *MockStore) GetQuotaAllowanceForUser(ctx context.Context, arg database.GetQuotaAllowanceForUserParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetQuotaAllowanceForUser", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetQuotaAllowanceForUser indicates an expected call of GetQuotaAllowanceForUser. +func (mr *MockStoreMockRecorder) GetQuotaAllowanceForUser(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQuotaAllowanceForUser", reflect.TypeOf((*MockStore)(nil).GetQuotaAllowanceForUser), ctx, arg) +} + +// GetQuotaConsumedForUser mocks base method. +func (m *MockStore) GetQuotaConsumedForUser(ctx context.Context, arg database.GetQuotaConsumedForUserParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetQuotaConsumedForUser", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetQuotaConsumedForUser indicates an expected call of GetQuotaConsumedForUser. +func (mr *MockStoreMockRecorder) GetQuotaConsumedForUser(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQuotaConsumedForUser", reflect.TypeOf((*MockStore)(nil).GetQuotaConsumedForUser), ctx, arg) +} + +// GetRegularWorkspaceCreateMetrics mocks base method. +func (m *MockStore) GetRegularWorkspaceCreateMetrics(ctx context.Context) ([]database.GetRegularWorkspaceCreateMetricsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetRegularWorkspaceCreateMetrics", ctx) + ret0, _ := ret[0].([]database.GetRegularWorkspaceCreateMetricsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetRegularWorkspaceCreateMetrics indicates an expected call of GetRegularWorkspaceCreateMetrics. +func (mr *MockStoreMockRecorder) GetRegularWorkspaceCreateMetrics(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRegularWorkspaceCreateMetrics", reflect.TypeOf((*MockStore)(nil).GetRegularWorkspaceCreateMetrics), ctx) +} + +// GetReplicaByID mocks base method. +func (m *MockStore) GetReplicaByID(ctx context.Context, id uuid.UUID) (database.Replica, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetReplicaByID", ctx, id) + ret0, _ := ret[0].(database.Replica) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetReplicaByID indicates an expected call of GetReplicaByID. +func (mr *MockStoreMockRecorder) GetReplicaByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReplicaByID", reflect.TypeOf((*MockStore)(nil).GetReplicaByID), ctx, id) +} + +// GetReplicasUpdatedAfter mocks base method. +func (m *MockStore) GetReplicasUpdatedAfter(ctx context.Context, updatedAt time.Time) ([]database.Replica, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetReplicasUpdatedAfter", ctx, updatedAt) + ret0, _ := ret[0].([]database.Replica) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetReplicasUpdatedAfter indicates an expected call of GetReplicasUpdatedAfter. +func (mr *MockStoreMockRecorder) GetReplicasUpdatedAfter(ctx, updatedAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReplicasUpdatedAfter", reflect.TypeOf((*MockStore)(nil).GetReplicasUpdatedAfter), ctx, updatedAt) +} + +// GetRunningPrebuiltWorkspaces mocks base method. +func (m *MockStore) GetRunningPrebuiltWorkspaces(ctx context.Context) ([]database.GetRunningPrebuiltWorkspacesRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetRunningPrebuiltWorkspaces", ctx) + ret0, _ := ret[0].([]database.GetRunningPrebuiltWorkspacesRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetRunningPrebuiltWorkspaces indicates an expected call of GetRunningPrebuiltWorkspaces. +func (mr *MockStoreMockRecorder) GetRunningPrebuiltWorkspaces(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRunningPrebuiltWorkspaces", reflect.TypeOf((*MockStore)(nil).GetRunningPrebuiltWorkspaces), ctx) +} + +// GetRuntimeConfig mocks base method. +func (m *MockStore) GetRuntimeConfig(ctx context.Context, key string) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetRuntimeConfig", ctx, key) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetRuntimeConfig indicates an expected call of GetRuntimeConfig. +func (mr *MockStoreMockRecorder) GetRuntimeConfig(ctx, key any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRuntimeConfig", reflect.TypeOf((*MockStore)(nil).GetRuntimeConfig), ctx, key) +} + +// GetTailnetAgents mocks base method. +func (m *MockStore) GetTailnetAgents(ctx context.Context, id uuid.UUID) ([]database.TailnetAgent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTailnetAgents", ctx, id) + ret0, _ := ret[0].([]database.TailnetAgent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTailnetAgents indicates an expected call of GetTailnetAgents. +func (mr *MockStoreMockRecorder) GetTailnetAgents(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTailnetAgents", reflect.TypeOf((*MockStore)(nil).GetTailnetAgents), ctx, id) +} + +// GetTailnetClientsForAgent mocks base method. +func (m *MockStore) GetTailnetClientsForAgent(ctx context.Context, agentID uuid.UUID) ([]database.TailnetClient, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTailnetClientsForAgent", ctx, agentID) + ret0, _ := ret[0].([]database.TailnetClient) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTailnetClientsForAgent indicates an expected call of GetTailnetClientsForAgent. +func (mr *MockStoreMockRecorder) GetTailnetClientsForAgent(ctx, agentID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTailnetClientsForAgent", reflect.TypeOf((*MockStore)(nil).GetTailnetClientsForAgent), ctx, agentID) +} + +// GetTailnetPeers mocks base method. +func (m *MockStore) GetTailnetPeers(ctx context.Context, id uuid.UUID) ([]database.TailnetPeer, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTailnetPeers", ctx, id) + ret0, _ := ret[0].([]database.TailnetPeer) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTailnetPeers indicates an expected call of GetTailnetPeers. +func (mr *MockStoreMockRecorder) GetTailnetPeers(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTailnetPeers", reflect.TypeOf((*MockStore)(nil).GetTailnetPeers), ctx, id) +} + +// GetTailnetTunnelPeerBindings mocks base method. +func (m *MockStore) GetTailnetTunnelPeerBindings(ctx context.Context, srcID uuid.UUID) ([]database.GetTailnetTunnelPeerBindingsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTailnetTunnelPeerBindings", ctx, srcID) + ret0, _ := ret[0].([]database.GetTailnetTunnelPeerBindingsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTailnetTunnelPeerBindings indicates an expected call of GetTailnetTunnelPeerBindings. +func (mr *MockStoreMockRecorder) GetTailnetTunnelPeerBindings(ctx, srcID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTailnetTunnelPeerBindings", reflect.TypeOf((*MockStore)(nil).GetTailnetTunnelPeerBindings), ctx, srcID) +} + +// GetTailnetTunnelPeerIDs mocks base method. +func (m *MockStore) GetTailnetTunnelPeerIDs(ctx context.Context, srcID uuid.UUID) ([]database.GetTailnetTunnelPeerIDsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTailnetTunnelPeerIDs", ctx, srcID) + ret0, _ := ret[0].([]database.GetTailnetTunnelPeerIDsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTailnetTunnelPeerIDs indicates an expected call of GetTailnetTunnelPeerIDs. +func (mr *MockStoreMockRecorder) GetTailnetTunnelPeerIDs(ctx, srcID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTailnetTunnelPeerIDs", reflect.TypeOf((*MockStore)(nil).GetTailnetTunnelPeerIDs), ctx, srcID) +} + +// GetTaskByID mocks base method. +func (m *MockStore) GetTaskByID(ctx context.Context, id uuid.UUID) (database.Task, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTaskByID", ctx, id) + ret0, _ := ret[0].(database.Task) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTaskByID indicates an expected call of GetTaskByID. +func (mr *MockStoreMockRecorder) GetTaskByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTaskByID", reflect.TypeOf((*MockStore)(nil).GetTaskByID), ctx, id) +} + +// GetTaskByOwnerIDAndName mocks base method. +func (m *MockStore) GetTaskByOwnerIDAndName(ctx context.Context, arg database.GetTaskByOwnerIDAndNameParams) (database.Task, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTaskByOwnerIDAndName", ctx, arg) + ret0, _ := ret[0].(database.Task) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTaskByOwnerIDAndName indicates an expected call of GetTaskByOwnerIDAndName. +func (mr *MockStoreMockRecorder) GetTaskByOwnerIDAndName(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTaskByOwnerIDAndName", reflect.TypeOf((*MockStore)(nil).GetTaskByOwnerIDAndName), ctx, arg) +} + +// GetTaskByWorkspaceID mocks base method. +func (m *MockStore) GetTaskByWorkspaceID(ctx context.Context, workspaceID uuid.UUID) (database.Task, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTaskByWorkspaceID", ctx, workspaceID) + ret0, _ := ret[0].(database.Task) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTaskByWorkspaceID indicates an expected call of GetTaskByWorkspaceID. +func (mr *MockStoreMockRecorder) GetTaskByWorkspaceID(ctx, workspaceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTaskByWorkspaceID", reflect.TypeOf((*MockStore)(nil).GetTaskByWorkspaceID), ctx, workspaceID) +} + +// GetTelemetryItem mocks base method. +func (m *MockStore) GetTelemetryItem(ctx context.Context, key string) (database.TelemetryItem, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTelemetryItem", ctx, key) + ret0, _ := ret[0].(database.TelemetryItem) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTelemetryItem indicates an expected call of GetTelemetryItem. +func (mr *MockStoreMockRecorder) GetTelemetryItem(ctx, key any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTelemetryItem", reflect.TypeOf((*MockStore)(nil).GetTelemetryItem), ctx, key) +} + +// GetTelemetryItems mocks base method. +func (m *MockStore) GetTelemetryItems(ctx context.Context) ([]database.TelemetryItem, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTelemetryItems", ctx) + ret0, _ := ret[0].([]database.TelemetryItem) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTelemetryItems indicates an expected call of GetTelemetryItems. +func (mr *MockStoreMockRecorder) GetTelemetryItems(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTelemetryItems", reflect.TypeOf((*MockStore)(nil).GetTelemetryItems), ctx) +} + +// GetTemplateAppInsights mocks base method. +func (m *MockStore) GetTemplateAppInsights(ctx context.Context, arg database.GetTemplateAppInsightsParams) ([]database.GetTemplateAppInsightsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateAppInsights", ctx, arg) + ret0, _ := ret[0].([]database.GetTemplateAppInsightsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateAppInsights indicates an expected call of GetTemplateAppInsights. +func (mr *MockStoreMockRecorder) GetTemplateAppInsights(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateAppInsights", reflect.TypeOf((*MockStore)(nil).GetTemplateAppInsights), ctx, arg) +} + +// GetTemplateAppInsightsByTemplate mocks base method. +func (m *MockStore) GetTemplateAppInsightsByTemplate(ctx context.Context, arg database.GetTemplateAppInsightsByTemplateParams) ([]database.GetTemplateAppInsightsByTemplateRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateAppInsightsByTemplate", ctx, arg) + ret0, _ := ret[0].([]database.GetTemplateAppInsightsByTemplateRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateAppInsightsByTemplate indicates an expected call of GetTemplateAppInsightsByTemplate. +func (mr *MockStoreMockRecorder) GetTemplateAppInsightsByTemplate(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateAppInsightsByTemplate", reflect.TypeOf((*MockStore)(nil).GetTemplateAppInsightsByTemplate), ctx, arg) +} + +// GetTemplateAverageBuildTime mocks base method. +func (m *MockStore) GetTemplateAverageBuildTime(ctx context.Context, templateID uuid.NullUUID) (database.GetTemplateAverageBuildTimeRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateAverageBuildTime", ctx, templateID) + ret0, _ := ret[0].(database.GetTemplateAverageBuildTimeRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateAverageBuildTime indicates an expected call of GetTemplateAverageBuildTime. +func (mr *MockStoreMockRecorder) GetTemplateAverageBuildTime(ctx, templateID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateAverageBuildTime", reflect.TypeOf((*MockStore)(nil).GetTemplateAverageBuildTime), ctx, templateID) +} + +// GetTemplateByID mocks base method. +func (m *MockStore) GetTemplateByID(ctx context.Context, id uuid.UUID) (database.Template, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateByID", ctx, id) + ret0, _ := ret[0].(database.Template) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateByID indicates an expected call of GetTemplateByID. +func (mr *MockStoreMockRecorder) GetTemplateByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateByID", reflect.TypeOf((*MockStore)(nil).GetTemplateByID), ctx, id) +} + +// GetTemplateByOrganizationAndName mocks base method. +func (m *MockStore) GetTemplateByOrganizationAndName(ctx context.Context, arg database.GetTemplateByOrganizationAndNameParams) (database.Template, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateByOrganizationAndName", ctx, arg) + ret0, _ := ret[0].(database.Template) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateByOrganizationAndName indicates an expected call of GetTemplateByOrganizationAndName. +func (mr *MockStoreMockRecorder) GetTemplateByOrganizationAndName(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateByOrganizationAndName", reflect.TypeOf((*MockStore)(nil).GetTemplateByOrganizationAndName), ctx, arg) +} + +// GetTemplateDAUs mocks base method. +func (m *MockStore) GetTemplateDAUs(ctx context.Context, arg database.GetTemplateDAUsParams) ([]database.GetTemplateDAUsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateDAUs", ctx, arg) + ret0, _ := ret[0].([]database.GetTemplateDAUsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateDAUs indicates an expected call of GetTemplateDAUs. +func (mr *MockStoreMockRecorder) GetTemplateDAUs(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateDAUs", reflect.TypeOf((*MockStore)(nil).GetTemplateDAUs), ctx, arg) +} + +// GetTemplateGroupRoles mocks base method. +func (m *MockStore) GetTemplateGroupRoles(ctx context.Context, id uuid.UUID) ([]database.TemplateGroup, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateGroupRoles", ctx, id) + ret0, _ := ret[0].([]database.TemplateGroup) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateGroupRoles indicates an expected call of GetTemplateGroupRoles. +func (mr *MockStoreMockRecorder) GetTemplateGroupRoles(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateGroupRoles", reflect.TypeOf((*MockStore)(nil).GetTemplateGroupRoles), ctx, id) +} + +// GetTemplateInsights mocks base method. +func (m *MockStore) GetTemplateInsights(ctx context.Context, arg database.GetTemplateInsightsParams) (database.GetTemplateInsightsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateInsights", ctx, arg) + ret0, _ := ret[0].(database.GetTemplateInsightsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateInsights indicates an expected call of GetTemplateInsights. +func (mr *MockStoreMockRecorder) GetTemplateInsights(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateInsights", reflect.TypeOf((*MockStore)(nil).GetTemplateInsights), ctx, arg) +} + +// GetTemplateInsightsByInterval mocks base method. +func (m *MockStore) GetTemplateInsightsByInterval(ctx context.Context, arg database.GetTemplateInsightsByIntervalParams) ([]database.GetTemplateInsightsByIntervalRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateInsightsByInterval", ctx, arg) + ret0, _ := ret[0].([]database.GetTemplateInsightsByIntervalRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateInsightsByInterval indicates an expected call of GetTemplateInsightsByInterval. +func (mr *MockStoreMockRecorder) GetTemplateInsightsByInterval(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateInsightsByInterval", reflect.TypeOf((*MockStore)(nil).GetTemplateInsightsByInterval), ctx, arg) +} + +// GetTemplateInsightsByTemplate mocks base method. +func (m *MockStore) GetTemplateInsightsByTemplate(ctx context.Context, arg database.GetTemplateInsightsByTemplateParams) ([]database.GetTemplateInsightsByTemplateRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateInsightsByTemplate", ctx, arg) + ret0, _ := ret[0].([]database.GetTemplateInsightsByTemplateRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateInsightsByTemplate indicates an expected call of GetTemplateInsightsByTemplate. +func (mr *MockStoreMockRecorder) GetTemplateInsightsByTemplate(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateInsightsByTemplate", reflect.TypeOf((*MockStore)(nil).GetTemplateInsightsByTemplate), ctx, arg) +} + +// GetTemplateParameterInsights mocks base method. +func (m *MockStore) GetTemplateParameterInsights(ctx context.Context, arg database.GetTemplateParameterInsightsParams) ([]database.GetTemplateParameterInsightsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateParameterInsights", ctx, arg) + ret0, _ := ret[0].([]database.GetTemplateParameterInsightsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateParameterInsights indicates an expected call of GetTemplateParameterInsights. +func (mr *MockStoreMockRecorder) GetTemplateParameterInsights(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateParameterInsights", reflect.TypeOf((*MockStore)(nil).GetTemplateParameterInsights), ctx, arg) +} + +// GetTemplatePresetsWithPrebuilds mocks base method. +func (m *MockStore) GetTemplatePresetsWithPrebuilds(ctx context.Context, templateID uuid.NullUUID) ([]database.GetTemplatePresetsWithPrebuildsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplatePresetsWithPrebuilds", ctx, templateID) + ret0, _ := ret[0].([]database.GetTemplatePresetsWithPrebuildsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplatePresetsWithPrebuilds indicates an expected call of GetTemplatePresetsWithPrebuilds. +func (mr *MockStoreMockRecorder) GetTemplatePresetsWithPrebuilds(ctx, templateID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplatePresetsWithPrebuilds", reflect.TypeOf((*MockStore)(nil).GetTemplatePresetsWithPrebuilds), ctx, templateID) +} + +// GetTemplateUsageStats mocks base method. +func (m *MockStore) GetTemplateUsageStats(ctx context.Context, arg database.GetTemplateUsageStatsParams) ([]database.TemplateUsageStat, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateUsageStats", ctx, arg) + ret0, _ := ret[0].([]database.TemplateUsageStat) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateUsageStats indicates an expected call of GetTemplateUsageStats. +func (mr *MockStoreMockRecorder) GetTemplateUsageStats(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateUsageStats", reflect.TypeOf((*MockStore)(nil).GetTemplateUsageStats), ctx, arg) +} + +// GetTemplateUserRoles mocks base method. +func (m *MockStore) GetTemplateUserRoles(ctx context.Context, id uuid.UUID) ([]database.TemplateUser, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateUserRoles", ctx, id) + ret0, _ := ret[0].([]database.TemplateUser) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateUserRoles indicates an expected call of GetTemplateUserRoles. +func (mr *MockStoreMockRecorder) GetTemplateUserRoles(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateUserRoles", reflect.TypeOf((*MockStore)(nil).GetTemplateUserRoles), ctx, id) +} + +// GetTemplateVersionByID mocks base method. +func (m *MockStore) GetTemplateVersionByID(ctx context.Context, id uuid.UUID) (database.TemplateVersion, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateVersionByID", ctx, id) + ret0, _ := ret[0].(database.TemplateVersion) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateVersionByID indicates an expected call of GetTemplateVersionByID. +func (mr *MockStoreMockRecorder) GetTemplateVersionByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionByID", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionByID), ctx, id) +} + +// GetTemplateVersionByJobID mocks base method. +func (m *MockStore) GetTemplateVersionByJobID(ctx context.Context, jobID uuid.UUID) (database.TemplateVersion, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateVersionByJobID", ctx, jobID) + ret0, _ := ret[0].(database.TemplateVersion) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateVersionByJobID indicates an expected call of GetTemplateVersionByJobID. +func (mr *MockStoreMockRecorder) GetTemplateVersionByJobID(ctx, jobID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionByJobID", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionByJobID), ctx, jobID) +} + +// GetTemplateVersionByTemplateIDAndName mocks base method. +func (m *MockStore) GetTemplateVersionByTemplateIDAndName(ctx context.Context, arg database.GetTemplateVersionByTemplateIDAndNameParams) (database.TemplateVersion, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateVersionByTemplateIDAndName", ctx, arg) + ret0, _ := ret[0].(database.TemplateVersion) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateVersionByTemplateIDAndName indicates an expected call of GetTemplateVersionByTemplateIDAndName. +func (mr *MockStoreMockRecorder) GetTemplateVersionByTemplateIDAndName(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionByTemplateIDAndName", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionByTemplateIDAndName), ctx, arg) +} + +// GetTemplateVersionHasAITask mocks base method. +func (m *MockStore) GetTemplateVersionHasAITask(ctx context.Context, id uuid.UUID) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateVersionHasAITask", ctx, id) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateVersionHasAITask indicates an expected call of GetTemplateVersionHasAITask. +func (mr *MockStoreMockRecorder) GetTemplateVersionHasAITask(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionHasAITask", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionHasAITask), ctx, id) +} + +// GetTemplateVersionParameters mocks base method. +func (m *MockStore) GetTemplateVersionParameters(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionParameter, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateVersionParameters", ctx, templateVersionID) + ret0, _ := ret[0].([]database.TemplateVersionParameter) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateVersionParameters indicates an expected call of GetTemplateVersionParameters. +func (mr *MockStoreMockRecorder) GetTemplateVersionParameters(ctx, templateVersionID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionParameters", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionParameters), ctx, templateVersionID) +} + +// GetTemplateVersionTerraformValues mocks base method. +func (m *MockStore) GetTemplateVersionTerraformValues(ctx context.Context, templateVersionID uuid.UUID) (database.TemplateVersionTerraformValue, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateVersionTerraformValues", ctx, templateVersionID) + ret0, _ := ret[0].(database.TemplateVersionTerraformValue) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateVersionTerraformValues indicates an expected call of GetTemplateVersionTerraformValues. +func (mr *MockStoreMockRecorder) GetTemplateVersionTerraformValues(ctx, templateVersionID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionTerraformValues", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionTerraformValues), ctx, templateVersionID) +} + +// GetTemplateVersionVariables mocks base method. +func (m *MockStore) GetTemplateVersionVariables(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionVariable, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateVersionVariables", ctx, templateVersionID) + ret0, _ := ret[0].([]database.TemplateVersionVariable) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateVersionVariables indicates an expected call of GetTemplateVersionVariables. +func (mr *MockStoreMockRecorder) GetTemplateVersionVariables(ctx, templateVersionID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionVariables", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionVariables), ctx, templateVersionID) +} + +// GetTemplateVersionWorkspaceTags mocks base method. +func (m *MockStore) GetTemplateVersionWorkspaceTags(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionWorkspaceTag, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateVersionWorkspaceTags", ctx, templateVersionID) + ret0, _ := ret[0].([]database.TemplateVersionWorkspaceTag) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateVersionWorkspaceTags indicates an expected call of GetTemplateVersionWorkspaceTags. +func (mr *MockStoreMockRecorder) GetTemplateVersionWorkspaceTags(ctx, templateVersionID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionWorkspaceTags", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionWorkspaceTags), ctx, templateVersionID) +} + +// GetTemplateVersionsByIDs mocks base method. +func (m *MockStore) GetTemplateVersionsByIDs(ctx context.Context, ids []uuid.UUID) ([]database.TemplateVersion, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateVersionsByIDs", ctx, ids) + ret0, _ := ret[0].([]database.TemplateVersion) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateVersionsByIDs indicates an expected call of GetTemplateVersionsByIDs. +func (mr *MockStoreMockRecorder) GetTemplateVersionsByIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionsByIDs", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionsByIDs), ctx, ids) +} + +// GetTemplateVersionsByTemplateID mocks base method. +func (m *MockStore) GetTemplateVersionsByTemplateID(ctx context.Context, arg database.GetTemplateVersionsByTemplateIDParams) ([]database.TemplateVersion, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateVersionsByTemplateID", ctx, arg) + ret0, _ := ret[0].([]database.TemplateVersion) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateVersionsByTemplateID indicates an expected call of GetTemplateVersionsByTemplateID. +func (mr *MockStoreMockRecorder) GetTemplateVersionsByTemplateID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionsByTemplateID", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionsByTemplateID), ctx, arg) +} + +// GetTemplateVersionsCreatedAfter mocks base method. +func (m *MockStore) GetTemplateVersionsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.TemplateVersion, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplateVersionsCreatedAfter", ctx, createdAt) + ret0, _ := ret[0].([]database.TemplateVersion) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplateVersionsCreatedAfter indicates an expected call of GetTemplateVersionsCreatedAfter. +func (mr *MockStoreMockRecorder) GetTemplateVersionsCreatedAfter(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionsCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionsCreatedAfter), ctx, createdAt) +} + +// GetTemplates mocks base method. +func (m *MockStore) GetTemplates(ctx context.Context) ([]database.Template, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplates", ctx) + ret0, _ := ret[0].([]database.Template) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplates indicates an expected call of GetTemplates. +func (mr *MockStoreMockRecorder) GetTemplates(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplates", reflect.TypeOf((*MockStore)(nil).GetTemplates), ctx) +} + +// GetTemplatesWithFilter mocks base method. +func (m *MockStore) GetTemplatesWithFilter(ctx context.Context, arg database.GetTemplatesWithFilterParams) ([]database.Template, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTemplatesWithFilter", ctx, arg) + ret0, _ := ret[0].([]database.Template) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTemplatesWithFilter indicates an expected call of GetTemplatesWithFilter. +func (mr *MockStoreMockRecorder) GetTemplatesWithFilter(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplatesWithFilter", reflect.TypeOf((*MockStore)(nil).GetTemplatesWithFilter), ctx, arg) +} + +// GetTotalUsageDCManagedAgentsV1 mocks base method. +func (m *MockStore) GetTotalUsageDCManagedAgentsV1(ctx context.Context, arg database.GetTotalUsageDCManagedAgentsV1Params) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTotalUsageDCManagedAgentsV1", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTotalUsageDCManagedAgentsV1 indicates an expected call of GetTotalUsageDCManagedAgentsV1. +func (mr *MockStoreMockRecorder) GetTotalUsageDCManagedAgentsV1(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTotalUsageDCManagedAgentsV1", reflect.TypeOf((*MockStore)(nil).GetTotalUsageDCManagedAgentsV1), ctx, arg) +} + +// GetUnexpiredLicenses mocks base method. +func (m *MockStore) GetUnexpiredLicenses(ctx context.Context) ([]database.License, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUnexpiredLicenses", ctx) + ret0, _ := ret[0].([]database.License) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUnexpiredLicenses indicates an expected call of GetUnexpiredLicenses. +func (mr *MockStoreMockRecorder) GetUnexpiredLicenses(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUnexpiredLicenses", reflect.TypeOf((*MockStore)(nil).GetUnexpiredLicenses), ctx) +} + +// GetUserActivityInsights mocks base method. +func (m *MockStore) GetUserActivityInsights(ctx context.Context, arg database.GetUserActivityInsightsParams) ([]database.GetUserActivityInsightsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserActivityInsights", ctx, arg) + ret0, _ := ret[0].([]database.GetUserActivityInsightsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserActivityInsights indicates an expected call of GetUserActivityInsights. +func (mr *MockStoreMockRecorder) GetUserActivityInsights(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserActivityInsights", reflect.TypeOf((*MockStore)(nil).GetUserActivityInsights), ctx, arg) +} + +// GetUserByEmailOrUsername mocks base method. +func (m *MockStore) GetUserByEmailOrUsername(ctx context.Context, arg database.GetUserByEmailOrUsernameParams) (database.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserByEmailOrUsername", ctx, arg) + ret0, _ := ret[0].(database.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserByEmailOrUsername indicates an expected call of GetUserByEmailOrUsername. +func (mr *MockStoreMockRecorder) GetUserByEmailOrUsername(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserByEmailOrUsername", reflect.TypeOf((*MockStore)(nil).GetUserByEmailOrUsername), ctx, arg) +} + +// GetUserByID mocks base method. +func (m *MockStore) GetUserByID(ctx context.Context, id uuid.UUID) (database.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserByID", ctx, id) + ret0, _ := ret[0].(database.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserByID indicates an expected call of GetUserByID. +func (mr *MockStoreMockRecorder) GetUserByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserByID", reflect.TypeOf((*MockStore)(nil).GetUserByID), ctx, id) +} + +// GetUserCount mocks base method. +func (m *MockStore) GetUserCount(ctx context.Context, includeSystem bool) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserCount", ctx, includeSystem) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserCount indicates an expected call of GetUserCount. +func (mr *MockStoreMockRecorder) GetUserCount(ctx, includeSystem any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserCount", reflect.TypeOf((*MockStore)(nil).GetUserCount), ctx, includeSystem) +} + +// GetUserLatencyInsights mocks base method. +func (m *MockStore) GetUserLatencyInsights(ctx context.Context, arg database.GetUserLatencyInsightsParams) ([]database.GetUserLatencyInsightsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserLatencyInsights", ctx, arg) + ret0, _ := ret[0].([]database.GetUserLatencyInsightsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserLatencyInsights indicates an expected call of GetUserLatencyInsights. +func (mr *MockStoreMockRecorder) GetUserLatencyInsights(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserLatencyInsights", reflect.TypeOf((*MockStore)(nil).GetUserLatencyInsights), ctx, arg) +} + +// GetUserLinkByLinkedID mocks base method. +func (m *MockStore) GetUserLinkByLinkedID(ctx context.Context, linkedID string) (database.UserLink, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserLinkByLinkedID", ctx, linkedID) + ret0, _ := ret[0].(database.UserLink) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserLinkByLinkedID indicates an expected call of GetUserLinkByLinkedID. +func (mr *MockStoreMockRecorder) GetUserLinkByLinkedID(ctx, linkedID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserLinkByLinkedID", reflect.TypeOf((*MockStore)(nil).GetUserLinkByLinkedID), ctx, linkedID) +} + +// GetUserLinkByUserIDLoginType mocks base method. +func (m *MockStore) GetUserLinkByUserIDLoginType(ctx context.Context, arg database.GetUserLinkByUserIDLoginTypeParams) (database.UserLink, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserLinkByUserIDLoginType", ctx, arg) + ret0, _ := ret[0].(database.UserLink) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserLinkByUserIDLoginType indicates an expected call of GetUserLinkByUserIDLoginType. +func (mr *MockStoreMockRecorder) GetUserLinkByUserIDLoginType(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserLinkByUserIDLoginType", reflect.TypeOf((*MockStore)(nil).GetUserLinkByUserIDLoginType), ctx, arg) +} + +// GetUserLinksByUserID mocks base method. +func (m *MockStore) GetUserLinksByUserID(ctx context.Context, userID uuid.UUID) ([]database.UserLink, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserLinksByUserID", ctx, userID) + ret0, _ := ret[0].([]database.UserLink) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserLinksByUserID indicates an expected call of GetUserLinksByUserID. +func (mr *MockStoreMockRecorder) GetUserLinksByUserID(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserLinksByUserID", reflect.TypeOf((*MockStore)(nil).GetUserLinksByUserID), ctx, userID) +} + +// GetUserNotificationPreferences mocks base method. +func (m *MockStore) GetUserNotificationPreferences(ctx context.Context, userID uuid.UUID) ([]database.NotificationPreference, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserNotificationPreferences", ctx, userID) + ret0, _ := ret[0].([]database.NotificationPreference) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserNotificationPreferences indicates an expected call of GetUserNotificationPreferences. +func (mr *MockStoreMockRecorder) GetUserNotificationPreferences(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserNotificationPreferences", reflect.TypeOf((*MockStore)(nil).GetUserNotificationPreferences), ctx, userID) +} + +// GetUserSecret mocks base method. +func (m *MockStore) GetUserSecret(ctx context.Context, id uuid.UUID) (database.UserSecret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserSecret", ctx, id) + ret0, _ := ret[0].(database.UserSecret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserSecret indicates an expected call of GetUserSecret. +func (mr *MockStoreMockRecorder) GetUserSecret(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserSecret", reflect.TypeOf((*MockStore)(nil).GetUserSecret), ctx, id) +} + +// GetUserSecretByUserIDAndName mocks base method. +func (m *MockStore) GetUserSecretByUserIDAndName(ctx context.Context, arg database.GetUserSecretByUserIDAndNameParams) (database.UserSecret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserSecretByUserIDAndName", ctx, arg) + ret0, _ := ret[0].(database.UserSecret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserSecretByUserIDAndName indicates an expected call of GetUserSecretByUserIDAndName. +func (mr *MockStoreMockRecorder) GetUserSecretByUserIDAndName(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserSecretByUserIDAndName", reflect.TypeOf((*MockStore)(nil).GetUserSecretByUserIDAndName), ctx, arg) +} + +// GetUserStatusCounts mocks base method. +func (m *MockStore) GetUserStatusCounts(ctx context.Context, arg database.GetUserStatusCountsParams) ([]database.GetUserStatusCountsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserStatusCounts", ctx, arg) + ret0, _ := ret[0].([]database.GetUserStatusCountsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserStatusCounts indicates an expected call of GetUserStatusCounts. +func (mr *MockStoreMockRecorder) GetUserStatusCounts(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserStatusCounts", reflect.TypeOf((*MockStore)(nil).GetUserStatusCounts), ctx, arg) +} + +// GetUserTaskNotificationAlertDismissed mocks base method. +func (m *MockStore) GetUserTaskNotificationAlertDismissed(ctx context.Context, userID uuid.UUID) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserTaskNotificationAlertDismissed", ctx, userID) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserTaskNotificationAlertDismissed indicates an expected call of GetUserTaskNotificationAlertDismissed. +func (mr *MockStoreMockRecorder) GetUserTaskNotificationAlertDismissed(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserTaskNotificationAlertDismissed", reflect.TypeOf((*MockStore)(nil).GetUserTaskNotificationAlertDismissed), ctx, userID) +} + +// GetUserTerminalFont mocks base method. +func (m *MockStore) GetUserTerminalFont(ctx context.Context, userID uuid.UUID) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserTerminalFont", ctx, userID) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserTerminalFont indicates an expected call of GetUserTerminalFont. +func (mr *MockStoreMockRecorder) GetUserTerminalFont(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserTerminalFont", reflect.TypeOf((*MockStore)(nil).GetUserTerminalFont), ctx, userID) +} + +// GetUserThemePreference mocks base method. +func (m *MockStore) GetUserThemePreference(ctx context.Context, userID uuid.UUID) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserThemePreference", ctx, userID) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserThemePreference indicates an expected call of GetUserThemePreference. +func (mr *MockStoreMockRecorder) GetUserThemePreference(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserThemePreference", reflect.TypeOf((*MockStore)(nil).GetUserThemePreference), ctx, userID) +} + +// GetUserWorkspaceBuildParameters mocks base method. +func (m *MockStore) GetUserWorkspaceBuildParameters(ctx context.Context, arg database.GetUserWorkspaceBuildParametersParams) ([]database.GetUserWorkspaceBuildParametersRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserWorkspaceBuildParameters", ctx, arg) + ret0, _ := ret[0].([]database.GetUserWorkspaceBuildParametersRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserWorkspaceBuildParameters indicates an expected call of GetUserWorkspaceBuildParameters. +func (mr *MockStoreMockRecorder) GetUserWorkspaceBuildParameters(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserWorkspaceBuildParameters", reflect.TypeOf((*MockStore)(nil).GetUserWorkspaceBuildParameters), ctx, arg) +} + +// GetUsers mocks base method. +func (m *MockStore) GetUsers(ctx context.Context, arg database.GetUsersParams) ([]database.GetUsersRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUsers", ctx, arg) + ret0, _ := ret[0].([]database.GetUsersRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUsers indicates an expected call of GetUsers. +func (mr *MockStoreMockRecorder) GetUsers(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUsers", reflect.TypeOf((*MockStore)(nil).GetUsers), ctx, arg) +} + +// GetUsersByIDs mocks base method. +func (m *MockStore) GetUsersByIDs(ctx context.Context, ids []uuid.UUID) ([]database.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUsersByIDs", ctx, ids) + ret0, _ := ret[0].([]database.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUsersByIDs indicates an expected call of GetUsersByIDs. +func (mr *MockStoreMockRecorder) GetUsersByIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUsersByIDs", reflect.TypeOf((*MockStore)(nil).GetUsersByIDs), ctx, ids) +} + +// GetWebpushSubscriptionsByUserID mocks base method. +func (m *MockStore) GetWebpushSubscriptionsByUserID(ctx context.Context, userID uuid.UUID) ([]database.WebpushSubscription, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWebpushSubscriptionsByUserID", ctx, userID) + ret0, _ := ret[0].([]database.WebpushSubscription) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWebpushSubscriptionsByUserID indicates an expected call of GetWebpushSubscriptionsByUserID. +func (mr *MockStoreMockRecorder) GetWebpushSubscriptionsByUserID(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWebpushSubscriptionsByUserID", reflect.TypeOf((*MockStore)(nil).GetWebpushSubscriptionsByUserID), ctx, userID) +} + +// GetWebpushVAPIDKeys mocks base method. +func (m *MockStore) GetWebpushVAPIDKeys(ctx context.Context) (database.GetWebpushVAPIDKeysRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWebpushVAPIDKeys", ctx) + ret0, _ := ret[0].(database.GetWebpushVAPIDKeysRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWebpushVAPIDKeys indicates an expected call of GetWebpushVAPIDKeys. +func (mr *MockStoreMockRecorder) GetWebpushVAPIDKeys(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWebpushVAPIDKeys", reflect.TypeOf((*MockStore)(nil).GetWebpushVAPIDKeys), ctx) +} + +// GetWorkspaceACLByID mocks base method. +func (m *MockStore) GetWorkspaceACLByID(ctx context.Context, id uuid.UUID) (database.GetWorkspaceACLByIDRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceACLByID", ctx, id) + ret0, _ := ret[0].(database.GetWorkspaceACLByIDRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceACLByID indicates an expected call of GetWorkspaceACLByID. +func (mr *MockStoreMockRecorder) GetWorkspaceACLByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceACLByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceACLByID), ctx, id) +} + +// GetWorkspaceAgentAndLatestBuildByAuthToken mocks base method. +func (m *MockStore) GetWorkspaceAgentAndLatestBuildByAuthToken(ctx context.Context, authToken uuid.UUID) (database.GetWorkspaceAgentAndLatestBuildByAuthTokenRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentAndLatestBuildByAuthToken", ctx, authToken) + ret0, _ := ret[0].(database.GetWorkspaceAgentAndLatestBuildByAuthTokenRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentAndLatestBuildByAuthToken indicates an expected call of GetWorkspaceAgentAndLatestBuildByAuthToken. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentAndLatestBuildByAuthToken(ctx, authToken any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentAndLatestBuildByAuthToken", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentAndLatestBuildByAuthToken), ctx, authToken) +} + +// GetWorkspaceAgentByID mocks base method. +func (m *MockStore) GetWorkspaceAgentByID(ctx context.Context, id uuid.UUID) (database.WorkspaceAgent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentByID", ctx, id) + ret0, _ := ret[0].(database.WorkspaceAgent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentByID indicates an expected call of GetWorkspaceAgentByID. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentByID), ctx, id) +} + +// GetWorkspaceAgentByInstanceID mocks base method. +func (m *MockStore) GetWorkspaceAgentByInstanceID(ctx context.Context, authInstanceID string) (database.WorkspaceAgent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentByInstanceID", ctx, authInstanceID) + ret0, _ := ret[0].(database.WorkspaceAgent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentByInstanceID indicates an expected call of GetWorkspaceAgentByInstanceID. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentByInstanceID(ctx, authInstanceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentByInstanceID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentByInstanceID), ctx, authInstanceID) +} + +// GetWorkspaceAgentDevcontainersByAgentID mocks base method. +func (m *MockStore) GetWorkspaceAgentDevcontainersByAgentID(ctx context.Context, workspaceAgentID uuid.UUID) ([]database.WorkspaceAgentDevcontainer, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentDevcontainersByAgentID", ctx, workspaceAgentID) + ret0, _ := ret[0].([]database.WorkspaceAgentDevcontainer) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentDevcontainersByAgentID indicates an expected call of GetWorkspaceAgentDevcontainersByAgentID. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentDevcontainersByAgentID(ctx, workspaceAgentID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentDevcontainersByAgentID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentDevcontainersByAgentID), ctx, workspaceAgentID) +} + +// GetWorkspaceAgentLifecycleStateByID mocks base method. +func (m *MockStore) GetWorkspaceAgentLifecycleStateByID(ctx context.Context, id uuid.UUID) (database.GetWorkspaceAgentLifecycleStateByIDRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentLifecycleStateByID", ctx, id) + ret0, _ := ret[0].(database.GetWorkspaceAgentLifecycleStateByIDRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentLifecycleStateByID indicates an expected call of GetWorkspaceAgentLifecycleStateByID. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentLifecycleStateByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentLifecycleStateByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentLifecycleStateByID), ctx, id) +} + +// GetWorkspaceAgentLogSourcesByAgentIDs mocks base method. +func (m *MockStore) GetWorkspaceAgentLogSourcesByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgentLogSource, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentLogSourcesByAgentIDs", ctx, ids) + ret0, _ := ret[0].([]database.WorkspaceAgentLogSource) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentLogSourcesByAgentIDs indicates an expected call of GetWorkspaceAgentLogSourcesByAgentIDs. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentLogSourcesByAgentIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentLogSourcesByAgentIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentLogSourcesByAgentIDs), ctx, ids) +} + +// GetWorkspaceAgentLogsAfter mocks base method. +func (m *MockStore) GetWorkspaceAgentLogsAfter(ctx context.Context, arg database.GetWorkspaceAgentLogsAfterParams) ([]database.WorkspaceAgentLog, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentLogsAfter", ctx, arg) + ret0, _ := ret[0].([]database.WorkspaceAgentLog) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentLogsAfter indicates an expected call of GetWorkspaceAgentLogsAfter. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentLogsAfter(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentLogsAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentLogsAfter), ctx, arg) +} + +// GetWorkspaceAgentMetadata mocks base method. +func (m *MockStore) GetWorkspaceAgentMetadata(ctx context.Context, arg database.GetWorkspaceAgentMetadataParams) ([]database.WorkspaceAgentMetadatum, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentMetadata", ctx, arg) + ret0, _ := ret[0].([]database.WorkspaceAgentMetadatum) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentMetadata indicates an expected call of GetWorkspaceAgentMetadata. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentMetadata(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentMetadata", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentMetadata), ctx, arg) +} + +// GetWorkspaceAgentPortShare mocks base method. +func (m *MockStore) GetWorkspaceAgentPortShare(ctx context.Context, arg database.GetWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortShare, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentPortShare", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceAgentPortShare) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentPortShare indicates an expected call of GetWorkspaceAgentPortShare. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentPortShare(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentPortShare", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentPortShare), ctx, arg) +} + +// GetWorkspaceAgentScriptTimingsByBuildID mocks base method. +func (m *MockStore) GetWorkspaceAgentScriptTimingsByBuildID(ctx context.Context, id uuid.UUID) ([]database.GetWorkspaceAgentScriptTimingsByBuildIDRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentScriptTimingsByBuildID", ctx, id) + ret0, _ := ret[0].([]database.GetWorkspaceAgentScriptTimingsByBuildIDRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentScriptTimingsByBuildID indicates an expected call of GetWorkspaceAgentScriptTimingsByBuildID. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentScriptTimingsByBuildID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentScriptTimingsByBuildID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentScriptTimingsByBuildID), ctx, id) +} + +// GetWorkspaceAgentScriptsByAgentIDs mocks base method. +func (m *MockStore) GetWorkspaceAgentScriptsByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgentScript, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentScriptsByAgentIDs", ctx, ids) + ret0, _ := ret[0].([]database.WorkspaceAgentScript) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentScriptsByAgentIDs indicates an expected call of GetWorkspaceAgentScriptsByAgentIDs. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentScriptsByAgentIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentScriptsByAgentIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentScriptsByAgentIDs), ctx, ids) +} + +// GetWorkspaceAgentStats mocks base method. +func (m *MockStore) GetWorkspaceAgentStats(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentStatsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentStats", ctx, createdAt) + ret0, _ := ret[0].([]database.GetWorkspaceAgentStatsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentStats indicates an expected call of GetWorkspaceAgentStats. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentStats(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentStats", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentStats), ctx, createdAt) +} + +// GetWorkspaceAgentStatsAndLabels mocks base method. +func (m *MockStore) GetWorkspaceAgentStatsAndLabels(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentStatsAndLabelsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentStatsAndLabels", ctx, createdAt) + ret0, _ := ret[0].([]database.GetWorkspaceAgentStatsAndLabelsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentStatsAndLabels indicates an expected call of GetWorkspaceAgentStatsAndLabels. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentStatsAndLabels(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentStatsAndLabels", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentStatsAndLabels), ctx, createdAt) +} + +// GetWorkspaceAgentUsageStats mocks base method. +func (m *MockStore) GetWorkspaceAgentUsageStats(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentUsageStatsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentUsageStats", ctx, createdAt) + ret0, _ := ret[0].([]database.GetWorkspaceAgentUsageStatsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentUsageStats indicates an expected call of GetWorkspaceAgentUsageStats. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentUsageStats(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentUsageStats", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentUsageStats), ctx, createdAt) +} + +// GetWorkspaceAgentUsageStatsAndLabels mocks base method. +func (m *MockStore) GetWorkspaceAgentUsageStatsAndLabels(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentUsageStatsAndLabelsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentUsageStatsAndLabels", ctx, createdAt) + ret0, _ := ret[0].([]database.GetWorkspaceAgentUsageStatsAndLabelsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentUsageStatsAndLabels indicates an expected call of GetWorkspaceAgentUsageStatsAndLabels. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentUsageStatsAndLabels(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentUsageStatsAndLabels", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentUsageStatsAndLabels), ctx, createdAt) +} + +// GetWorkspaceAgentsByParentID mocks base method. +func (m *MockStore) GetWorkspaceAgentsByParentID(ctx context.Context, parentID uuid.UUID) ([]database.WorkspaceAgent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentsByParentID", ctx, parentID) + ret0, _ := ret[0].([]database.WorkspaceAgent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentsByParentID indicates an expected call of GetWorkspaceAgentsByParentID. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentsByParentID(ctx, parentID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsByParentID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsByParentID), ctx, parentID) +} + +// GetWorkspaceAgentsByResourceIDs mocks base method. +func (m *MockStore) GetWorkspaceAgentsByResourceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentsByResourceIDs", ctx, ids) + ret0, _ := ret[0].([]database.WorkspaceAgent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentsByResourceIDs indicates an expected call of GetWorkspaceAgentsByResourceIDs. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentsByResourceIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsByResourceIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsByResourceIDs), ctx, ids) +} + +// GetWorkspaceAgentsByWorkspaceAndBuildNumber mocks base method. +func (m *MockStore) GetWorkspaceAgentsByWorkspaceAndBuildNumber(ctx context.Context, arg database.GetWorkspaceAgentsByWorkspaceAndBuildNumberParams) ([]database.WorkspaceAgent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentsByWorkspaceAndBuildNumber", ctx, arg) + ret0, _ := ret[0].([]database.WorkspaceAgent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentsByWorkspaceAndBuildNumber indicates an expected call of GetWorkspaceAgentsByWorkspaceAndBuildNumber. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentsByWorkspaceAndBuildNumber(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsByWorkspaceAndBuildNumber", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsByWorkspaceAndBuildNumber), ctx, arg) +} + +// GetWorkspaceAgentsCreatedAfter mocks base method. +func (m *MockStore) GetWorkspaceAgentsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceAgent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentsCreatedAfter", ctx, createdAt) + ret0, _ := ret[0].([]database.WorkspaceAgent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentsCreatedAfter indicates an expected call of GetWorkspaceAgentsCreatedAfter. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentsCreatedAfter(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsCreatedAfter), ctx, createdAt) +} + +// GetWorkspaceAgentsForMetrics mocks base method. +func (m *MockStore) GetWorkspaceAgentsForMetrics(ctx context.Context) ([]database.GetWorkspaceAgentsForMetricsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentsForMetrics", ctx) + ret0, _ := ret[0].([]database.GetWorkspaceAgentsForMetricsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentsForMetrics indicates an expected call of GetWorkspaceAgentsForMetrics. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentsForMetrics(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsForMetrics", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsForMetrics), ctx) +} + +// GetWorkspaceAgentsInLatestBuildByWorkspaceID mocks base method. +func (m *MockStore) GetWorkspaceAgentsInLatestBuildByWorkspaceID(ctx context.Context, workspaceID uuid.UUID) ([]database.WorkspaceAgent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAgentsInLatestBuildByWorkspaceID", ctx, workspaceID) + ret0, _ := ret[0].([]database.WorkspaceAgent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAgentsInLatestBuildByWorkspaceID indicates an expected call of GetWorkspaceAgentsInLatestBuildByWorkspaceID. +func (mr *MockStoreMockRecorder) GetWorkspaceAgentsInLatestBuildByWorkspaceID(ctx, workspaceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsInLatestBuildByWorkspaceID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsInLatestBuildByWorkspaceID), ctx, workspaceID) +} + +// GetWorkspaceAppByAgentIDAndSlug mocks base method. +func (m *MockStore) GetWorkspaceAppByAgentIDAndSlug(ctx context.Context, arg database.GetWorkspaceAppByAgentIDAndSlugParams) (database.WorkspaceApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAppByAgentIDAndSlug", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAppByAgentIDAndSlug indicates an expected call of GetWorkspaceAppByAgentIDAndSlug. +func (mr *MockStoreMockRecorder) GetWorkspaceAppByAgentIDAndSlug(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAppByAgentIDAndSlug", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAppByAgentIDAndSlug), ctx, arg) +} + +// GetWorkspaceAppStatusesByAppIDs mocks base method. +func (m *MockStore) GetWorkspaceAppStatusesByAppIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAppStatus, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAppStatusesByAppIDs", ctx, ids) + ret0, _ := ret[0].([]database.WorkspaceAppStatus) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAppStatusesByAppIDs indicates an expected call of GetWorkspaceAppStatusesByAppIDs. +func (mr *MockStoreMockRecorder) GetWorkspaceAppStatusesByAppIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAppStatusesByAppIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAppStatusesByAppIDs), ctx, ids) +} + +// GetWorkspaceAppsByAgentID mocks base method. +func (m *MockStore) GetWorkspaceAppsByAgentID(ctx context.Context, agentID uuid.UUID) ([]database.WorkspaceApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAppsByAgentID", ctx, agentID) + ret0, _ := ret[0].([]database.WorkspaceApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAppsByAgentID indicates an expected call of GetWorkspaceAppsByAgentID. +func (mr *MockStoreMockRecorder) GetWorkspaceAppsByAgentID(ctx, agentID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAppsByAgentID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAppsByAgentID), ctx, agentID) +} + +// GetWorkspaceAppsByAgentIDs mocks base method. +func (m *MockStore) GetWorkspaceAppsByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAppsByAgentIDs", ctx, ids) + ret0, _ := ret[0].([]database.WorkspaceApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAppsByAgentIDs indicates an expected call of GetWorkspaceAppsByAgentIDs. +func (mr *MockStoreMockRecorder) GetWorkspaceAppsByAgentIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAppsByAgentIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAppsByAgentIDs), ctx, ids) +} + +// GetWorkspaceAppsCreatedAfter mocks base method. +func (m *MockStore) GetWorkspaceAppsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceAppsCreatedAfter", ctx, createdAt) + ret0, _ := ret[0].([]database.WorkspaceApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceAppsCreatedAfter indicates an expected call of GetWorkspaceAppsCreatedAfter. +func (mr *MockStoreMockRecorder) GetWorkspaceAppsCreatedAfter(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAppsCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAppsCreatedAfter), ctx, createdAt) +} + +// GetWorkspaceBuildByID mocks base method. +func (m *MockStore) GetWorkspaceBuildByID(ctx context.Context, id uuid.UUID) (database.WorkspaceBuild, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceBuildByID", ctx, id) + ret0, _ := ret[0].(database.WorkspaceBuild) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceBuildByID indicates an expected call of GetWorkspaceBuildByID. +func (mr *MockStoreMockRecorder) GetWorkspaceBuildByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildByID), ctx, id) +} + +// GetWorkspaceBuildByJobID mocks base method. +func (m *MockStore) GetWorkspaceBuildByJobID(ctx context.Context, jobID uuid.UUID) (database.WorkspaceBuild, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceBuildByJobID", ctx, jobID) + ret0, _ := ret[0].(database.WorkspaceBuild) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceBuildByJobID indicates an expected call of GetWorkspaceBuildByJobID. +func (mr *MockStoreMockRecorder) GetWorkspaceBuildByJobID(ctx, jobID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildByJobID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildByJobID), ctx, jobID) +} + +// GetWorkspaceBuildByWorkspaceIDAndBuildNumber mocks base method. +func (m *MockStore) GetWorkspaceBuildByWorkspaceIDAndBuildNumber(ctx context.Context, arg database.GetWorkspaceBuildByWorkspaceIDAndBuildNumberParams) (database.WorkspaceBuild, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceBuildByWorkspaceIDAndBuildNumber", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceBuild) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceBuildByWorkspaceIDAndBuildNumber indicates an expected call of GetWorkspaceBuildByWorkspaceIDAndBuildNumber. +func (mr *MockStoreMockRecorder) GetWorkspaceBuildByWorkspaceIDAndBuildNumber(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildByWorkspaceIDAndBuildNumber", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildByWorkspaceIDAndBuildNumber), ctx, arg) +} + +// GetWorkspaceBuildParameters mocks base method. +func (m *MockStore) GetWorkspaceBuildParameters(ctx context.Context, workspaceBuildID uuid.UUID) ([]database.WorkspaceBuildParameter, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceBuildParameters", ctx, workspaceBuildID) + ret0, _ := ret[0].([]database.WorkspaceBuildParameter) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceBuildParameters indicates an expected call of GetWorkspaceBuildParameters. +func (mr *MockStoreMockRecorder) GetWorkspaceBuildParameters(ctx, workspaceBuildID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildParameters", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildParameters), ctx, workspaceBuildID) +} + +// GetWorkspaceBuildParametersByBuildIDs mocks base method. +func (m *MockStore) GetWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIds []uuid.UUID) ([]database.WorkspaceBuildParameter, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceBuildParametersByBuildIDs", ctx, workspaceBuildIds) + ret0, _ := ret[0].([]database.WorkspaceBuildParameter) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceBuildParametersByBuildIDs indicates an expected call of GetWorkspaceBuildParametersByBuildIDs. +func (mr *MockStoreMockRecorder) GetWorkspaceBuildParametersByBuildIDs(ctx, workspaceBuildIds any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildParametersByBuildIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildParametersByBuildIDs), ctx, workspaceBuildIds) +} + +// GetWorkspaceBuildStatsByTemplates mocks base method. +func (m *MockStore) GetWorkspaceBuildStatsByTemplates(ctx context.Context, since time.Time) ([]database.GetWorkspaceBuildStatsByTemplatesRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceBuildStatsByTemplates", ctx, since) + ret0, _ := ret[0].([]database.GetWorkspaceBuildStatsByTemplatesRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceBuildStatsByTemplates indicates an expected call of GetWorkspaceBuildStatsByTemplates. +func (mr *MockStoreMockRecorder) GetWorkspaceBuildStatsByTemplates(ctx, since any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildStatsByTemplates", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildStatsByTemplates), ctx, since) +} + +// GetWorkspaceBuildsByWorkspaceID mocks base method. +func (m *MockStore) GetWorkspaceBuildsByWorkspaceID(ctx context.Context, arg database.GetWorkspaceBuildsByWorkspaceIDParams) ([]database.WorkspaceBuild, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceBuildsByWorkspaceID", ctx, arg) + ret0, _ := ret[0].([]database.WorkspaceBuild) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceBuildsByWorkspaceID indicates an expected call of GetWorkspaceBuildsByWorkspaceID. +func (mr *MockStoreMockRecorder) GetWorkspaceBuildsByWorkspaceID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildsByWorkspaceID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildsByWorkspaceID), ctx, arg) +} + +// GetWorkspaceBuildsCreatedAfter mocks base method. +func (m *MockStore) GetWorkspaceBuildsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceBuild, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceBuildsCreatedAfter", ctx, createdAt) + ret0, _ := ret[0].([]database.WorkspaceBuild) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceBuildsCreatedAfter indicates an expected call of GetWorkspaceBuildsCreatedAfter. +func (mr *MockStoreMockRecorder) GetWorkspaceBuildsCreatedAfter(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildsCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildsCreatedAfter), ctx, createdAt) +} + +// GetWorkspaceByAgentID mocks base method. +func (m *MockStore) GetWorkspaceByAgentID(ctx context.Context, agentID uuid.UUID) (database.Workspace, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceByAgentID", ctx, agentID) + ret0, _ := ret[0].(database.Workspace) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceByAgentID indicates an expected call of GetWorkspaceByAgentID. +func (mr *MockStoreMockRecorder) GetWorkspaceByAgentID(ctx, agentID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceByAgentID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceByAgentID), ctx, agentID) +} + +// GetWorkspaceByID mocks base method. +func (m *MockStore) GetWorkspaceByID(ctx context.Context, id uuid.UUID) (database.Workspace, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceByID", ctx, id) + ret0, _ := ret[0].(database.Workspace) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceByID indicates an expected call of GetWorkspaceByID. +func (mr *MockStoreMockRecorder) GetWorkspaceByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceByID), ctx, id) +} + +// GetWorkspaceByOwnerIDAndName mocks base method. +func (m *MockStore) GetWorkspaceByOwnerIDAndName(ctx context.Context, arg database.GetWorkspaceByOwnerIDAndNameParams) (database.Workspace, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceByOwnerIDAndName", ctx, arg) + ret0, _ := ret[0].(database.Workspace) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceByOwnerIDAndName indicates an expected call of GetWorkspaceByOwnerIDAndName. +func (mr *MockStoreMockRecorder) GetWorkspaceByOwnerIDAndName(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceByOwnerIDAndName", reflect.TypeOf((*MockStore)(nil).GetWorkspaceByOwnerIDAndName), ctx, arg) +} + +// GetWorkspaceByResourceID mocks base method. +func (m *MockStore) GetWorkspaceByResourceID(ctx context.Context, resourceID uuid.UUID) (database.Workspace, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceByResourceID", ctx, resourceID) + ret0, _ := ret[0].(database.Workspace) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceByResourceID indicates an expected call of GetWorkspaceByResourceID. +func (mr *MockStoreMockRecorder) GetWorkspaceByResourceID(ctx, resourceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceByResourceID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceByResourceID), ctx, resourceID) +} + +// GetWorkspaceByWorkspaceAppID mocks base method. +func (m *MockStore) GetWorkspaceByWorkspaceAppID(ctx context.Context, workspaceAppID uuid.UUID) (database.Workspace, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceByWorkspaceAppID", ctx, workspaceAppID) + ret0, _ := ret[0].(database.Workspace) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceByWorkspaceAppID indicates an expected call of GetWorkspaceByWorkspaceAppID. +func (mr *MockStoreMockRecorder) GetWorkspaceByWorkspaceAppID(ctx, workspaceAppID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceByWorkspaceAppID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceByWorkspaceAppID), ctx, workspaceAppID) +} + +// GetWorkspaceModulesByJobID mocks base method. +func (m *MockStore) GetWorkspaceModulesByJobID(ctx context.Context, jobID uuid.UUID) ([]database.WorkspaceModule, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceModulesByJobID", ctx, jobID) + ret0, _ := ret[0].([]database.WorkspaceModule) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceModulesByJobID indicates an expected call of GetWorkspaceModulesByJobID. +func (mr *MockStoreMockRecorder) GetWorkspaceModulesByJobID(ctx, jobID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceModulesByJobID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceModulesByJobID), ctx, jobID) +} + +// GetWorkspaceModulesCreatedAfter mocks base method. +func (m *MockStore) GetWorkspaceModulesCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceModule, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceModulesCreatedAfter", ctx, createdAt) + ret0, _ := ret[0].([]database.WorkspaceModule) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceModulesCreatedAfter indicates an expected call of GetWorkspaceModulesCreatedAfter. +func (mr *MockStoreMockRecorder) GetWorkspaceModulesCreatedAfter(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceModulesCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceModulesCreatedAfter), ctx, createdAt) +} + +// GetWorkspaceProxies mocks base method. +func (m *MockStore) GetWorkspaceProxies(ctx context.Context) ([]database.WorkspaceProxy, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceProxies", ctx) + ret0, _ := ret[0].([]database.WorkspaceProxy) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceProxies indicates an expected call of GetWorkspaceProxies. +func (mr *MockStoreMockRecorder) GetWorkspaceProxies(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceProxies", reflect.TypeOf((*MockStore)(nil).GetWorkspaceProxies), ctx) +} + +// GetWorkspaceProxyByHostname mocks base method. +func (m *MockStore) GetWorkspaceProxyByHostname(ctx context.Context, arg database.GetWorkspaceProxyByHostnameParams) (database.WorkspaceProxy, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceProxyByHostname", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceProxy) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceProxyByHostname indicates an expected call of GetWorkspaceProxyByHostname. +func (mr *MockStoreMockRecorder) GetWorkspaceProxyByHostname(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceProxyByHostname", reflect.TypeOf((*MockStore)(nil).GetWorkspaceProxyByHostname), ctx, arg) +} + +// GetWorkspaceProxyByID mocks base method. +func (m *MockStore) GetWorkspaceProxyByID(ctx context.Context, id uuid.UUID) (database.WorkspaceProxy, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceProxyByID", ctx, id) + ret0, _ := ret[0].(database.WorkspaceProxy) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceProxyByID indicates an expected call of GetWorkspaceProxyByID. +func (mr *MockStoreMockRecorder) GetWorkspaceProxyByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceProxyByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceProxyByID), ctx, id) +} + +// GetWorkspaceProxyByName mocks base method. +func (m *MockStore) GetWorkspaceProxyByName(ctx context.Context, name string) (database.WorkspaceProxy, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceProxyByName", ctx, name) + ret0, _ := ret[0].(database.WorkspaceProxy) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceProxyByName indicates an expected call of GetWorkspaceProxyByName. +func (mr *MockStoreMockRecorder) GetWorkspaceProxyByName(ctx, name any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceProxyByName", reflect.TypeOf((*MockStore)(nil).GetWorkspaceProxyByName), ctx, name) +} + +// GetWorkspaceResourceByID mocks base method. +func (m *MockStore) GetWorkspaceResourceByID(ctx context.Context, id uuid.UUID) (database.WorkspaceResource, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceResourceByID", ctx, id) + ret0, _ := ret[0].(database.WorkspaceResource) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceResourceByID indicates an expected call of GetWorkspaceResourceByID. +func (mr *MockStoreMockRecorder) GetWorkspaceResourceByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourceByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourceByID), ctx, id) +} + +// GetWorkspaceResourceMetadataByResourceIDs mocks base method. +func (m *MockStore) GetWorkspaceResourceMetadataByResourceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceResourceMetadatum, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceResourceMetadataByResourceIDs", ctx, ids) + ret0, _ := ret[0].([]database.WorkspaceResourceMetadatum) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceResourceMetadataByResourceIDs indicates an expected call of GetWorkspaceResourceMetadataByResourceIDs. +func (mr *MockStoreMockRecorder) GetWorkspaceResourceMetadataByResourceIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourceMetadataByResourceIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourceMetadataByResourceIDs), ctx, ids) +} + +// GetWorkspaceResourceMetadataCreatedAfter mocks base method. +func (m *MockStore) GetWorkspaceResourceMetadataCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceResourceMetadatum, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceResourceMetadataCreatedAfter", ctx, createdAt) + ret0, _ := ret[0].([]database.WorkspaceResourceMetadatum) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceResourceMetadataCreatedAfter indicates an expected call of GetWorkspaceResourceMetadataCreatedAfter. +func (mr *MockStoreMockRecorder) GetWorkspaceResourceMetadataCreatedAfter(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourceMetadataCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourceMetadataCreatedAfter), ctx, createdAt) +} + +// GetWorkspaceResourcesByJobID mocks base method. +func (m *MockStore) GetWorkspaceResourcesByJobID(ctx context.Context, jobID uuid.UUID) ([]database.WorkspaceResource, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceResourcesByJobID", ctx, jobID) + ret0, _ := ret[0].([]database.WorkspaceResource) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceResourcesByJobID indicates an expected call of GetWorkspaceResourcesByJobID. +func (mr *MockStoreMockRecorder) GetWorkspaceResourcesByJobID(ctx, jobID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourcesByJobID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourcesByJobID), ctx, jobID) +} + +// GetWorkspaceResourcesByJobIDs mocks base method. +func (m *MockStore) GetWorkspaceResourcesByJobIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceResource, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceResourcesByJobIDs", ctx, ids) + ret0, _ := ret[0].([]database.WorkspaceResource) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceResourcesByJobIDs indicates an expected call of GetWorkspaceResourcesByJobIDs. +func (mr *MockStoreMockRecorder) GetWorkspaceResourcesByJobIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourcesByJobIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourcesByJobIDs), ctx, ids) +} + +// GetWorkspaceResourcesCreatedAfter mocks base method. +func (m *MockStore) GetWorkspaceResourcesCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceResource, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceResourcesCreatedAfter", ctx, createdAt) + ret0, _ := ret[0].([]database.WorkspaceResource) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceResourcesCreatedAfter indicates an expected call of GetWorkspaceResourcesCreatedAfter. +func (mr *MockStoreMockRecorder) GetWorkspaceResourcesCreatedAfter(ctx, createdAt any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourcesCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourcesCreatedAfter), ctx, createdAt) +} + +// GetWorkspaceUniqueOwnerCountByTemplateIDs mocks base method. +func (m *MockStore) GetWorkspaceUniqueOwnerCountByTemplateIDs(ctx context.Context, templateIds []uuid.UUID) ([]database.GetWorkspaceUniqueOwnerCountByTemplateIDsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaceUniqueOwnerCountByTemplateIDs", ctx, templateIds) + ret0, _ := ret[0].([]database.GetWorkspaceUniqueOwnerCountByTemplateIDsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaceUniqueOwnerCountByTemplateIDs indicates an expected call of GetWorkspaceUniqueOwnerCountByTemplateIDs. +func (mr *MockStoreMockRecorder) GetWorkspaceUniqueOwnerCountByTemplateIDs(ctx, templateIds any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceUniqueOwnerCountByTemplateIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceUniqueOwnerCountByTemplateIDs), ctx, templateIds) +} + +// GetWorkspaces mocks base method. +func (m *MockStore) GetWorkspaces(ctx context.Context, arg database.GetWorkspacesParams) ([]database.GetWorkspacesRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspaces", ctx, arg) + ret0, _ := ret[0].([]database.GetWorkspacesRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspaces indicates an expected call of GetWorkspaces. +func (mr *MockStoreMockRecorder) GetWorkspaces(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaces", reflect.TypeOf((*MockStore)(nil).GetWorkspaces), ctx, arg) +} + +// GetWorkspacesAndAgentsByOwnerID mocks base method. +func (m *MockStore) GetWorkspacesAndAgentsByOwnerID(ctx context.Context, ownerID uuid.UUID) ([]database.GetWorkspacesAndAgentsByOwnerIDRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspacesAndAgentsByOwnerID", ctx, ownerID) + ret0, _ := ret[0].([]database.GetWorkspacesAndAgentsByOwnerIDRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspacesAndAgentsByOwnerID indicates an expected call of GetWorkspacesAndAgentsByOwnerID. +func (mr *MockStoreMockRecorder) GetWorkspacesAndAgentsByOwnerID(ctx, ownerID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspacesAndAgentsByOwnerID", reflect.TypeOf((*MockStore)(nil).GetWorkspacesAndAgentsByOwnerID), ctx, ownerID) +} + +// GetWorkspacesByTemplateID mocks base method. +func (m *MockStore) GetWorkspacesByTemplateID(ctx context.Context, templateID uuid.UUID) ([]database.WorkspaceTable, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspacesByTemplateID", ctx, templateID) + ret0, _ := ret[0].([]database.WorkspaceTable) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspacesByTemplateID indicates an expected call of GetWorkspacesByTemplateID. +func (mr *MockStoreMockRecorder) GetWorkspacesByTemplateID(ctx, templateID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspacesByTemplateID", reflect.TypeOf((*MockStore)(nil).GetWorkspacesByTemplateID), ctx, templateID) +} + +// GetWorkspacesEligibleForTransition mocks base method. +func (m *MockStore) GetWorkspacesEligibleForTransition(ctx context.Context, now time.Time) ([]database.GetWorkspacesEligibleForTransitionRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspacesEligibleForTransition", ctx, now) + ret0, _ := ret[0].([]database.GetWorkspacesEligibleForTransitionRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspacesEligibleForTransition indicates an expected call of GetWorkspacesEligibleForTransition. +func (mr *MockStoreMockRecorder) GetWorkspacesEligibleForTransition(ctx, now any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspacesEligibleForTransition", reflect.TypeOf((*MockStore)(nil).GetWorkspacesEligibleForTransition), ctx, now) +} + +// GetWorkspacesForWorkspaceMetrics mocks base method. +func (m *MockStore) GetWorkspacesForWorkspaceMetrics(ctx context.Context) ([]database.GetWorkspacesForWorkspaceMetricsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetWorkspacesForWorkspaceMetrics", ctx) + ret0, _ := ret[0].([]database.GetWorkspacesForWorkspaceMetricsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetWorkspacesForWorkspaceMetrics indicates an expected call of GetWorkspacesForWorkspaceMetrics. +func (mr *MockStoreMockRecorder) GetWorkspacesForWorkspaceMetrics(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspacesForWorkspaceMetrics", reflect.TypeOf((*MockStore)(nil).GetWorkspacesForWorkspaceMetrics), ctx) +} + +// InTx mocks base method. +func (m *MockStore) InTx(arg0 func(database.Store) error, arg1 *database.TxOptions) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InTx", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// InTx indicates an expected call of InTx. +func (mr *MockStoreMockRecorder) InTx(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InTx", reflect.TypeOf((*MockStore)(nil).InTx), arg0, arg1) +} + +// InsertAIBridgeInterception mocks base method. +func (m *MockStore) InsertAIBridgeInterception(ctx context.Context, arg database.InsertAIBridgeInterceptionParams) (database.AIBridgeInterception, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertAIBridgeInterception", ctx, arg) + ret0, _ := ret[0].(database.AIBridgeInterception) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertAIBridgeInterception indicates an expected call of InsertAIBridgeInterception. +func (mr *MockStoreMockRecorder) InsertAIBridgeInterception(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAIBridgeInterception", reflect.TypeOf((*MockStore)(nil).InsertAIBridgeInterception), ctx, arg) +} + +// InsertAIBridgeTokenUsage mocks base method. +func (m *MockStore) InsertAIBridgeTokenUsage(ctx context.Context, arg database.InsertAIBridgeTokenUsageParams) (database.AIBridgeTokenUsage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertAIBridgeTokenUsage", ctx, arg) + ret0, _ := ret[0].(database.AIBridgeTokenUsage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertAIBridgeTokenUsage indicates an expected call of InsertAIBridgeTokenUsage. +func (mr *MockStoreMockRecorder) InsertAIBridgeTokenUsage(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAIBridgeTokenUsage", reflect.TypeOf((*MockStore)(nil).InsertAIBridgeTokenUsage), ctx, arg) +} + +// InsertAIBridgeToolUsage mocks base method. +func (m *MockStore) InsertAIBridgeToolUsage(ctx context.Context, arg database.InsertAIBridgeToolUsageParams) (database.AIBridgeToolUsage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertAIBridgeToolUsage", ctx, arg) + ret0, _ := ret[0].(database.AIBridgeToolUsage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertAIBridgeToolUsage indicates an expected call of InsertAIBridgeToolUsage. +func (mr *MockStoreMockRecorder) InsertAIBridgeToolUsage(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAIBridgeToolUsage", reflect.TypeOf((*MockStore)(nil).InsertAIBridgeToolUsage), ctx, arg) +} + +// InsertAIBridgeUserPrompt mocks base method. +func (m *MockStore) InsertAIBridgeUserPrompt(ctx context.Context, arg database.InsertAIBridgeUserPromptParams) (database.AIBridgeUserPrompt, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertAIBridgeUserPrompt", ctx, arg) + ret0, _ := ret[0].(database.AIBridgeUserPrompt) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertAIBridgeUserPrompt indicates an expected call of InsertAIBridgeUserPrompt. +func (mr *MockStoreMockRecorder) InsertAIBridgeUserPrompt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAIBridgeUserPrompt", reflect.TypeOf((*MockStore)(nil).InsertAIBridgeUserPrompt), ctx, arg) +} + +// InsertAPIKey mocks base method. +func (m *MockStore) InsertAPIKey(ctx context.Context, arg database.InsertAPIKeyParams) (database.APIKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertAPIKey", ctx, arg) + ret0, _ := ret[0].(database.APIKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertAPIKey indicates an expected call of InsertAPIKey. +func (mr *MockStoreMockRecorder) InsertAPIKey(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAPIKey", reflect.TypeOf((*MockStore)(nil).InsertAPIKey), ctx, arg) +} + +// InsertAllUsersGroup mocks base method. +func (m *MockStore) InsertAllUsersGroup(ctx context.Context, organizationID uuid.UUID) (database.Group, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertAllUsersGroup", ctx, organizationID) + ret0, _ := ret[0].(database.Group) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertAllUsersGroup indicates an expected call of InsertAllUsersGroup. +func (mr *MockStoreMockRecorder) InsertAllUsersGroup(ctx, organizationID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAllUsersGroup", reflect.TypeOf((*MockStore)(nil).InsertAllUsersGroup), ctx, organizationID) +} + +// InsertAuditLog mocks base method. +func (m *MockStore) InsertAuditLog(ctx context.Context, arg database.InsertAuditLogParams) (database.AuditLog, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertAuditLog", ctx, arg) + ret0, _ := ret[0].(database.AuditLog) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertAuditLog indicates an expected call of InsertAuditLog. +func (mr *MockStoreMockRecorder) InsertAuditLog(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAuditLog", reflect.TypeOf((*MockStore)(nil).InsertAuditLog), ctx, arg) +} + +// InsertCryptoKey mocks base method. +func (m *MockStore) InsertCryptoKey(ctx context.Context, arg database.InsertCryptoKeyParams) (database.CryptoKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertCryptoKey", ctx, arg) + ret0, _ := ret[0].(database.CryptoKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertCryptoKey indicates an expected call of InsertCryptoKey. +func (mr *MockStoreMockRecorder) InsertCryptoKey(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertCryptoKey", reflect.TypeOf((*MockStore)(nil).InsertCryptoKey), ctx, arg) +} + +// InsertCustomRole mocks base method. +func (m *MockStore) InsertCustomRole(ctx context.Context, arg database.InsertCustomRoleParams) (database.CustomRole, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertCustomRole", ctx, arg) + ret0, _ := ret[0].(database.CustomRole) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertCustomRole indicates an expected call of InsertCustomRole. +func (mr *MockStoreMockRecorder) InsertCustomRole(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertCustomRole", reflect.TypeOf((*MockStore)(nil).InsertCustomRole), ctx, arg) +} + +// InsertDBCryptKey mocks base method. +func (m *MockStore) InsertDBCryptKey(ctx context.Context, arg database.InsertDBCryptKeyParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertDBCryptKey", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertDBCryptKey indicates an expected call of InsertDBCryptKey. +func (mr *MockStoreMockRecorder) InsertDBCryptKey(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertDBCryptKey", reflect.TypeOf((*MockStore)(nil).InsertDBCryptKey), ctx, arg) +} + +// InsertDERPMeshKey mocks base method. +func (m *MockStore) InsertDERPMeshKey(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertDERPMeshKey", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertDERPMeshKey indicates an expected call of InsertDERPMeshKey. +func (mr *MockStoreMockRecorder) InsertDERPMeshKey(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertDERPMeshKey", reflect.TypeOf((*MockStore)(nil).InsertDERPMeshKey), ctx, value) +} + +// InsertDeploymentID mocks base method. +func (m *MockStore) InsertDeploymentID(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertDeploymentID", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertDeploymentID indicates an expected call of InsertDeploymentID. +func (mr *MockStoreMockRecorder) InsertDeploymentID(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertDeploymentID", reflect.TypeOf((*MockStore)(nil).InsertDeploymentID), ctx, value) +} + +// InsertExternalAuthLink mocks base method. +func (m *MockStore) InsertExternalAuthLink(ctx context.Context, arg database.InsertExternalAuthLinkParams) (database.ExternalAuthLink, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertExternalAuthLink", ctx, arg) + ret0, _ := ret[0].(database.ExternalAuthLink) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertExternalAuthLink indicates an expected call of InsertExternalAuthLink. +func (mr *MockStoreMockRecorder) InsertExternalAuthLink(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertExternalAuthLink", reflect.TypeOf((*MockStore)(nil).InsertExternalAuthLink), ctx, arg) +} + +// InsertFile mocks base method. +func (m *MockStore) InsertFile(ctx context.Context, arg database.InsertFileParams) (database.File, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertFile", ctx, arg) + ret0, _ := ret[0].(database.File) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertFile indicates an expected call of InsertFile. +func (mr *MockStoreMockRecorder) InsertFile(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertFile", reflect.TypeOf((*MockStore)(nil).InsertFile), ctx, arg) +} + +// InsertGitSSHKey mocks base method. +func (m *MockStore) InsertGitSSHKey(ctx context.Context, arg database.InsertGitSSHKeyParams) (database.GitSSHKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertGitSSHKey", ctx, arg) + ret0, _ := ret[0].(database.GitSSHKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertGitSSHKey indicates an expected call of InsertGitSSHKey. +func (mr *MockStoreMockRecorder) InsertGitSSHKey(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertGitSSHKey", reflect.TypeOf((*MockStore)(nil).InsertGitSSHKey), ctx, arg) +} + +// InsertGroup mocks base method. +func (m *MockStore) InsertGroup(ctx context.Context, arg database.InsertGroupParams) (database.Group, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertGroup", ctx, arg) + ret0, _ := ret[0].(database.Group) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertGroup indicates an expected call of InsertGroup. +func (mr *MockStoreMockRecorder) InsertGroup(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertGroup", reflect.TypeOf((*MockStore)(nil).InsertGroup), ctx, arg) +} + +// InsertGroupMember mocks base method. +func (m *MockStore) InsertGroupMember(ctx context.Context, arg database.InsertGroupMemberParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertGroupMember", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertGroupMember indicates an expected call of InsertGroupMember. +func (mr *MockStoreMockRecorder) InsertGroupMember(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertGroupMember", reflect.TypeOf((*MockStore)(nil).InsertGroupMember), ctx, arg) +} + +// InsertInboxNotification mocks base method. +func (m *MockStore) InsertInboxNotification(ctx context.Context, arg database.InsertInboxNotificationParams) (database.InboxNotification, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertInboxNotification", ctx, arg) + ret0, _ := ret[0].(database.InboxNotification) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertInboxNotification indicates an expected call of InsertInboxNotification. +func (mr *MockStoreMockRecorder) InsertInboxNotification(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertInboxNotification", reflect.TypeOf((*MockStore)(nil).InsertInboxNotification), ctx, arg) +} + +// InsertLicense mocks base method. +func (m *MockStore) InsertLicense(ctx context.Context, arg database.InsertLicenseParams) (database.License, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertLicense", ctx, arg) + ret0, _ := ret[0].(database.License) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertLicense indicates an expected call of InsertLicense. +func (mr *MockStoreMockRecorder) InsertLicense(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertLicense", reflect.TypeOf((*MockStore)(nil).InsertLicense), ctx, arg) +} + +// InsertMemoryResourceMonitor mocks base method. +func (m *MockStore) InsertMemoryResourceMonitor(ctx context.Context, arg database.InsertMemoryResourceMonitorParams) (database.WorkspaceAgentMemoryResourceMonitor, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertMemoryResourceMonitor", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceAgentMemoryResourceMonitor) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertMemoryResourceMonitor indicates an expected call of InsertMemoryResourceMonitor. +func (mr *MockStoreMockRecorder) InsertMemoryResourceMonitor(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertMemoryResourceMonitor", reflect.TypeOf((*MockStore)(nil).InsertMemoryResourceMonitor), ctx, arg) +} + +// InsertMissingGroups mocks base method. +func (m *MockStore) InsertMissingGroups(ctx context.Context, arg database.InsertMissingGroupsParams) ([]database.Group, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertMissingGroups", ctx, arg) + ret0, _ := ret[0].([]database.Group) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertMissingGroups indicates an expected call of InsertMissingGroups. +func (mr *MockStoreMockRecorder) InsertMissingGroups(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertMissingGroups", reflect.TypeOf((*MockStore)(nil).InsertMissingGroups), ctx, arg) +} + +// InsertOAuth2ProviderApp mocks base method. +func (m *MockStore) InsertOAuth2ProviderApp(ctx context.Context, arg database.InsertOAuth2ProviderAppParams) (database.OAuth2ProviderApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertOAuth2ProviderApp", ctx, arg) + ret0, _ := ret[0].(database.OAuth2ProviderApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertOAuth2ProviderApp indicates an expected call of InsertOAuth2ProviderApp. +func (mr *MockStoreMockRecorder) InsertOAuth2ProviderApp(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOAuth2ProviderApp", reflect.TypeOf((*MockStore)(nil).InsertOAuth2ProviderApp), ctx, arg) +} + +// InsertOAuth2ProviderAppCode mocks base method. +func (m *MockStore) InsertOAuth2ProviderAppCode(ctx context.Context, arg database.InsertOAuth2ProviderAppCodeParams) (database.OAuth2ProviderAppCode, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertOAuth2ProviderAppCode", ctx, arg) + ret0, _ := ret[0].(database.OAuth2ProviderAppCode) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertOAuth2ProviderAppCode indicates an expected call of InsertOAuth2ProviderAppCode. +func (mr *MockStoreMockRecorder) InsertOAuth2ProviderAppCode(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOAuth2ProviderAppCode", reflect.TypeOf((*MockStore)(nil).InsertOAuth2ProviderAppCode), ctx, arg) +} + +// InsertOAuth2ProviderAppSecret mocks base method. +func (m *MockStore) InsertOAuth2ProviderAppSecret(ctx context.Context, arg database.InsertOAuth2ProviderAppSecretParams) (database.OAuth2ProviderAppSecret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertOAuth2ProviderAppSecret", ctx, arg) + ret0, _ := ret[0].(database.OAuth2ProviderAppSecret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertOAuth2ProviderAppSecret indicates an expected call of InsertOAuth2ProviderAppSecret. +func (mr *MockStoreMockRecorder) InsertOAuth2ProviderAppSecret(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOAuth2ProviderAppSecret", reflect.TypeOf((*MockStore)(nil).InsertOAuth2ProviderAppSecret), ctx, arg) +} + +// InsertOAuth2ProviderAppToken mocks base method. +func (m *MockStore) InsertOAuth2ProviderAppToken(ctx context.Context, arg database.InsertOAuth2ProviderAppTokenParams) (database.OAuth2ProviderAppToken, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertOAuth2ProviderAppToken", ctx, arg) + ret0, _ := ret[0].(database.OAuth2ProviderAppToken) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertOAuth2ProviderAppToken indicates an expected call of InsertOAuth2ProviderAppToken. +func (mr *MockStoreMockRecorder) InsertOAuth2ProviderAppToken(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOAuth2ProviderAppToken", reflect.TypeOf((*MockStore)(nil).InsertOAuth2ProviderAppToken), ctx, arg) +} + +// InsertOrganization mocks base method. +func (m *MockStore) InsertOrganization(ctx context.Context, arg database.InsertOrganizationParams) (database.Organization, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertOrganization", ctx, arg) + ret0, _ := ret[0].(database.Organization) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertOrganization indicates an expected call of InsertOrganization. +func (mr *MockStoreMockRecorder) InsertOrganization(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOrganization", reflect.TypeOf((*MockStore)(nil).InsertOrganization), ctx, arg) +} + +// InsertOrganizationMember mocks base method. +func (m *MockStore) InsertOrganizationMember(ctx context.Context, arg database.InsertOrganizationMemberParams) (database.OrganizationMember, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertOrganizationMember", ctx, arg) + ret0, _ := ret[0].(database.OrganizationMember) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertOrganizationMember indicates an expected call of InsertOrganizationMember. +func (mr *MockStoreMockRecorder) InsertOrganizationMember(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOrganizationMember", reflect.TypeOf((*MockStore)(nil).InsertOrganizationMember), ctx, arg) +} + +// InsertPreset mocks base method. +func (m *MockStore) InsertPreset(ctx context.Context, arg database.InsertPresetParams) (database.TemplateVersionPreset, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertPreset", ctx, arg) + ret0, _ := ret[0].(database.TemplateVersionPreset) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertPreset indicates an expected call of InsertPreset. +func (mr *MockStoreMockRecorder) InsertPreset(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertPreset", reflect.TypeOf((*MockStore)(nil).InsertPreset), ctx, arg) +} + +// InsertPresetParameters mocks base method. +func (m *MockStore) InsertPresetParameters(ctx context.Context, arg database.InsertPresetParametersParams) ([]database.TemplateVersionPresetParameter, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertPresetParameters", ctx, arg) + ret0, _ := ret[0].([]database.TemplateVersionPresetParameter) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertPresetParameters indicates an expected call of InsertPresetParameters. +func (mr *MockStoreMockRecorder) InsertPresetParameters(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertPresetParameters", reflect.TypeOf((*MockStore)(nil).InsertPresetParameters), ctx, arg) +} + +// InsertPresetPrebuildSchedule mocks base method. +func (m *MockStore) InsertPresetPrebuildSchedule(ctx context.Context, arg database.InsertPresetPrebuildScheduleParams) (database.TemplateVersionPresetPrebuildSchedule, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertPresetPrebuildSchedule", ctx, arg) + ret0, _ := ret[0].(database.TemplateVersionPresetPrebuildSchedule) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertPresetPrebuildSchedule indicates an expected call of InsertPresetPrebuildSchedule. +func (mr *MockStoreMockRecorder) InsertPresetPrebuildSchedule(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertPresetPrebuildSchedule", reflect.TypeOf((*MockStore)(nil).InsertPresetPrebuildSchedule), ctx, arg) +} + +// InsertProvisionerJob mocks base method. +func (m *MockStore) InsertProvisionerJob(ctx context.Context, arg database.InsertProvisionerJobParams) (database.ProvisionerJob, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertProvisionerJob", ctx, arg) + ret0, _ := ret[0].(database.ProvisionerJob) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertProvisionerJob indicates an expected call of InsertProvisionerJob. +func (mr *MockStoreMockRecorder) InsertProvisionerJob(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertProvisionerJob", reflect.TypeOf((*MockStore)(nil).InsertProvisionerJob), ctx, arg) +} + +// InsertProvisionerJobLogs mocks base method. +func (m *MockStore) InsertProvisionerJobLogs(ctx context.Context, arg database.InsertProvisionerJobLogsParams) ([]database.ProvisionerJobLog, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertProvisionerJobLogs", ctx, arg) + ret0, _ := ret[0].([]database.ProvisionerJobLog) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertProvisionerJobLogs indicates an expected call of InsertProvisionerJobLogs. +func (mr *MockStoreMockRecorder) InsertProvisionerJobLogs(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertProvisionerJobLogs", reflect.TypeOf((*MockStore)(nil).InsertProvisionerJobLogs), ctx, arg) +} + +// InsertProvisionerJobTimings mocks base method. +func (m *MockStore) InsertProvisionerJobTimings(ctx context.Context, arg database.InsertProvisionerJobTimingsParams) ([]database.ProvisionerJobTiming, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertProvisionerJobTimings", ctx, arg) + ret0, _ := ret[0].([]database.ProvisionerJobTiming) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertProvisionerJobTimings indicates an expected call of InsertProvisionerJobTimings. +func (mr *MockStoreMockRecorder) InsertProvisionerJobTimings(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertProvisionerJobTimings", reflect.TypeOf((*MockStore)(nil).InsertProvisionerJobTimings), ctx, arg) +} + +// InsertProvisionerKey mocks base method. +func (m *MockStore) InsertProvisionerKey(ctx context.Context, arg database.InsertProvisionerKeyParams) (database.ProvisionerKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertProvisionerKey", ctx, arg) + ret0, _ := ret[0].(database.ProvisionerKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertProvisionerKey indicates an expected call of InsertProvisionerKey. +func (mr *MockStoreMockRecorder) InsertProvisionerKey(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertProvisionerKey", reflect.TypeOf((*MockStore)(nil).InsertProvisionerKey), ctx, arg) +} + +// InsertReplica mocks base method. +func (m *MockStore) InsertReplica(ctx context.Context, arg database.InsertReplicaParams) (database.Replica, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertReplica", ctx, arg) + ret0, _ := ret[0].(database.Replica) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertReplica indicates an expected call of InsertReplica. +func (mr *MockStoreMockRecorder) InsertReplica(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertReplica", reflect.TypeOf((*MockStore)(nil).InsertReplica), ctx, arg) +} + +// InsertTask mocks base method. +func (m *MockStore) InsertTask(ctx context.Context, arg database.InsertTaskParams) (database.TaskTable, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertTask", ctx, arg) + ret0, _ := ret[0].(database.TaskTable) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertTask indicates an expected call of InsertTask. +func (mr *MockStoreMockRecorder) InsertTask(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTask", reflect.TypeOf((*MockStore)(nil).InsertTask), ctx, arg) +} + +// InsertTelemetryItemIfNotExists mocks base method. +func (m *MockStore) InsertTelemetryItemIfNotExists(ctx context.Context, arg database.InsertTelemetryItemIfNotExistsParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertTelemetryItemIfNotExists", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertTelemetryItemIfNotExists indicates an expected call of InsertTelemetryItemIfNotExists. +func (mr *MockStoreMockRecorder) InsertTelemetryItemIfNotExists(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTelemetryItemIfNotExists", reflect.TypeOf((*MockStore)(nil).InsertTelemetryItemIfNotExists), ctx, arg) +} + +// InsertTelemetryLock mocks base method. +func (m *MockStore) InsertTelemetryLock(ctx context.Context, arg database.InsertTelemetryLockParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertTelemetryLock", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertTelemetryLock indicates an expected call of InsertTelemetryLock. +func (mr *MockStoreMockRecorder) InsertTelemetryLock(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTelemetryLock", reflect.TypeOf((*MockStore)(nil).InsertTelemetryLock), ctx, arg) +} + +// InsertTemplate mocks base method. +func (m *MockStore) InsertTemplate(ctx context.Context, arg database.InsertTemplateParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertTemplate", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertTemplate indicates an expected call of InsertTemplate. +func (mr *MockStoreMockRecorder) InsertTemplate(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplate", reflect.TypeOf((*MockStore)(nil).InsertTemplate), ctx, arg) +} + +// InsertTemplateVersion mocks base method. +func (m *MockStore) InsertTemplateVersion(ctx context.Context, arg database.InsertTemplateVersionParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertTemplateVersion", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertTemplateVersion indicates an expected call of InsertTemplateVersion. +func (mr *MockStoreMockRecorder) InsertTemplateVersion(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplateVersion", reflect.TypeOf((*MockStore)(nil).InsertTemplateVersion), ctx, arg) +} + +// InsertTemplateVersionParameter mocks base method. +func (m *MockStore) InsertTemplateVersionParameter(ctx context.Context, arg database.InsertTemplateVersionParameterParams) (database.TemplateVersionParameter, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertTemplateVersionParameter", ctx, arg) + ret0, _ := ret[0].(database.TemplateVersionParameter) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertTemplateVersionParameter indicates an expected call of InsertTemplateVersionParameter. +func (mr *MockStoreMockRecorder) InsertTemplateVersionParameter(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplateVersionParameter", reflect.TypeOf((*MockStore)(nil).InsertTemplateVersionParameter), ctx, arg) +} + +// InsertTemplateVersionTerraformValuesByJobID mocks base method. +func (m *MockStore) InsertTemplateVersionTerraformValuesByJobID(ctx context.Context, arg database.InsertTemplateVersionTerraformValuesByJobIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertTemplateVersionTerraformValuesByJobID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertTemplateVersionTerraformValuesByJobID indicates an expected call of InsertTemplateVersionTerraformValuesByJobID. +func (mr *MockStoreMockRecorder) InsertTemplateVersionTerraformValuesByJobID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplateVersionTerraformValuesByJobID", reflect.TypeOf((*MockStore)(nil).InsertTemplateVersionTerraformValuesByJobID), ctx, arg) +} + +// InsertTemplateVersionVariable mocks base method. +func (m *MockStore) InsertTemplateVersionVariable(ctx context.Context, arg database.InsertTemplateVersionVariableParams) (database.TemplateVersionVariable, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertTemplateVersionVariable", ctx, arg) + ret0, _ := ret[0].(database.TemplateVersionVariable) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertTemplateVersionVariable indicates an expected call of InsertTemplateVersionVariable. +func (mr *MockStoreMockRecorder) InsertTemplateVersionVariable(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplateVersionVariable", reflect.TypeOf((*MockStore)(nil).InsertTemplateVersionVariable), ctx, arg) +} + +// InsertTemplateVersionWorkspaceTag mocks base method. +func (m *MockStore) InsertTemplateVersionWorkspaceTag(ctx context.Context, arg database.InsertTemplateVersionWorkspaceTagParams) (database.TemplateVersionWorkspaceTag, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertTemplateVersionWorkspaceTag", ctx, arg) + ret0, _ := ret[0].(database.TemplateVersionWorkspaceTag) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertTemplateVersionWorkspaceTag indicates an expected call of InsertTemplateVersionWorkspaceTag. +func (mr *MockStoreMockRecorder) InsertTemplateVersionWorkspaceTag(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplateVersionWorkspaceTag", reflect.TypeOf((*MockStore)(nil).InsertTemplateVersionWorkspaceTag), ctx, arg) +} + +// InsertUsageEvent mocks base method. +func (m *MockStore) InsertUsageEvent(ctx context.Context, arg database.InsertUsageEventParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertUsageEvent", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertUsageEvent indicates an expected call of InsertUsageEvent. +func (mr *MockStoreMockRecorder) InsertUsageEvent(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUsageEvent", reflect.TypeOf((*MockStore)(nil).InsertUsageEvent), ctx, arg) +} + +// InsertUser mocks base method. +func (m *MockStore) InsertUser(ctx context.Context, arg database.InsertUserParams) (database.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertUser", ctx, arg) + ret0, _ := ret[0].(database.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertUser indicates an expected call of InsertUser. +func (mr *MockStoreMockRecorder) InsertUser(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUser", reflect.TypeOf((*MockStore)(nil).InsertUser), ctx, arg) +} + +// InsertUserGroupsByID mocks base method. +func (m *MockStore) InsertUserGroupsByID(ctx context.Context, arg database.InsertUserGroupsByIDParams) ([]uuid.UUID, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertUserGroupsByID", ctx, arg) + ret0, _ := ret[0].([]uuid.UUID) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertUserGroupsByID indicates an expected call of InsertUserGroupsByID. +func (mr *MockStoreMockRecorder) InsertUserGroupsByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUserGroupsByID", reflect.TypeOf((*MockStore)(nil).InsertUserGroupsByID), ctx, arg) +} + +// InsertUserGroupsByName mocks base method. +func (m *MockStore) InsertUserGroupsByName(ctx context.Context, arg database.InsertUserGroupsByNameParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertUserGroupsByName", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertUserGroupsByName indicates an expected call of InsertUserGroupsByName. +func (mr *MockStoreMockRecorder) InsertUserGroupsByName(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUserGroupsByName", reflect.TypeOf((*MockStore)(nil).InsertUserGroupsByName), ctx, arg) +} + +// InsertUserLink mocks base method. +func (m *MockStore) InsertUserLink(ctx context.Context, arg database.InsertUserLinkParams) (database.UserLink, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertUserLink", ctx, arg) + ret0, _ := ret[0].(database.UserLink) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertUserLink indicates an expected call of InsertUserLink. +func (mr *MockStoreMockRecorder) InsertUserLink(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUserLink", reflect.TypeOf((*MockStore)(nil).InsertUserLink), ctx, arg) +} + +// InsertVolumeResourceMonitor mocks base method. +func (m *MockStore) InsertVolumeResourceMonitor(ctx context.Context, arg database.InsertVolumeResourceMonitorParams) (database.WorkspaceAgentVolumeResourceMonitor, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertVolumeResourceMonitor", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceAgentVolumeResourceMonitor) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertVolumeResourceMonitor indicates an expected call of InsertVolumeResourceMonitor. +func (mr *MockStoreMockRecorder) InsertVolumeResourceMonitor(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertVolumeResourceMonitor", reflect.TypeOf((*MockStore)(nil).InsertVolumeResourceMonitor), ctx, arg) +} + +// InsertWebpushSubscription mocks base method. +func (m *MockStore) InsertWebpushSubscription(ctx context.Context, arg database.InsertWebpushSubscriptionParams) (database.WebpushSubscription, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWebpushSubscription", ctx, arg) + ret0, _ := ret[0].(database.WebpushSubscription) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWebpushSubscription indicates an expected call of InsertWebpushSubscription. +func (mr *MockStoreMockRecorder) InsertWebpushSubscription(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWebpushSubscription", reflect.TypeOf((*MockStore)(nil).InsertWebpushSubscription), ctx, arg) +} + +// InsertWorkspace mocks base method. +func (m *MockStore) InsertWorkspace(ctx context.Context, arg database.InsertWorkspaceParams) (database.WorkspaceTable, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspace", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceTable) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspace indicates an expected call of InsertWorkspace. +func (mr *MockStoreMockRecorder) InsertWorkspace(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspace", reflect.TypeOf((*MockStore)(nil).InsertWorkspace), ctx, arg) +} + +// InsertWorkspaceAgent mocks base method. +func (m *MockStore) InsertWorkspaceAgent(ctx context.Context, arg database.InsertWorkspaceAgentParams) (database.WorkspaceAgent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceAgent", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceAgent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspaceAgent indicates an expected call of InsertWorkspaceAgent. +func (mr *MockStoreMockRecorder) InsertWorkspaceAgent(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgent", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgent), ctx, arg) +} + +// InsertWorkspaceAgentDevcontainers mocks base method. +func (m *MockStore) InsertWorkspaceAgentDevcontainers(ctx context.Context, arg database.InsertWorkspaceAgentDevcontainersParams) ([]database.WorkspaceAgentDevcontainer, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceAgentDevcontainers", ctx, arg) + ret0, _ := ret[0].([]database.WorkspaceAgentDevcontainer) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspaceAgentDevcontainers indicates an expected call of InsertWorkspaceAgentDevcontainers. +func (mr *MockStoreMockRecorder) InsertWorkspaceAgentDevcontainers(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentDevcontainers", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentDevcontainers), ctx, arg) +} + +// InsertWorkspaceAgentLogSources mocks base method. +func (m *MockStore) InsertWorkspaceAgentLogSources(ctx context.Context, arg database.InsertWorkspaceAgentLogSourcesParams) ([]database.WorkspaceAgentLogSource, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceAgentLogSources", ctx, arg) + ret0, _ := ret[0].([]database.WorkspaceAgentLogSource) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspaceAgentLogSources indicates an expected call of InsertWorkspaceAgentLogSources. +func (mr *MockStoreMockRecorder) InsertWorkspaceAgentLogSources(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentLogSources", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentLogSources), ctx, arg) +} + +// InsertWorkspaceAgentLogs mocks base method. +func (m *MockStore) InsertWorkspaceAgentLogs(ctx context.Context, arg database.InsertWorkspaceAgentLogsParams) ([]database.WorkspaceAgentLog, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceAgentLogs", ctx, arg) + ret0, _ := ret[0].([]database.WorkspaceAgentLog) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspaceAgentLogs indicates an expected call of InsertWorkspaceAgentLogs. +func (mr *MockStoreMockRecorder) InsertWorkspaceAgentLogs(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentLogs", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentLogs), ctx, arg) +} + +// InsertWorkspaceAgentMetadata mocks base method. +func (m *MockStore) InsertWorkspaceAgentMetadata(ctx context.Context, arg database.InsertWorkspaceAgentMetadataParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceAgentMetadata", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertWorkspaceAgentMetadata indicates an expected call of InsertWorkspaceAgentMetadata. +func (mr *MockStoreMockRecorder) InsertWorkspaceAgentMetadata(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentMetadata", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentMetadata), ctx, arg) +} + +// InsertWorkspaceAgentScriptTimings mocks base method. +func (m *MockStore) InsertWorkspaceAgentScriptTimings(ctx context.Context, arg database.InsertWorkspaceAgentScriptTimingsParams) (database.WorkspaceAgentScriptTiming, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceAgentScriptTimings", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceAgentScriptTiming) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspaceAgentScriptTimings indicates an expected call of InsertWorkspaceAgentScriptTimings. +func (mr *MockStoreMockRecorder) InsertWorkspaceAgentScriptTimings(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentScriptTimings", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentScriptTimings), ctx, arg) +} + +// InsertWorkspaceAgentScripts mocks base method. +func (m *MockStore) InsertWorkspaceAgentScripts(ctx context.Context, arg database.InsertWorkspaceAgentScriptsParams) ([]database.WorkspaceAgentScript, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceAgentScripts", ctx, arg) + ret0, _ := ret[0].([]database.WorkspaceAgentScript) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspaceAgentScripts indicates an expected call of InsertWorkspaceAgentScripts. +func (mr *MockStoreMockRecorder) InsertWorkspaceAgentScripts(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentScripts", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentScripts), ctx, arg) +} + +// InsertWorkspaceAgentStats mocks base method. +func (m *MockStore) InsertWorkspaceAgentStats(ctx context.Context, arg database.InsertWorkspaceAgentStatsParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceAgentStats", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertWorkspaceAgentStats indicates an expected call of InsertWorkspaceAgentStats. +func (mr *MockStoreMockRecorder) InsertWorkspaceAgentStats(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentStats", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentStats), ctx, arg) +} + +// InsertWorkspaceAppStats mocks base method. +func (m *MockStore) InsertWorkspaceAppStats(ctx context.Context, arg database.InsertWorkspaceAppStatsParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceAppStats", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertWorkspaceAppStats indicates an expected call of InsertWorkspaceAppStats. +func (mr *MockStoreMockRecorder) InsertWorkspaceAppStats(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAppStats", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAppStats), ctx, arg) +} + +// InsertWorkspaceAppStatus mocks base method. +func (m *MockStore) InsertWorkspaceAppStatus(ctx context.Context, arg database.InsertWorkspaceAppStatusParams) (database.WorkspaceAppStatus, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceAppStatus", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceAppStatus) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspaceAppStatus indicates an expected call of InsertWorkspaceAppStatus. +func (mr *MockStoreMockRecorder) InsertWorkspaceAppStatus(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAppStatus", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAppStatus), ctx, arg) +} + +// InsertWorkspaceBuild mocks base method. +func (m *MockStore) InsertWorkspaceBuild(ctx context.Context, arg database.InsertWorkspaceBuildParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceBuild", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertWorkspaceBuild indicates an expected call of InsertWorkspaceBuild. +func (mr *MockStoreMockRecorder) InsertWorkspaceBuild(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceBuild", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceBuild), ctx, arg) +} + +// InsertWorkspaceBuildParameters mocks base method. +func (m *MockStore) InsertWorkspaceBuildParameters(ctx context.Context, arg database.InsertWorkspaceBuildParametersParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceBuildParameters", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// InsertWorkspaceBuildParameters indicates an expected call of InsertWorkspaceBuildParameters. +func (mr *MockStoreMockRecorder) InsertWorkspaceBuildParameters(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceBuildParameters", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceBuildParameters), ctx, arg) +} + +// InsertWorkspaceModule mocks base method. +func (m *MockStore) InsertWorkspaceModule(ctx context.Context, arg database.InsertWorkspaceModuleParams) (database.WorkspaceModule, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceModule", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceModule) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspaceModule indicates an expected call of InsertWorkspaceModule. +func (mr *MockStoreMockRecorder) InsertWorkspaceModule(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceModule", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceModule), ctx, arg) +} + +// InsertWorkspaceProxy mocks base method. +func (m *MockStore) InsertWorkspaceProxy(ctx context.Context, arg database.InsertWorkspaceProxyParams) (database.WorkspaceProxy, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceProxy", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceProxy) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspaceProxy indicates an expected call of InsertWorkspaceProxy. +func (mr *MockStoreMockRecorder) InsertWorkspaceProxy(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceProxy", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceProxy), ctx, arg) +} + +// InsertWorkspaceResource mocks base method. +func (m *MockStore) InsertWorkspaceResource(ctx context.Context, arg database.InsertWorkspaceResourceParams) (database.WorkspaceResource, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceResource", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceResource) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspaceResource indicates an expected call of InsertWorkspaceResource. +func (mr *MockStoreMockRecorder) InsertWorkspaceResource(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceResource", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceResource), ctx, arg) +} + +// InsertWorkspaceResourceMetadata mocks base method. +func (m *MockStore) InsertWorkspaceResourceMetadata(ctx context.Context, arg database.InsertWorkspaceResourceMetadataParams) ([]database.WorkspaceResourceMetadatum, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InsertWorkspaceResourceMetadata", ctx, arg) + ret0, _ := ret[0].([]database.WorkspaceResourceMetadatum) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InsertWorkspaceResourceMetadata indicates an expected call of InsertWorkspaceResourceMetadata. +func (mr *MockStoreMockRecorder) InsertWorkspaceResourceMetadata(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceResourceMetadata", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceResourceMetadata), ctx, arg) +} + +// ListAIBridgeInterceptions mocks base method. +func (m *MockStore) ListAIBridgeInterceptions(ctx context.Context, arg database.ListAIBridgeInterceptionsParams) ([]database.ListAIBridgeInterceptionsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAIBridgeInterceptions", ctx, arg) + ret0, _ := ret[0].([]database.ListAIBridgeInterceptionsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAIBridgeInterceptions indicates an expected call of ListAIBridgeInterceptions. +func (mr *MockStoreMockRecorder) ListAIBridgeInterceptions(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeInterceptions", reflect.TypeOf((*MockStore)(nil).ListAIBridgeInterceptions), ctx, arg) +} + +// ListAIBridgeInterceptionsTelemetrySummaries mocks base method. +func (m *MockStore) ListAIBridgeInterceptionsTelemetrySummaries(ctx context.Context, arg database.ListAIBridgeInterceptionsTelemetrySummariesParams) ([]database.ListAIBridgeInterceptionsTelemetrySummariesRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAIBridgeInterceptionsTelemetrySummaries", ctx, arg) + ret0, _ := ret[0].([]database.ListAIBridgeInterceptionsTelemetrySummariesRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAIBridgeInterceptionsTelemetrySummaries indicates an expected call of ListAIBridgeInterceptionsTelemetrySummaries. +func (mr *MockStoreMockRecorder) ListAIBridgeInterceptionsTelemetrySummaries(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeInterceptionsTelemetrySummaries", reflect.TypeOf((*MockStore)(nil).ListAIBridgeInterceptionsTelemetrySummaries), ctx, arg) +} + +// ListAIBridgeModels mocks base method. +func (m *MockStore) ListAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams) ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAIBridgeModels", ctx, arg) + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAIBridgeModels indicates an expected call of ListAIBridgeModels. +func (mr *MockStoreMockRecorder) ListAIBridgeModels(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeModels", reflect.TypeOf((*MockStore)(nil).ListAIBridgeModels), ctx, arg) +} + +// ListAIBridgeTokenUsagesByInterceptionIDs mocks base method. +func (m *MockStore) ListAIBridgeTokenUsagesByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]database.AIBridgeTokenUsage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAIBridgeTokenUsagesByInterceptionIDs", ctx, interceptionIds) + ret0, _ := ret[0].([]database.AIBridgeTokenUsage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAIBridgeTokenUsagesByInterceptionIDs indicates an expected call of ListAIBridgeTokenUsagesByInterceptionIDs. +func (mr *MockStoreMockRecorder) ListAIBridgeTokenUsagesByInterceptionIDs(ctx, interceptionIds any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeTokenUsagesByInterceptionIDs", reflect.TypeOf((*MockStore)(nil).ListAIBridgeTokenUsagesByInterceptionIDs), ctx, interceptionIds) +} + +// ListAIBridgeToolUsagesByInterceptionIDs mocks base method. +func (m *MockStore) ListAIBridgeToolUsagesByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]database.AIBridgeToolUsage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAIBridgeToolUsagesByInterceptionIDs", ctx, interceptionIds) + ret0, _ := ret[0].([]database.AIBridgeToolUsage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAIBridgeToolUsagesByInterceptionIDs indicates an expected call of ListAIBridgeToolUsagesByInterceptionIDs. +func (mr *MockStoreMockRecorder) ListAIBridgeToolUsagesByInterceptionIDs(ctx, interceptionIds any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeToolUsagesByInterceptionIDs", reflect.TypeOf((*MockStore)(nil).ListAIBridgeToolUsagesByInterceptionIDs), ctx, interceptionIds) +} + +// ListAIBridgeUserPromptsByInterceptionIDs mocks base method. +func (m *MockStore) ListAIBridgeUserPromptsByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]database.AIBridgeUserPrompt, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAIBridgeUserPromptsByInterceptionIDs", ctx, interceptionIds) + ret0, _ := ret[0].([]database.AIBridgeUserPrompt) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAIBridgeUserPromptsByInterceptionIDs indicates an expected call of ListAIBridgeUserPromptsByInterceptionIDs. +func (mr *MockStoreMockRecorder) ListAIBridgeUserPromptsByInterceptionIDs(ctx, interceptionIds any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeUserPromptsByInterceptionIDs", reflect.TypeOf((*MockStore)(nil).ListAIBridgeUserPromptsByInterceptionIDs), ctx, interceptionIds) +} + +// ListAuthorizedAIBridgeInterceptions mocks base method. +func (m *MockStore) ListAuthorizedAIBridgeInterceptions(ctx context.Context, arg database.ListAIBridgeInterceptionsParams, prepared rbac.PreparedAuthorized) ([]database.ListAIBridgeInterceptionsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAuthorizedAIBridgeInterceptions", ctx, arg, prepared) + ret0, _ := ret[0].([]database.ListAIBridgeInterceptionsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAuthorizedAIBridgeInterceptions indicates an expected call of ListAuthorizedAIBridgeInterceptions. +func (mr *MockStoreMockRecorder) ListAuthorizedAIBridgeInterceptions(ctx, arg, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAuthorizedAIBridgeInterceptions", reflect.TypeOf((*MockStore)(nil).ListAuthorizedAIBridgeInterceptions), ctx, arg, prepared) +} + +// ListAuthorizedAIBridgeModels mocks base method. +func (m *MockStore) ListAuthorizedAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams, prepared rbac.PreparedAuthorized) ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAuthorizedAIBridgeModels", ctx, arg, prepared) + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAuthorizedAIBridgeModels indicates an expected call of ListAuthorizedAIBridgeModels. +func (mr *MockStoreMockRecorder) ListAuthorizedAIBridgeModels(ctx, arg, prepared any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAuthorizedAIBridgeModels", reflect.TypeOf((*MockStore)(nil).ListAuthorizedAIBridgeModels), ctx, arg, prepared) +} + +// ListProvisionerKeysByOrganization mocks base method. +func (m *MockStore) ListProvisionerKeysByOrganization(ctx context.Context, organizationID uuid.UUID) ([]database.ProvisionerKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListProvisionerKeysByOrganization", ctx, organizationID) + ret0, _ := ret[0].([]database.ProvisionerKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListProvisionerKeysByOrganization indicates an expected call of ListProvisionerKeysByOrganization. +func (mr *MockStoreMockRecorder) ListProvisionerKeysByOrganization(ctx, organizationID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProvisionerKeysByOrganization", reflect.TypeOf((*MockStore)(nil).ListProvisionerKeysByOrganization), ctx, organizationID) +} + +// ListProvisionerKeysByOrganizationExcludeReserved mocks base method. +func (m *MockStore) ListProvisionerKeysByOrganizationExcludeReserved(ctx context.Context, organizationID uuid.UUID) ([]database.ProvisionerKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListProvisionerKeysByOrganizationExcludeReserved", ctx, organizationID) + ret0, _ := ret[0].([]database.ProvisionerKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListProvisionerKeysByOrganizationExcludeReserved indicates an expected call of ListProvisionerKeysByOrganizationExcludeReserved. +func (mr *MockStoreMockRecorder) ListProvisionerKeysByOrganizationExcludeReserved(ctx, organizationID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProvisionerKeysByOrganizationExcludeReserved", reflect.TypeOf((*MockStore)(nil).ListProvisionerKeysByOrganizationExcludeReserved), ctx, organizationID) +} + +// ListTasks mocks base method. +func (m *MockStore) ListTasks(ctx context.Context, arg database.ListTasksParams) ([]database.Task, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListTasks", ctx, arg) + ret0, _ := ret[0].([]database.Task) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListTasks indicates an expected call of ListTasks. +func (mr *MockStoreMockRecorder) ListTasks(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTasks", reflect.TypeOf((*MockStore)(nil).ListTasks), ctx, arg) +} + +// ListUserSecrets mocks base method. +func (m *MockStore) ListUserSecrets(ctx context.Context, userID uuid.UUID) ([]database.UserSecret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListUserSecrets", ctx, userID) + ret0, _ := ret[0].([]database.UserSecret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListUserSecrets indicates an expected call of ListUserSecrets. +func (mr *MockStoreMockRecorder) ListUserSecrets(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUserSecrets", reflect.TypeOf((*MockStore)(nil).ListUserSecrets), ctx, userID) +} + +// ListWorkspaceAgentPortShares mocks base method. +func (m *MockStore) ListWorkspaceAgentPortShares(ctx context.Context, workspaceID uuid.UUID) ([]database.WorkspaceAgentPortShare, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListWorkspaceAgentPortShares", ctx, workspaceID) + ret0, _ := ret[0].([]database.WorkspaceAgentPortShare) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListWorkspaceAgentPortShares indicates an expected call of ListWorkspaceAgentPortShares. +func (mr *MockStoreMockRecorder) ListWorkspaceAgentPortShares(ctx, workspaceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListWorkspaceAgentPortShares", reflect.TypeOf((*MockStore)(nil).ListWorkspaceAgentPortShares), ctx, workspaceID) +} + +// MarkAllInboxNotificationsAsRead mocks base method. +func (m *MockStore) MarkAllInboxNotificationsAsRead(ctx context.Context, arg database.MarkAllInboxNotificationsAsReadParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MarkAllInboxNotificationsAsRead", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// MarkAllInboxNotificationsAsRead indicates an expected call of MarkAllInboxNotificationsAsRead. +func (mr *MockStoreMockRecorder) MarkAllInboxNotificationsAsRead(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MarkAllInboxNotificationsAsRead", reflect.TypeOf((*MockStore)(nil).MarkAllInboxNotificationsAsRead), ctx, arg) +} + +// OIDCClaimFieldValues mocks base method. +func (m *MockStore) OIDCClaimFieldValues(ctx context.Context, arg database.OIDCClaimFieldValuesParams) ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "OIDCClaimFieldValues", ctx, arg) + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// OIDCClaimFieldValues indicates an expected call of OIDCClaimFieldValues. +func (mr *MockStoreMockRecorder) OIDCClaimFieldValues(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OIDCClaimFieldValues", reflect.TypeOf((*MockStore)(nil).OIDCClaimFieldValues), ctx, arg) +} + +// OIDCClaimFields mocks base method. +func (m *MockStore) OIDCClaimFields(ctx context.Context, organizationID uuid.UUID) ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "OIDCClaimFields", ctx, organizationID) + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// OIDCClaimFields indicates an expected call of OIDCClaimFields. +func (mr *MockStoreMockRecorder) OIDCClaimFields(ctx, organizationID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OIDCClaimFields", reflect.TypeOf((*MockStore)(nil).OIDCClaimFields), ctx, organizationID) +} + +// OrganizationMembers mocks base method. +func (m *MockStore) OrganizationMembers(ctx context.Context, arg database.OrganizationMembersParams) ([]database.OrganizationMembersRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "OrganizationMembers", ctx, arg) + ret0, _ := ret[0].([]database.OrganizationMembersRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// OrganizationMembers indicates an expected call of OrganizationMembers. +func (mr *MockStoreMockRecorder) OrganizationMembers(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OrganizationMembers", reflect.TypeOf((*MockStore)(nil).OrganizationMembers), ctx, arg) +} + +// PGLocks mocks base method. +func (m *MockStore) PGLocks(ctx context.Context) (database.PGLocks, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "PGLocks", ctx) + ret0, _ := ret[0].(database.PGLocks) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// PGLocks indicates an expected call of PGLocks. +func (mr *MockStoreMockRecorder) PGLocks(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PGLocks", reflect.TypeOf((*MockStore)(nil).PGLocks), ctx) +} + +// PaginatedOrganizationMembers mocks base method. +func (m *MockStore) PaginatedOrganizationMembers(ctx context.Context, arg database.PaginatedOrganizationMembersParams) ([]database.PaginatedOrganizationMembersRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "PaginatedOrganizationMembers", ctx, arg) + ret0, _ := ret[0].([]database.PaginatedOrganizationMembersRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// PaginatedOrganizationMembers indicates an expected call of PaginatedOrganizationMembers. +func (mr *MockStoreMockRecorder) PaginatedOrganizationMembers(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PaginatedOrganizationMembers", reflect.TypeOf((*MockStore)(nil).PaginatedOrganizationMembers), ctx, arg) +} + +// Ping mocks base method. +func (m *MockStore) Ping(ctx context.Context) (time.Duration, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Ping", ctx) + ret0, _ := ret[0].(time.Duration) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Ping indicates an expected call of Ping. +func (mr *MockStoreMockRecorder) Ping(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Ping", reflect.TypeOf((*MockStore)(nil).Ping), ctx) +} + +// ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate mocks base method. +func (m *MockStore) ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate(ctx context.Context, templateID uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate", ctx, templateID) + ret0, _ := ret[0].(error) + return ret0 +} + +// ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate indicates an expected call of ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate. +func (mr *MockStoreMockRecorder) ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate(ctx, templateID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate", reflect.TypeOf((*MockStore)(nil).ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate), ctx, templateID) +} + +// RegisterWorkspaceProxy mocks base method. +func (m *MockStore) RegisterWorkspaceProxy(ctx context.Context, arg database.RegisterWorkspaceProxyParams) (database.WorkspaceProxy, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RegisterWorkspaceProxy", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceProxy) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RegisterWorkspaceProxy indicates an expected call of RegisterWorkspaceProxy. +func (mr *MockStoreMockRecorder) RegisterWorkspaceProxy(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterWorkspaceProxy", reflect.TypeOf((*MockStore)(nil).RegisterWorkspaceProxy), ctx, arg) +} + +// RemoveUserFromAllGroups mocks base method. +func (m *MockStore) RemoveUserFromAllGroups(ctx context.Context, userID uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RemoveUserFromAllGroups", ctx, userID) + ret0, _ := ret[0].(error) + return ret0 +} + +// RemoveUserFromAllGroups indicates an expected call of RemoveUserFromAllGroups. +func (mr *MockStoreMockRecorder) RemoveUserFromAllGroups(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveUserFromAllGroups", reflect.TypeOf((*MockStore)(nil).RemoveUserFromAllGroups), ctx, userID) +} + +// RemoveUserFromGroups mocks base method. +func (m *MockStore) RemoveUserFromGroups(ctx context.Context, arg database.RemoveUserFromGroupsParams) ([]uuid.UUID, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RemoveUserFromGroups", ctx, arg) + ret0, _ := ret[0].([]uuid.UUID) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RemoveUserFromGroups indicates an expected call of RemoveUserFromGroups. +func (mr *MockStoreMockRecorder) RemoveUserFromGroups(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveUserFromGroups", reflect.TypeOf((*MockStore)(nil).RemoveUserFromGroups), ctx, arg) +} + +// RevokeDBCryptKey mocks base method. +func (m *MockStore) RevokeDBCryptKey(ctx context.Context, activeKeyDigest string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RevokeDBCryptKey", ctx, activeKeyDigest) + ret0, _ := ret[0].(error) + return ret0 +} + +// RevokeDBCryptKey indicates an expected call of RevokeDBCryptKey. +func (mr *MockStoreMockRecorder) RevokeDBCryptKey(ctx, activeKeyDigest any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RevokeDBCryptKey", reflect.TypeOf((*MockStore)(nil).RevokeDBCryptKey), ctx, activeKeyDigest) +} + +// SelectUsageEventsForPublishing mocks base method. +func (m *MockStore) SelectUsageEventsForPublishing(ctx context.Context, now time.Time) ([]database.UsageEvent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SelectUsageEventsForPublishing", ctx, now) + ret0, _ := ret[0].([]database.UsageEvent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// SelectUsageEventsForPublishing indicates an expected call of SelectUsageEventsForPublishing. +func (mr *MockStoreMockRecorder) SelectUsageEventsForPublishing(ctx, now any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SelectUsageEventsForPublishing", reflect.TypeOf((*MockStore)(nil).SelectUsageEventsForPublishing), ctx, now) +} + +// TryAcquireLock mocks base method. +func (m *MockStore) TryAcquireLock(ctx context.Context, pgTryAdvisoryXactLock int64) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "TryAcquireLock", ctx, pgTryAdvisoryXactLock) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// TryAcquireLock indicates an expected call of TryAcquireLock. +func (mr *MockStoreMockRecorder) TryAcquireLock(ctx, pgTryAdvisoryXactLock any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TryAcquireLock", reflect.TypeOf((*MockStore)(nil).TryAcquireLock), ctx, pgTryAdvisoryXactLock) +} + +// UnarchiveTemplateVersion mocks base method. +func (m *MockStore) UnarchiveTemplateVersion(ctx context.Context, arg database.UnarchiveTemplateVersionParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UnarchiveTemplateVersion", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UnarchiveTemplateVersion indicates an expected call of UnarchiveTemplateVersion. +func (mr *MockStoreMockRecorder) UnarchiveTemplateVersion(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnarchiveTemplateVersion", reflect.TypeOf((*MockStore)(nil).UnarchiveTemplateVersion), ctx, arg) +} + +// UnfavoriteWorkspace mocks base method. +func (m *MockStore) UnfavoriteWorkspace(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UnfavoriteWorkspace", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// UnfavoriteWorkspace indicates an expected call of UnfavoriteWorkspace. +func (mr *MockStoreMockRecorder) UnfavoriteWorkspace(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnfavoriteWorkspace", reflect.TypeOf((*MockStore)(nil).UnfavoriteWorkspace), ctx, id) +} + +// UpdateAIBridgeInterceptionEnded mocks base method. +func (m *MockStore) UpdateAIBridgeInterceptionEnded(ctx context.Context, arg database.UpdateAIBridgeInterceptionEndedParams) (database.AIBridgeInterception, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateAIBridgeInterceptionEnded", ctx, arg) + ret0, _ := ret[0].(database.AIBridgeInterception) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateAIBridgeInterceptionEnded indicates an expected call of UpdateAIBridgeInterceptionEnded. +func (mr *MockStoreMockRecorder) UpdateAIBridgeInterceptionEnded(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAIBridgeInterceptionEnded", reflect.TypeOf((*MockStore)(nil).UpdateAIBridgeInterceptionEnded), ctx, arg) +} + +// UpdateAPIKeyByID mocks base method. +func (m *MockStore) UpdateAPIKeyByID(ctx context.Context, arg database.UpdateAPIKeyByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateAPIKeyByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateAPIKeyByID indicates an expected call of UpdateAPIKeyByID. +func (mr *MockStoreMockRecorder) UpdateAPIKeyByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAPIKeyByID", reflect.TypeOf((*MockStore)(nil).UpdateAPIKeyByID), ctx, arg) +} + +// UpdateCryptoKeyDeletesAt mocks base method. +func (m *MockStore) UpdateCryptoKeyDeletesAt(ctx context.Context, arg database.UpdateCryptoKeyDeletesAtParams) (database.CryptoKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateCryptoKeyDeletesAt", ctx, arg) + ret0, _ := ret[0].(database.CryptoKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateCryptoKeyDeletesAt indicates an expected call of UpdateCryptoKeyDeletesAt. +func (mr *MockStoreMockRecorder) UpdateCryptoKeyDeletesAt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCryptoKeyDeletesAt", reflect.TypeOf((*MockStore)(nil).UpdateCryptoKeyDeletesAt), ctx, arg) +} + +// UpdateCustomRole mocks base method. +func (m *MockStore) UpdateCustomRole(ctx context.Context, arg database.UpdateCustomRoleParams) (database.CustomRole, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateCustomRole", ctx, arg) + ret0, _ := ret[0].(database.CustomRole) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateCustomRole indicates an expected call of UpdateCustomRole. +func (mr *MockStoreMockRecorder) UpdateCustomRole(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCustomRole", reflect.TypeOf((*MockStore)(nil).UpdateCustomRole), ctx, arg) +} + +// UpdateExternalAuthLink mocks base method. +func (m *MockStore) UpdateExternalAuthLink(ctx context.Context, arg database.UpdateExternalAuthLinkParams) (database.ExternalAuthLink, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateExternalAuthLink", ctx, arg) + ret0, _ := ret[0].(database.ExternalAuthLink) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateExternalAuthLink indicates an expected call of UpdateExternalAuthLink. +func (mr *MockStoreMockRecorder) UpdateExternalAuthLink(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateExternalAuthLink", reflect.TypeOf((*MockStore)(nil).UpdateExternalAuthLink), ctx, arg) +} + +// UpdateExternalAuthLinkRefreshToken mocks base method. +func (m *MockStore) UpdateExternalAuthLinkRefreshToken(ctx context.Context, arg database.UpdateExternalAuthLinkRefreshTokenParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateExternalAuthLinkRefreshToken", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateExternalAuthLinkRefreshToken indicates an expected call of UpdateExternalAuthLinkRefreshToken. +func (mr *MockStoreMockRecorder) UpdateExternalAuthLinkRefreshToken(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateExternalAuthLinkRefreshToken", reflect.TypeOf((*MockStore)(nil).UpdateExternalAuthLinkRefreshToken), ctx, arg) +} + +// UpdateGitSSHKey mocks base method. +func (m *MockStore) UpdateGitSSHKey(ctx context.Context, arg database.UpdateGitSSHKeyParams) (database.GitSSHKey, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateGitSSHKey", ctx, arg) + ret0, _ := ret[0].(database.GitSSHKey) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateGitSSHKey indicates an expected call of UpdateGitSSHKey. +func (mr *MockStoreMockRecorder) UpdateGitSSHKey(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateGitSSHKey", reflect.TypeOf((*MockStore)(nil).UpdateGitSSHKey), ctx, arg) +} + +// UpdateGroupByID mocks base method. +func (m *MockStore) UpdateGroupByID(ctx context.Context, arg database.UpdateGroupByIDParams) (database.Group, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateGroupByID", ctx, arg) + ret0, _ := ret[0].(database.Group) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateGroupByID indicates an expected call of UpdateGroupByID. +func (mr *MockStoreMockRecorder) UpdateGroupByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateGroupByID", reflect.TypeOf((*MockStore)(nil).UpdateGroupByID), ctx, arg) +} + +// UpdateInactiveUsersToDormant mocks base method. +func (m *MockStore) UpdateInactiveUsersToDormant(ctx context.Context, arg database.UpdateInactiveUsersToDormantParams) ([]database.UpdateInactiveUsersToDormantRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateInactiveUsersToDormant", ctx, arg) + ret0, _ := ret[0].([]database.UpdateInactiveUsersToDormantRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateInactiveUsersToDormant indicates an expected call of UpdateInactiveUsersToDormant. +func (mr *MockStoreMockRecorder) UpdateInactiveUsersToDormant(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateInactiveUsersToDormant", reflect.TypeOf((*MockStore)(nil).UpdateInactiveUsersToDormant), ctx, arg) +} + +// UpdateInboxNotificationReadStatus mocks base method. +func (m *MockStore) UpdateInboxNotificationReadStatus(ctx context.Context, arg database.UpdateInboxNotificationReadStatusParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateInboxNotificationReadStatus", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateInboxNotificationReadStatus indicates an expected call of UpdateInboxNotificationReadStatus. +func (mr *MockStoreMockRecorder) UpdateInboxNotificationReadStatus(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateInboxNotificationReadStatus", reflect.TypeOf((*MockStore)(nil).UpdateInboxNotificationReadStatus), ctx, arg) +} + +// UpdateMemberRoles mocks base method. +func (m *MockStore) UpdateMemberRoles(ctx context.Context, arg database.UpdateMemberRolesParams) (database.OrganizationMember, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateMemberRoles", ctx, arg) + ret0, _ := ret[0].(database.OrganizationMember) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateMemberRoles indicates an expected call of UpdateMemberRoles. +func (mr *MockStoreMockRecorder) UpdateMemberRoles(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMemberRoles", reflect.TypeOf((*MockStore)(nil).UpdateMemberRoles), ctx, arg) +} + +// UpdateMemoryResourceMonitor mocks base method. +func (m *MockStore) UpdateMemoryResourceMonitor(ctx context.Context, arg database.UpdateMemoryResourceMonitorParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateMemoryResourceMonitor", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateMemoryResourceMonitor indicates an expected call of UpdateMemoryResourceMonitor. +func (mr *MockStoreMockRecorder) UpdateMemoryResourceMonitor(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMemoryResourceMonitor", reflect.TypeOf((*MockStore)(nil).UpdateMemoryResourceMonitor), ctx, arg) +} + +// UpdateNotificationTemplateMethodByID mocks base method. +func (m *MockStore) UpdateNotificationTemplateMethodByID(ctx context.Context, arg database.UpdateNotificationTemplateMethodByIDParams) (database.NotificationTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateNotificationTemplateMethodByID", ctx, arg) + ret0, _ := ret[0].(database.NotificationTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateNotificationTemplateMethodByID indicates an expected call of UpdateNotificationTemplateMethodByID. +func (mr *MockStoreMockRecorder) UpdateNotificationTemplateMethodByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNotificationTemplateMethodByID", reflect.TypeOf((*MockStore)(nil).UpdateNotificationTemplateMethodByID), ctx, arg) +} + +// UpdateOAuth2ProviderAppByClientID mocks base method. +func (m *MockStore) UpdateOAuth2ProviderAppByClientID(ctx context.Context, arg database.UpdateOAuth2ProviderAppByClientIDParams) (database.OAuth2ProviderApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateOAuth2ProviderAppByClientID", ctx, arg) + ret0, _ := ret[0].(database.OAuth2ProviderApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateOAuth2ProviderAppByClientID indicates an expected call of UpdateOAuth2ProviderAppByClientID. +func (mr *MockStoreMockRecorder) UpdateOAuth2ProviderAppByClientID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOAuth2ProviderAppByClientID", reflect.TypeOf((*MockStore)(nil).UpdateOAuth2ProviderAppByClientID), ctx, arg) +} + +// UpdateOAuth2ProviderAppByID mocks base method. +func (m *MockStore) UpdateOAuth2ProviderAppByID(ctx context.Context, arg database.UpdateOAuth2ProviderAppByIDParams) (database.OAuth2ProviderApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateOAuth2ProviderAppByID", ctx, arg) + ret0, _ := ret[0].(database.OAuth2ProviderApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateOAuth2ProviderAppByID indicates an expected call of UpdateOAuth2ProviderAppByID. +func (mr *MockStoreMockRecorder) UpdateOAuth2ProviderAppByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOAuth2ProviderAppByID", reflect.TypeOf((*MockStore)(nil).UpdateOAuth2ProviderAppByID), ctx, arg) +} + +// UpdateOAuth2ProviderAppSecretByID mocks base method. +func (m *MockStore) UpdateOAuth2ProviderAppSecretByID(ctx context.Context, arg database.UpdateOAuth2ProviderAppSecretByIDParams) (database.OAuth2ProviderAppSecret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateOAuth2ProviderAppSecretByID", ctx, arg) + ret0, _ := ret[0].(database.OAuth2ProviderAppSecret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateOAuth2ProviderAppSecretByID indicates an expected call of UpdateOAuth2ProviderAppSecretByID. +func (mr *MockStoreMockRecorder) UpdateOAuth2ProviderAppSecretByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOAuth2ProviderAppSecretByID", reflect.TypeOf((*MockStore)(nil).UpdateOAuth2ProviderAppSecretByID), ctx, arg) +} + +// UpdateOrganization mocks base method. +func (m *MockStore) UpdateOrganization(ctx context.Context, arg database.UpdateOrganizationParams) (database.Organization, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateOrganization", ctx, arg) + ret0, _ := ret[0].(database.Organization) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateOrganization indicates an expected call of UpdateOrganization. +func (mr *MockStoreMockRecorder) UpdateOrganization(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOrganization", reflect.TypeOf((*MockStore)(nil).UpdateOrganization), ctx, arg) +} + +// UpdateOrganizationDeletedByID mocks base method. +func (m *MockStore) UpdateOrganizationDeletedByID(ctx context.Context, arg database.UpdateOrganizationDeletedByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateOrganizationDeletedByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateOrganizationDeletedByID indicates an expected call of UpdateOrganizationDeletedByID. +func (mr *MockStoreMockRecorder) UpdateOrganizationDeletedByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOrganizationDeletedByID", reflect.TypeOf((*MockStore)(nil).UpdateOrganizationDeletedByID), ctx, arg) +} + +// UpdatePrebuildProvisionerJobWithCancel mocks base method. +func (m *MockStore) UpdatePrebuildProvisionerJobWithCancel(ctx context.Context, arg database.UpdatePrebuildProvisionerJobWithCancelParams) ([]database.UpdatePrebuildProvisionerJobWithCancelRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdatePrebuildProvisionerJobWithCancel", ctx, arg) + ret0, _ := ret[0].([]database.UpdatePrebuildProvisionerJobWithCancelRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdatePrebuildProvisionerJobWithCancel indicates an expected call of UpdatePrebuildProvisionerJobWithCancel. +func (mr *MockStoreMockRecorder) UpdatePrebuildProvisionerJobWithCancel(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePrebuildProvisionerJobWithCancel", reflect.TypeOf((*MockStore)(nil).UpdatePrebuildProvisionerJobWithCancel), ctx, arg) +} + +// UpdatePresetPrebuildStatus mocks base method. +func (m *MockStore) UpdatePresetPrebuildStatus(ctx context.Context, arg database.UpdatePresetPrebuildStatusParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdatePresetPrebuildStatus", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdatePresetPrebuildStatus indicates an expected call of UpdatePresetPrebuildStatus. +func (mr *MockStoreMockRecorder) UpdatePresetPrebuildStatus(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePresetPrebuildStatus", reflect.TypeOf((*MockStore)(nil).UpdatePresetPrebuildStatus), ctx, arg) +} + +// UpdatePresetsLastInvalidatedAt mocks base method. +func (m *MockStore) UpdatePresetsLastInvalidatedAt(ctx context.Context, arg database.UpdatePresetsLastInvalidatedAtParams) ([]database.UpdatePresetsLastInvalidatedAtRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdatePresetsLastInvalidatedAt", ctx, arg) + ret0, _ := ret[0].([]database.UpdatePresetsLastInvalidatedAtRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdatePresetsLastInvalidatedAt indicates an expected call of UpdatePresetsLastInvalidatedAt. +func (mr *MockStoreMockRecorder) UpdatePresetsLastInvalidatedAt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePresetsLastInvalidatedAt", reflect.TypeOf((*MockStore)(nil).UpdatePresetsLastInvalidatedAt), ctx, arg) +} + +// UpdateProvisionerDaemonLastSeenAt mocks base method. +func (m *MockStore) UpdateProvisionerDaemonLastSeenAt(ctx context.Context, arg database.UpdateProvisionerDaemonLastSeenAtParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateProvisionerDaemonLastSeenAt", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateProvisionerDaemonLastSeenAt indicates an expected call of UpdateProvisionerDaemonLastSeenAt. +func (mr *MockStoreMockRecorder) UpdateProvisionerDaemonLastSeenAt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerDaemonLastSeenAt", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerDaemonLastSeenAt), ctx, arg) +} + +// UpdateProvisionerJobByID mocks base method. +func (m *MockStore) UpdateProvisionerJobByID(ctx context.Context, arg database.UpdateProvisionerJobByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateProvisionerJobByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateProvisionerJobByID indicates an expected call of UpdateProvisionerJobByID. +func (mr *MockStoreMockRecorder) UpdateProvisionerJobByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobByID", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobByID), ctx, arg) +} + +// UpdateProvisionerJobLogsLength mocks base method. +func (m *MockStore) UpdateProvisionerJobLogsLength(ctx context.Context, arg database.UpdateProvisionerJobLogsLengthParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateProvisionerJobLogsLength", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateProvisionerJobLogsLength indicates an expected call of UpdateProvisionerJobLogsLength. +func (mr *MockStoreMockRecorder) UpdateProvisionerJobLogsLength(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobLogsLength", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobLogsLength), ctx, arg) +} + +// UpdateProvisionerJobLogsOverflowed mocks base method. +func (m *MockStore) UpdateProvisionerJobLogsOverflowed(ctx context.Context, arg database.UpdateProvisionerJobLogsOverflowedParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateProvisionerJobLogsOverflowed", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateProvisionerJobLogsOverflowed indicates an expected call of UpdateProvisionerJobLogsOverflowed. +func (mr *MockStoreMockRecorder) UpdateProvisionerJobLogsOverflowed(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobLogsOverflowed", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobLogsOverflowed), ctx, arg) +} + +// UpdateProvisionerJobWithCancelByID mocks base method. +func (m *MockStore) UpdateProvisionerJobWithCancelByID(ctx context.Context, arg database.UpdateProvisionerJobWithCancelByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateProvisionerJobWithCancelByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateProvisionerJobWithCancelByID indicates an expected call of UpdateProvisionerJobWithCancelByID. +func (mr *MockStoreMockRecorder) UpdateProvisionerJobWithCancelByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobWithCancelByID", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobWithCancelByID), ctx, arg) +} + +// UpdateProvisionerJobWithCompleteByID mocks base method. +func (m *MockStore) UpdateProvisionerJobWithCompleteByID(ctx context.Context, arg database.UpdateProvisionerJobWithCompleteByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateProvisionerJobWithCompleteByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateProvisionerJobWithCompleteByID indicates an expected call of UpdateProvisionerJobWithCompleteByID. +func (mr *MockStoreMockRecorder) UpdateProvisionerJobWithCompleteByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobWithCompleteByID", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobWithCompleteByID), ctx, arg) +} + +// UpdateProvisionerJobWithCompleteWithStartedAtByID mocks base method. +func (m *MockStore) UpdateProvisionerJobWithCompleteWithStartedAtByID(ctx context.Context, arg database.UpdateProvisionerJobWithCompleteWithStartedAtByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateProvisionerJobWithCompleteWithStartedAtByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateProvisionerJobWithCompleteWithStartedAtByID indicates an expected call of UpdateProvisionerJobWithCompleteWithStartedAtByID. +func (mr *MockStoreMockRecorder) UpdateProvisionerJobWithCompleteWithStartedAtByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobWithCompleteWithStartedAtByID", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobWithCompleteWithStartedAtByID), ctx, arg) +} + +// UpdateReplica mocks base method. +func (m *MockStore) UpdateReplica(ctx context.Context, arg database.UpdateReplicaParams) (database.Replica, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateReplica", ctx, arg) + ret0, _ := ret[0].(database.Replica) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateReplica indicates an expected call of UpdateReplica. +func (mr *MockStoreMockRecorder) UpdateReplica(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateReplica", reflect.TypeOf((*MockStore)(nil).UpdateReplica), ctx, arg) +} + +// UpdateTailnetPeerStatusByCoordinator mocks base method. +func (m *MockStore) UpdateTailnetPeerStatusByCoordinator(ctx context.Context, arg database.UpdateTailnetPeerStatusByCoordinatorParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTailnetPeerStatusByCoordinator", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTailnetPeerStatusByCoordinator indicates an expected call of UpdateTailnetPeerStatusByCoordinator. +func (mr *MockStoreMockRecorder) UpdateTailnetPeerStatusByCoordinator(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTailnetPeerStatusByCoordinator", reflect.TypeOf((*MockStore)(nil).UpdateTailnetPeerStatusByCoordinator), ctx, arg) +} + +// UpdateTaskPrompt mocks base method. +func (m *MockStore) UpdateTaskPrompt(ctx context.Context, arg database.UpdateTaskPromptParams) (database.TaskTable, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTaskPrompt", ctx, arg) + ret0, _ := ret[0].(database.TaskTable) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateTaskPrompt indicates an expected call of UpdateTaskPrompt. +func (mr *MockStoreMockRecorder) UpdateTaskPrompt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTaskPrompt", reflect.TypeOf((*MockStore)(nil).UpdateTaskPrompt), ctx, arg) +} + +// UpdateTaskWorkspaceID mocks base method. +func (m *MockStore) UpdateTaskWorkspaceID(ctx context.Context, arg database.UpdateTaskWorkspaceIDParams) (database.TaskTable, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTaskWorkspaceID", ctx, arg) + ret0, _ := ret[0].(database.TaskTable) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateTaskWorkspaceID indicates an expected call of UpdateTaskWorkspaceID. +func (mr *MockStoreMockRecorder) UpdateTaskWorkspaceID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTaskWorkspaceID", reflect.TypeOf((*MockStore)(nil).UpdateTaskWorkspaceID), ctx, arg) +} + +// UpdateTemplateACLByID mocks base method. +func (m *MockStore) UpdateTemplateACLByID(ctx context.Context, arg database.UpdateTemplateACLByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTemplateACLByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTemplateACLByID indicates an expected call of UpdateTemplateACLByID. +func (mr *MockStoreMockRecorder) UpdateTemplateACLByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateACLByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateACLByID), ctx, arg) +} + +// UpdateTemplateAccessControlByID mocks base method. +func (m *MockStore) UpdateTemplateAccessControlByID(ctx context.Context, arg database.UpdateTemplateAccessControlByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTemplateAccessControlByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTemplateAccessControlByID indicates an expected call of UpdateTemplateAccessControlByID. +func (mr *MockStoreMockRecorder) UpdateTemplateAccessControlByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateAccessControlByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateAccessControlByID), ctx, arg) +} + +// UpdateTemplateActiveVersionByID mocks base method. +func (m *MockStore) UpdateTemplateActiveVersionByID(ctx context.Context, arg database.UpdateTemplateActiveVersionByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTemplateActiveVersionByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTemplateActiveVersionByID indicates an expected call of UpdateTemplateActiveVersionByID. +func (mr *MockStoreMockRecorder) UpdateTemplateActiveVersionByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateActiveVersionByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateActiveVersionByID), ctx, arg) +} + +// UpdateTemplateDeletedByID mocks base method. +func (m *MockStore) UpdateTemplateDeletedByID(ctx context.Context, arg database.UpdateTemplateDeletedByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTemplateDeletedByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTemplateDeletedByID indicates an expected call of UpdateTemplateDeletedByID. +func (mr *MockStoreMockRecorder) UpdateTemplateDeletedByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateDeletedByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateDeletedByID), ctx, arg) +} + +// UpdateTemplateMetaByID mocks base method. +func (m *MockStore) UpdateTemplateMetaByID(ctx context.Context, arg database.UpdateTemplateMetaByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTemplateMetaByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTemplateMetaByID indicates an expected call of UpdateTemplateMetaByID. +func (mr *MockStoreMockRecorder) UpdateTemplateMetaByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateMetaByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateMetaByID), ctx, arg) +} + +// UpdateTemplateScheduleByID mocks base method. +func (m *MockStore) UpdateTemplateScheduleByID(ctx context.Context, arg database.UpdateTemplateScheduleByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTemplateScheduleByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTemplateScheduleByID indicates an expected call of UpdateTemplateScheduleByID. +func (mr *MockStoreMockRecorder) UpdateTemplateScheduleByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateScheduleByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateScheduleByID), ctx, arg) +} + +// UpdateTemplateVersionByID mocks base method. +func (m *MockStore) UpdateTemplateVersionByID(ctx context.Context, arg database.UpdateTemplateVersionByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTemplateVersionByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTemplateVersionByID indicates an expected call of UpdateTemplateVersionByID. +func (mr *MockStoreMockRecorder) UpdateTemplateVersionByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateVersionByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateVersionByID), ctx, arg) +} + +// UpdateTemplateVersionDescriptionByJobID mocks base method. +func (m *MockStore) UpdateTemplateVersionDescriptionByJobID(ctx context.Context, arg database.UpdateTemplateVersionDescriptionByJobIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTemplateVersionDescriptionByJobID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTemplateVersionDescriptionByJobID indicates an expected call of UpdateTemplateVersionDescriptionByJobID. +func (mr *MockStoreMockRecorder) UpdateTemplateVersionDescriptionByJobID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateVersionDescriptionByJobID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateVersionDescriptionByJobID), ctx, arg) +} + +// UpdateTemplateVersionExternalAuthProvidersByJobID mocks base method. +func (m *MockStore) UpdateTemplateVersionExternalAuthProvidersByJobID(ctx context.Context, arg database.UpdateTemplateVersionExternalAuthProvidersByJobIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTemplateVersionExternalAuthProvidersByJobID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTemplateVersionExternalAuthProvidersByJobID indicates an expected call of UpdateTemplateVersionExternalAuthProvidersByJobID. +func (mr *MockStoreMockRecorder) UpdateTemplateVersionExternalAuthProvidersByJobID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateVersionExternalAuthProvidersByJobID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateVersionExternalAuthProvidersByJobID), ctx, arg) +} + +// UpdateTemplateVersionFlagsByJobID mocks base method. +func (m *MockStore) UpdateTemplateVersionFlagsByJobID(ctx context.Context, arg database.UpdateTemplateVersionFlagsByJobIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTemplateVersionFlagsByJobID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTemplateVersionFlagsByJobID indicates an expected call of UpdateTemplateVersionFlagsByJobID. +func (mr *MockStoreMockRecorder) UpdateTemplateVersionFlagsByJobID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateVersionFlagsByJobID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateVersionFlagsByJobID), ctx, arg) +} + +// UpdateTemplateWorkspacesLastUsedAt mocks base method. +func (m *MockStore) UpdateTemplateWorkspacesLastUsedAt(ctx context.Context, arg database.UpdateTemplateWorkspacesLastUsedAtParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTemplateWorkspacesLastUsedAt", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTemplateWorkspacesLastUsedAt indicates an expected call of UpdateTemplateWorkspacesLastUsedAt. +func (mr *MockStoreMockRecorder) UpdateTemplateWorkspacesLastUsedAt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateWorkspacesLastUsedAt", reflect.TypeOf((*MockStore)(nil).UpdateTemplateWorkspacesLastUsedAt), ctx, arg) +} + +// UpdateUsageEventsPostPublish mocks base method. +func (m *MockStore) UpdateUsageEventsPostPublish(ctx context.Context, arg database.UpdateUsageEventsPostPublishParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUsageEventsPostPublish", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateUsageEventsPostPublish indicates an expected call of UpdateUsageEventsPostPublish. +func (mr *MockStoreMockRecorder) UpdateUsageEventsPostPublish(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUsageEventsPostPublish", reflect.TypeOf((*MockStore)(nil).UpdateUsageEventsPostPublish), ctx, arg) +} + +// UpdateUserDeletedByID mocks base method. +func (m *MockStore) UpdateUserDeletedByID(ctx context.Context, id uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserDeletedByID", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateUserDeletedByID indicates an expected call of UpdateUserDeletedByID. +func (mr *MockStoreMockRecorder) UpdateUserDeletedByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserDeletedByID", reflect.TypeOf((*MockStore)(nil).UpdateUserDeletedByID), ctx, id) +} + +// UpdateUserGithubComUserID mocks base method. +func (m *MockStore) UpdateUserGithubComUserID(ctx context.Context, arg database.UpdateUserGithubComUserIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserGithubComUserID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateUserGithubComUserID indicates an expected call of UpdateUserGithubComUserID. +func (mr *MockStoreMockRecorder) UpdateUserGithubComUserID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserGithubComUserID", reflect.TypeOf((*MockStore)(nil).UpdateUserGithubComUserID), ctx, arg) +} + +// UpdateUserHashedOneTimePasscode mocks base method. +func (m *MockStore) UpdateUserHashedOneTimePasscode(ctx context.Context, arg database.UpdateUserHashedOneTimePasscodeParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserHashedOneTimePasscode", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateUserHashedOneTimePasscode indicates an expected call of UpdateUserHashedOneTimePasscode. +func (mr *MockStoreMockRecorder) UpdateUserHashedOneTimePasscode(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserHashedOneTimePasscode", reflect.TypeOf((*MockStore)(nil).UpdateUserHashedOneTimePasscode), ctx, arg) +} + +// UpdateUserHashedPassword mocks base method. +func (m *MockStore) UpdateUserHashedPassword(ctx context.Context, arg database.UpdateUserHashedPasswordParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserHashedPassword", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateUserHashedPassword indicates an expected call of UpdateUserHashedPassword. +func (mr *MockStoreMockRecorder) UpdateUserHashedPassword(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserHashedPassword", reflect.TypeOf((*MockStore)(nil).UpdateUserHashedPassword), ctx, arg) +} + +// UpdateUserLastSeenAt mocks base method. +func (m *MockStore) UpdateUserLastSeenAt(ctx context.Context, arg database.UpdateUserLastSeenAtParams) (database.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserLastSeenAt", ctx, arg) + ret0, _ := ret[0].(database.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserLastSeenAt indicates an expected call of UpdateUserLastSeenAt. +func (mr *MockStoreMockRecorder) UpdateUserLastSeenAt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserLastSeenAt", reflect.TypeOf((*MockStore)(nil).UpdateUserLastSeenAt), ctx, arg) +} + +// UpdateUserLink mocks base method. +func (m *MockStore) UpdateUserLink(ctx context.Context, arg database.UpdateUserLinkParams) (database.UserLink, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserLink", ctx, arg) + ret0, _ := ret[0].(database.UserLink) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserLink indicates an expected call of UpdateUserLink. +func (mr *MockStoreMockRecorder) UpdateUserLink(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserLink", reflect.TypeOf((*MockStore)(nil).UpdateUserLink), ctx, arg) +} + +// UpdateUserLinkedID mocks base method. +func (m *MockStore) UpdateUserLinkedID(ctx context.Context, arg database.UpdateUserLinkedIDParams) (database.UserLink, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserLinkedID", ctx, arg) + ret0, _ := ret[0].(database.UserLink) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserLinkedID indicates an expected call of UpdateUserLinkedID. +func (mr *MockStoreMockRecorder) UpdateUserLinkedID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserLinkedID", reflect.TypeOf((*MockStore)(nil).UpdateUserLinkedID), ctx, arg) +} + +// UpdateUserLoginType mocks base method. +func (m *MockStore) UpdateUserLoginType(ctx context.Context, arg database.UpdateUserLoginTypeParams) (database.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserLoginType", ctx, arg) + ret0, _ := ret[0].(database.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserLoginType indicates an expected call of UpdateUserLoginType. +func (mr *MockStoreMockRecorder) UpdateUserLoginType(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserLoginType", reflect.TypeOf((*MockStore)(nil).UpdateUserLoginType), ctx, arg) +} + +// UpdateUserNotificationPreferences mocks base method. +func (m *MockStore) UpdateUserNotificationPreferences(ctx context.Context, arg database.UpdateUserNotificationPreferencesParams) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserNotificationPreferences", ctx, arg) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserNotificationPreferences indicates an expected call of UpdateUserNotificationPreferences. +func (mr *MockStoreMockRecorder) UpdateUserNotificationPreferences(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserNotificationPreferences", reflect.TypeOf((*MockStore)(nil).UpdateUserNotificationPreferences), ctx, arg) +} + +// UpdateUserProfile mocks base method. +func (m *MockStore) UpdateUserProfile(ctx context.Context, arg database.UpdateUserProfileParams) (database.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserProfile", ctx, arg) + ret0, _ := ret[0].(database.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserProfile indicates an expected call of UpdateUserProfile. +func (mr *MockStoreMockRecorder) UpdateUserProfile(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserProfile", reflect.TypeOf((*MockStore)(nil).UpdateUserProfile), ctx, arg) +} + +// UpdateUserQuietHoursSchedule mocks base method. +func (m *MockStore) UpdateUserQuietHoursSchedule(ctx context.Context, arg database.UpdateUserQuietHoursScheduleParams) (database.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserQuietHoursSchedule", ctx, arg) + ret0, _ := ret[0].(database.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserQuietHoursSchedule indicates an expected call of UpdateUserQuietHoursSchedule. +func (mr *MockStoreMockRecorder) UpdateUserQuietHoursSchedule(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserQuietHoursSchedule", reflect.TypeOf((*MockStore)(nil).UpdateUserQuietHoursSchedule), ctx, arg) +} + +// UpdateUserRoles mocks base method. +func (m *MockStore) UpdateUserRoles(ctx context.Context, arg database.UpdateUserRolesParams) (database.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserRoles", ctx, arg) + ret0, _ := ret[0].(database.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserRoles indicates an expected call of UpdateUserRoles. +func (mr *MockStoreMockRecorder) UpdateUserRoles(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserRoles", reflect.TypeOf((*MockStore)(nil).UpdateUserRoles), ctx, arg) +} + +// UpdateUserSecret mocks base method. +func (m *MockStore) UpdateUserSecret(ctx context.Context, arg database.UpdateUserSecretParams) (database.UserSecret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserSecret", ctx, arg) + ret0, _ := ret[0].(database.UserSecret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserSecret indicates an expected call of UpdateUserSecret. +func (mr *MockStoreMockRecorder) UpdateUserSecret(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserSecret", reflect.TypeOf((*MockStore)(nil).UpdateUserSecret), ctx, arg) +} + +// UpdateUserStatus mocks base method. +func (m *MockStore) UpdateUserStatus(ctx context.Context, arg database.UpdateUserStatusParams) (database.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserStatus", ctx, arg) + ret0, _ := ret[0].(database.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserStatus indicates an expected call of UpdateUserStatus. +func (mr *MockStoreMockRecorder) UpdateUserStatus(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserStatus", reflect.TypeOf((*MockStore)(nil).UpdateUserStatus), ctx, arg) +} + +// UpdateUserTaskNotificationAlertDismissed mocks base method. +func (m *MockStore) UpdateUserTaskNotificationAlertDismissed(ctx context.Context, arg database.UpdateUserTaskNotificationAlertDismissedParams) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserTaskNotificationAlertDismissed", ctx, arg) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserTaskNotificationAlertDismissed indicates an expected call of UpdateUserTaskNotificationAlertDismissed. +func (mr *MockStoreMockRecorder) UpdateUserTaskNotificationAlertDismissed(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserTaskNotificationAlertDismissed", reflect.TypeOf((*MockStore)(nil).UpdateUserTaskNotificationAlertDismissed), ctx, arg) +} + +// UpdateUserTerminalFont mocks base method. +func (m *MockStore) UpdateUserTerminalFont(ctx context.Context, arg database.UpdateUserTerminalFontParams) (database.UserConfig, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserTerminalFont", ctx, arg) + ret0, _ := ret[0].(database.UserConfig) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserTerminalFont indicates an expected call of UpdateUserTerminalFont. +func (mr *MockStoreMockRecorder) UpdateUserTerminalFont(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserTerminalFont", reflect.TypeOf((*MockStore)(nil).UpdateUserTerminalFont), ctx, arg) +} + +// UpdateUserThemePreference mocks base method. +func (m *MockStore) UpdateUserThemePreference(ctx context.Context, arg database.UpdateUserThemePreferenceParams) (database.UserConfig, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserThemePreference", ctx, arg) + ret0, _ := ret[0].(database.UserConfig) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserThemePreference indicates an expected call of UpdateUserThemePreference. +func (mr *MockStoreMockRecorder) UpdateUserThemePreference(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserThemePreference", reflect.TypeOf((*MockStore)(nil).UpdateUserThemePreference), ctx, arg) +} + +// UpdateVolumeResourceMonitor mocks base method. +func (m *MockStore) UpdateVolumeResourceMonitor(ctx context.Context, arg database.UpdateVolumeResourceMonitorParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateVolumeResourceMonitor", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateVolumeResourceMonitor indicates an expected call of UpdateVolumeResourceMonitor. +func (mr *MockStoreMockRecorder) UpdateVolumeResourceMonitor(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVolumeResourceMonitor", reflect.TypeOf((*MockStore)(nil).UpdateVolumeResourceMonitor), ctx, arg) +} + +// UpdateWorkspace mocks base method. +func (m *MockStore) UpdateWorkspace(ctx context.Context, arg database.UpdateWorkspaceParams) (database.WorkspaceTable, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspace", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceTable) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateWorkspace indicates an expected call of UpdateWorkspace. +func (mr *MockStoreMockRecorder) UpdateWorkspace(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspace", reflect.TypeOf((*MockStore)(nil).UpdateWorkspace), ctx, arg) +} + +// UpdateWorkspaceACLByID mocks base method. +func (m *MockStore) UpdateWorkspaceACLByID(ctx context.Context, arg database.UpdateWorkspaceACLByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceACLByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceACLByID indicates an expected call of UpdateWorkspaceACLByID. +func (mr *MockStoreMockRecorder) UpdateWorkspaceACLByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceACLByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceACLByID), ctx, arg) +} + +// UpdateWorkspaceAgentConnectionByID mocks base method. +func (m *MockStore) UpdateWorkspaceAgentConnectionByID(ctx context.Context, arg database.UpdateWorkspaceAgentConnectionByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceAgentConnectionByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceAgentConnectionByID indicates an expected call of UpdateWorkspaceAgentConnectionByID. +func (mr *MockStoreMockRecorder) UpdateWorkspaceAgentConnectionByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAgentConnectionByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAgentConnectionByID), ctx, arg) +} + +// UpdateWorkspaceAgentLifecycleStateByID mocks base method. +func (m *MockStore) UpdateWorkspaceAgentLifecycleStateByID(ctx context.Context, arg database.UpdateWorkspaceAgentLifecycleStateByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceAgentLifecycleStateByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceAgentLifecycleStateByID indicates an expected call of UpdateWorkspaceAgentLifecycleStateByID. +func (mr *MockStoreMockRecorder) UpdateWorkspaceAgentLifecycleStateByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAgentLifecycleStateByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAgentLifecycleStateByID), ctx, arg) +} + +// UpdateWorkspaceAgentLogOverflowByID mocks base method. +func (m *MockStore) UpdateWorkspaceAgentLogOverflowByID(ctx context.Context, arg database.UpdateWorkspaceAgentLogOverflowByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceAgentLogOverflowByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceAgentLogOverflowByID indicates an expected call of UpdateWorkspaceAgentLogOverflowByID. +func (mr *MockStoreMockRecorder) UpdateWorkspaceAgentLogOverflowByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAgentLogOverflowByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAgentLogOverflowByID), ctx, arg) +} + +// UpdateWorkspaceAgentMetadata mocks base method. +func (m *MockStore) UpdateWorkspaceAgentMetadata(ctx context.Context, arg database.UpdateWorkspaceAgentMetadataParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceAgentMetadata", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceAgentMetadata indicates an expected call of UpdateWorkspaceAgentMetadata. +func (mr *MockStoreMockRecorder) UpdateWorkspaceAgentMetadata(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAgentMetadata", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAgentMetadata), ctx, arg) +} + +// UpdateWorkspaceAgentStartupByID mocks base method. +func (m *MockStore) UpdateWorkspaceAgentStartupByID(ctx context.Context, arg database.UpdateWorkspaceAgentStartupByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceAgentStartupByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceAgentStartupByID indicates an expected call of UpdateWorkspaceAgentStartupByID. +func (mr *MockStoreMockRecorder) UpdateWorkspaceAgentStartupByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAgentStartupByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAgentStartupByID), ctx, arg) +} + +// UpdateWorkspaceAppHealthByID mocks base method. +func (m *MockStore) UpdateWorkspaceAppHealthByID(ctx context.Context, arg database.UpdateWorkspaceAppHealthByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceAppHealthByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceAppHealthByID indicates an expected call of UpdateWorkspaceAppHealthByID. +func (mr *MockStoreMockRecorder) UpdateWorkspaceAppHealthByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAppHealthByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAppHealthByID), ctx, arg) +} + +// UpdateWorkspaceAutomaticUpdates mocks base method. +func (m *MockStore) UpdateWorkspaceAutomaticUpdates(ctx context.Context, arg database.UpdateWorkspaceAutomaticUpdatesParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceAutomaticUpdates", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceAutomaticUpdates indicates an expected call of UpdateWorkspaceAutomaticUpdates. +func (mr *MockStoreMockRecorder) UpdateWorkspaceAutomaticUpdates(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAutomaticUpdates", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAutomaticUpdates), ctx, arg) +} + +// UpdateWorkspaceAutostart mocks base method. +func (m *MockStore) UpdateWorkspaceAutostart(ctx context.Context, arg database.UpdateWorkspaceAutostartParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceAutostart", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceAutostart indicates an expected call of UpdateWorkspaceAutostart. +func (mr *MockStoreMockRecorder) UpdateWorkspaceAutostart(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAutostart", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAutostart), ctx, arg) +} + +// UpdateWorkspaceBuildCostByID mocks base method. +func (m *MockStore) UpdateWorkspaceBuildCostByID(ctx context.Context, arg database.UpdateWorkspaceBuildCostByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceBuildCostByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceBuildCostByID indicates an expected call of UpdateWorkspaceBuildCostByID. +func (mr *MockStoreMockRecorder) UpdateWorkspaceBuildCostByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceBuildCostByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceBuildCostByID), ctx, arg) +} + +// UpdateWorkspaceBuildDeadlineByID mocks base method. +func (m *MockStore) UpdateWorkspaceBuildDeadlineByID(ctx context.Context, arg database.UpdateWorkspaceBuildDeadlineByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceBuildDeadlineByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceBuildDeadlineByID indicates an expected call of UpdateWorkspaceBuildDeadlineByID. +func (mr *MockStoreMockRecorder) UpdateWorkspaceBuildDeadlineByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceBuildDeadlineByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceBuildDeadlineByID), ctx, arg) +} + +// UpdateWorkspaceBuildFlagsByID mocks base method. +func (m *MockStore) UpdateWorkspaceBuildFlagsByID(ctx context.Context, arg database.UpdateWorkspaceBuildFlagsByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceBuildFlagsByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceBuildFlagsByID indicates an expected call of UpdateWorkspaceBuildFlagsByID. +func (mr *MockStoreMockRecorder) UpdateWorkspaceBuildFlagsByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceBuildFlagsByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceBuildFlagsByID), ctx, arg) +} + +// UpdateWorkspaceBuildProvisionerStateByID mocks base method. +func (m *MockStore) UpdateWorkspaceBuildProvisionerStateByID(ctx context.Context, arg database.UpdateWorkspaceBuildProvisionerStateByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceBuildProvisionerStateByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceBuildProvisionerStateByID indicates an expected call of UpdateWorkspaceBuildProvisionerStateByID. +func (mr *MockStoreMockRecorder) UpdateWorkspaceBuildProvisionerStateByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceBuildProvisionerStateByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceBuildProvisionerStateByID), ctx, arg) +} + +// UpdateWorkspaceDeletedByID mocks base method. +func (m *MockStore) UpdateWorkspaceDeletedByID(ctx context.Context, arg database.UpdateWorkspaceDeletedByIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceDeletedByID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceDeletedByID indicates an expected call of UpdateWorkspaceDeletedByID. +func (mr *MockStoreMockRecorder) UpdateWorkspaceDeletedByID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceDeletedByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceDeletedByID), ctx, arg) +} + +// UpdateWorkspaceDormantDeletingAt mocks base method. +func (m *MockStore) UpdateWorkspaceDormantDeletingAt(ctx context.Context, arg database.UpdateWorkspaceDormantDeletingAtParams) (database.WorkspaceTable, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceDormantDeletingAt", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceTable) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateWorkspaceDormantDeletingAt indicates an expected call of UpdateWorkspaceDormantDeletingAt. +func (mr *MockStoreMockRecorder) UpdateWorkspaceDormantDeletingAt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceDormantDeletingAt", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceDormantDeletingAt), ctx, arg) +} + +// UpdateWorkspaceLastUsedAt mocks base method. +func (m *MockStore) UpdateWorkspaceLastUsedAt(ctx context.Context, arg database.UpdateWorkspaceLastUsedAtParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceLastUsedAt", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceLastUsedAt indicates an expected call of UpdateWorkspaceLastUsedAt. +func (mr *MockStoreMockRecorder) UpdateWorkspaceLastUsedAt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceLastUsedAt", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceLastUsedAt), ctx, arg) +} + +// UpdateWorkspaceNextStartAt mocks base method. +func (m *MockStore) UpdateWorkspaceNextStartAt(ctx context.Context, arg database.UpdateWorkspaceNextStartAtParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceNextStartAt", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceNextStartAt indicates an expected call of UpdateWorkspaceNextStartAt. +func (mr *MockStoreMockRecorder) UpdateWorkspaceNextStartAt(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceNextStartAt", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceNextStartAt), ctx, arg) +} + +// UpdateWorkspaceProxy mocks base method. +func (m *MockStore) UpdateWorkspaceProxy(ctx context.Context, arg database.UpdateWorkspaceProxyParams) (database.WorkspaceProxy, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceProxy", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceProxy) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateWorkspaceProxy indicates an expected call of UpdateWorkspaceProxy. +func (mr *MockStoreMockRecorder) UpdateWorkspaceProxy(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceProxy", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceProxy), ctx, arg) +} + +// UpdateWorkspaceProxyDeleted mocks base method. +func (m *MockStore) UpdateWorkspaceProxyDeleted(ctx context.Context, arg database.UpdateWorkspaceProxyDeletedParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceProxyDeleted", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceProxyDeleted indicates an expected call of UpdateWorkspaceProxyDeleted. +func (mr *MockStoreMockRecorder) UpdateWorkspaceProxyDeleted(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceProxyDeleted", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceProxyDeleted), ctx, arg) +} + +// UpdateWorkspaceTTL mocks base method. +func (m *MockStore) UpdateWorkspaceTTL(ctx context.Context, arg database.UpdateWorkspaceTTLParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspaceTTL", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspaceTTL indicates an expected call of UpdateWorkspaceTTL. +func (mr *MockStoreMockRecorder) UpdateWorkspaceTTL(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceTTL", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceTTL), ctx, arg) +} + +// UpdateWorkspacesDormantDeletingAtByTemplateID mocks base method. +func (m *MockStore) UpdateWorkspacesDormantDeletingAtByTemplateID(ctx context.Context, arg database.UpdateWorkspacesDormantDeletingAtByTemplateIDParams) ([]database.WorkspaceTable, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspacesDormantDeletingAtByTemplateID", ctx, arg) + ret0, _ := ret[0].([]database.WorkspaceTable) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateWorkspacesDormantDeletingAtByTemplateID indicates an expected call of UpdateWorkspacesDormantDeletingAtByTemplateID. +func (mr *MockStoreMockRecorder) UpdateWorkspacesDormantDeletingAtByTemplateID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspacesDormantDeletingAtByTemplateID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspacesDormantDeletingAtByTemplateID), ctx, arg) +} + +// UpdateWorkspacesTTLByTemplateID mocks base method. +func (m *MockStore) UpdateWorkspacesTTLByTemplateID(ctx context.Context, arg database.UpdateWorkspacesTTLByTemplateIDParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWorkspacesTTLByTemplateID", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWorkspacesTTLByTemplateID indicates an expected call of UpdateWorkspacesTTLByTemplateID. +func (mr *MockStoreMockRecorder) UpdateWorkspacesTTLByTemplateID(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspacesTTLByTemplateID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspacesTTLByTemplateID), ctx, arg) +} + +// UpsertAnnouncementBanners mocks base method. +func (m *MockStore) UpsertAnnouncementBanners(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertAnnouncementBanners", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertAnnouncementBanners indicates an expected call of UpsertAnnouncementBanners. +func (mr *MockStoreMockRecorder) UpsertAnnouncementBanners(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertAnnouncementBanners", reflect.TypeOf((*MockStore)(nil).UpsertAnnouncementBanners), ctx, value) +} + +// UpsertAppSecurityKey mocks base method. +func (m *MockStore) UpsertAppSecurityKey(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertAppSecurityKey", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertAppSecurityKey indicates an expected call of UpsertAppSecurityKey. +func (mr *MockStoreMockRecorder) UpsertAppSecurityKey(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertAppSecurityKey", reflect.TypeOf((*MockStore)(nil).UpsertAppSecurityKey), ctx, value) +} + +// UpsertApplicationName mocks base method. +func (m *MockStore) UpsertApplicationName(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertApplicationName", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertApplicationName indicates an expected call of UpsertApplicationName. +func (mr *MockStoreMockRecorder) UpsertApplicationName(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertApplicationName", reflect.TypeOf((*MockStore)(nil).UpsertApplicationName), ctx, value) +} + +// UpsertConnectionLog mocks base method. +func (m *MockStore) UpsertConnectionLog(ctx context.Context, arg database.UpsertConnectionLogParams) (database.ConnectionLog, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertConnectionLog", ctx, arg) + ret0, _ := ret[0].(database.ConnectionLog) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertConnectionLog indicates an expected call of UpsertConnectionLog. +func (mr *MockStoreMockRecorder) UpsertConnectionLog(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertConnectionLog", reflect.TypeOf((*MockStore)(nil).UpsertConnectionLog), ctx, arg) +} + +// UpsertCoordinatorResumeTokenSigningKey mocks base method. +func (m *MockStore) UpsertCoordinatorResumeTokenSigningKey(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertCoordinatorResumeTokenSigningKey", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertCoordinatorResumeTokenSigningKey indicates an expected call of UpsertCoordinatorResumeTokenSigningKey. +func (mr *MockStoreMockRecorder) UpsertCoordinatorResumeTokenSigningKey(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertCoordinatorResumeTokenSigningKey", reflect.TypeOf((*MockStore)(nil).UpsertCoordinatorResumeTokenSigningKey), ctx, value) +} + +// UpsertDefaultProxy mocks base method. +func (m *MockStore) UpsertDefaultProxy(ctx context.Context, arg database.UpsertDefaultProxyParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertDefaultProxy", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertDefaultProxy indicates an expected call of UpsertDefaultProxy. +func (mr *MockStoreMockRecorder) UpsertDefaultProxy(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertDefaultProxy", reflect.TypeOf((*MockStore)(nil).UpsertDefaultProxy), ctx, arg) +} + +// UpsertHealthSettings mocks base method. +func (m *MockStore) UpsertHealthSettings(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertHealthSettings", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertHealthSettings indicates an expected call of UpsertHealthSettings. +func (mr *MockStoreMockRecorder) UpsertHealthSettings(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertHealthSettings", reflect.TypeOf((*MockStore)(nil).UpsertHealthSettings), ctx, value) +} + +// UpsertLastUpdateCheck mocks base method. +func (m *MockStore) UpsertLastUpdateCheck(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertLastUpdateCheck", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertLastUpdateCheck indicates an expected call of UpsertLastUpdateCheck. +func (mr *MockStoreMockRecorder) UpsertLastUpdateCheck(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertLastUpdateCheck", reflect.TypeOf((*MockStore)(nil).UpsertLastUpdateCheck), ctx, value) +} + +// UpsertLogoURL mocks base method. +func (m *MockStore) UpsertLogoURL(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertLogoURL", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertLogoURL indicates an expected call of UpsertLogoURL. +func (mr *MockStoreMockRecorder) UpsertLogoURL(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertLogoURL", reflect.TypeOf((*MockStore)(nil).UpsertLogoURL), ctx, value) +} + +// UpsertNotificationReportGeneratorLog mocks base method. +func (m *MockStore) UpsertNotificationReportGeneratorLog(ctx context.Context, arg database.UpsertNotificationReportGeneratorLogParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertNotificationReportGeneratorLog", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertNotificationReportGeneratorLog indicates an expected call of UpsertNotificationReportGeneratorLog. +func (mr *MockStoreMockRecorder) UpsertNotificationReportGeneratorLog(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertNotificationReportGeneratorLog", reflect.TypeOf((*MockStore)(nil).UpsertNotificationReportGeneratorLog), ctx, arg) +} + +// UpsertNotificationsSettings mocks base method. +func (m *MockStore) UpsertNotificationsSettings(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertNotificationsSettings", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertNotificationsSettings indicates an expected call of UpsertNotificationsSettings. +func (mr *MockStoreMockRecorder) UpsertNotificationsSettings(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertNotificationsSettings", reflect.TypeOf((*MockStore)(nil).UpsertNotificationsSettings), ctx, value) +} + +// UpsertOAuth2GithubDefaultEligible mocks base method. +func (m *MockStore) UpsertOAuth2GithubDefaultEligible(ctx context.Context, eligible bool) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertOAuth2GithubDefaultEligible", ctx, eligible) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertOAuth2GithubDefaultEligible indicates an expected call of UpsertOAuth2GithubDefaultEligible. +func (mr *MockStoreMockRecorder) UpsertOAuth2GithubDefaultEligible(ctx, eligible any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertOAuth2GithubDefaultEligible", reflect.TypeOf((*MockStore)(nil).UpsertOAuth2GithubDefaultEligible), ctx, eligible) +} + +// UpsertOAuthSigningKey mocks base method. +func (m *MockStore) UpsertOAuthSigningKey(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertOAuthSigningKey", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertOAuthSigningKey indicates an expected call of UpsertOAuthSigningKey. +func (mr *MockStoreMockRecorder) UpsertOAuthSigningKey(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertOAuthSigningKey", reflect.TypeOf((*MockStore)(nil).UpsertOAuthSigningKey), ctx, value) +} + +// UpsertPrebuildsSettings mocks base method. +func (m *MockStore) UpsertPrebuildsSettings(ctx context.Context, value string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertPrebuildsSettings", ctx, value) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertPrebuildsSettings indicates an expected call of UpsertPrebuildsSettings. +func (mr *MockStoreMockRecorder) UpsertPrebuildsSettings(ctx, value any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertPrebuildsSettings", reflect.TypeOf((*MockStore)(nil).UpsertPrebuildsSettings), ctx, value) +} + +// UpsertProvisionerDaemon mocks base method. +func (m *MockStore) UpsertProvisionerDaemon(ctx context.Context, arg database.UpsertProvisionerDaemonParams) (database.ProvisionerDaemon, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertProvisionerDaemon", ctx, arg) + ret0, _ := ret[0].(database.ProvisionerDaemon) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertProvisionerDaemon indicates an expected call of UpsertProvisionerDaemon. +func (mr *MockStoreMockRecorder) UpsertProvisionerDaemon(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertProvisionerDaemon", reflect.TypeOf((*MockStore)(nil).UpsertProvisionerDaemon), ctx, arg) +} + +// UpsertRuntimeConfig mocks base method. +func (m *MockStore) UpsertRuntimeConfig(ctx context.Context, arg database.UpsertRuntimeConfigParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertRuntimeConfig", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertRuntimeConfig indicates an expected call of UpsertRuntimeConfig. +func (mr *MockStoreMockRecorder) UpsertRuntimeConfig(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertRuntimeConfig", reflect.TypeOf((*MockStore)(nil).UpsertRuntimeConfig), ctx, arg) +} + +// UpsertTailnetAgent mocks base method. +func (m *MockStore) UpsertTailnetAgent(ctx context.Context, arg database.UpsertTailnetAgentParams) (database.TailnetAgent, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertTailnetAgent", ctx, arg) + ret0, _ := ret[0].(database.TailnetAgent) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertTailnetAgent indicates an expected call of UpsertTailnetAgent. +func (mr *MockStoreMockRecorder) UpsertTailnetAgent(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetAgent", reflect.TypeOf((*MockStore)(nil).UpsertTailnetAgent), ctx, arg) +} + +// UpsertTailnetClient mocks base method. +func (m *MockStore) UpsertTailnetClient(ctx context.Context, arg database.UpsertTailnetClientParams) (database.TailnetClient, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertTailnetClient", ctx, arg) + ret0, _ := ret[0].(database.TailnetClient) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertTailnetClient indicates an expected call of UpsertTailnetClient. +func (mr *MockStoreMockRecorder) UpsertTailnetClient(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetClient", reflect.TypeOf((*MockStore)(nil).UpsertTailnetClient), ctx, arg) +} + +// UpsertTailnetClientSubscription mocks base method. +func (m *MockStore) UpsertTailnetClientSubscription(ctx context.Context, arg database.UpsertTailnetClientSubscriptionParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertTailnetClientSubscription", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertTailnetClientSubscription indicates an expected call of UpsertTailnetClientSubscription. +func (mr *MockStoreMockRecorder) UpsertTailnetClientSubscription(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetClientSubscription", reflect.TypeOf((*MockStore)(nil).UpsertTailnetClientSubscription), ctx, arg) +} + +// UpsertTailnetCoordinator mocks base method. +func (m *MockStore) UpsertTailnetCoordinator(ctx context.Context, id uuid.UUID) (database.TailnetCoordinator, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertTailnetCoordinator", ctx, id) + ret0, _ := ret[0].(database.TailnetCoordinator) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertTailnetCoordinator indicates an expected call of UpsertTailnetCoordinator. +func (mr *MockStoreMockRecorder) UpsertTailnetCoordinator(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetCoordinator", reflect.TypeOf((*MockStore)(nil).UpsertTailnetCoordinator), ctx, id) +} + +// UpsertTailnetPeer mocks base method. +func (m *MockStore) UpsertTailnetPeer(ctx context.Context, arg database.UpsertTailnetPeerParams) (database.TailnetPeer, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertTailnetPeer", ctx, arg) + ret0, _ := ret[0].(database.TailnetPeer) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertTailnetPeer indicates an expected call of UpsertTailnetPeer. +func (mr *MockStoreMockRecorder) UpsertTailnetPeer(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetPeer", reflect.TypeOf((*MockStore)(nil).UpsertTailnetPeer), ctx, arg) +} + +// UpsertTailnetTunnel mocks base method. +func (m *MockStore) UpsertTailnetTunnel(ctx context.Context, arg database.UpsertTailnetTunnelParams) (database.TailnetTunnel, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertTailnetTunnel", ctx, arg) + ret0, _ := ret[0].(database.TailnetTunnel) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertTailnetTunnel indicates an expected call of UpsertTailnetTunnel. +func (mr *MockStoreMockRecorder) UpsertTailnetTunnel(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetTunnel", reflect.TypeOf((*MockStore)(nil).UpsertTailnetTunnel), ctx, arg) +} + +// UpsertTaskWorkspaceApp mocks base method. +func (m *MockStore) UpsertTaskWorkspaceApp(ctx context.Context, arg database.UpsertTaskWorkspaceAppParams) (database.TaskWorkspaceApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertTaskWorkspaceApp", ctx, arg) + ret0, _ := ret[0].(database.TaskWorkspaceApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertTaskWorkspaceApp indicates an expected call of UpsertTaskWorkspaceApp. +func (mr *MockStoreMockRecorder) UpsertTaskWorkspaceApp(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTaskWorkspaceApp", reflect.TypeOf((*MockStore)(nil).UpsertTaskWorkspaceApp), ctx, arg) +} + +// UpsertTelemetryItem mocks base method. +func (m *MockStore) UpsertTelemetryItem(ctx context.Context, arg database.UpsertTelemetryItemParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertTelemetryItem", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertTelemetryItem indicates an expected call of UpsertTelemetryItem. +func (mr *MockStoreMockRecorder) UpsertTelemetryItem(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTelemetryItem", reflect.TypeOf((*MockStore)(nil).UpsertTelemetryItem), ctx, arg) +} + +// UpsertTemplateUsageStats mocks base method. +func (m *MockStore) UpsertTemplateUsageStats(ctx context.Context) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertTemplateUsageStats", ctx) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertTemplateUsageStats indicates an expected call of UpsertTemplateUsageStats. +func (mr *MockStoreMockRecorder) UpsertTemplateUsageStats(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTemplateUsageStats", reflect.TypeOf((*MockStore)(nil).UpsertTemplateUsageStats), ctx) +} + +// UpsertWebpushVAPIDKeys mocks base method. +func (m *MockStore) UpsertWebpushVAPIDKeys(ctx context.Context, arg database.UpsertWebpushVAPIDKeysParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertWebpushVAPIDKeys", ctx, arg) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertWebpushVAPIDKeys indicates an expected call of UpsertWebpushVAPIDKeys. +func (mr *MockStoreMockRecorder) UpsertWebpushVAPIDKeys(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertWebpushVAPIDKeys", reflect.TypeOf((*MockStore)(nil).UpsertWebpushVAPIDKeys), ctx, arg) +} + +// UpsertWorkspaceAgentPortShare mocks base method. +func (m *MockStore) UpsertWorkspaceAgentPortShare(ctx context.Context, arg database.UpsertWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortShare, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertWorkspaceAgentPortShare", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceAgentPortShare) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertWorkspaceAgentPortShare indicates an expected call of UpsertWorkspaceAgentPortShare. +func (mr *MockStoreMockRecorder) UpsertWorkspaceAgentPortShare(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertWorkspaceAgentPortShare", reflect.TypeOf((*MockStore)(nil).UpsertWorkspaceAgentPortShare), ctx, arg) +} + +// UpsertWorkspaceApp mocks base method. +func (m *MockStore) UpsertWorkspaceApp(ctx context.Context, arg database.UpsertWorkspaceAppParams) (database.WorkspaceApp, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertWorkspaceApp", ctx, arg) + ret0, _ := ret[0].(database.WorkspaceApp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertWorkspaceApp indicates an expected call of UpsertWorkspaceApp. +func (mr *MockStoreMockRecorder) UpsertWorkspaceApp(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertWorkspaceApp", reflect.TypeOf((*MockStore)(nil).UpsertWorkspaceApp), ctx, arg) +} + +// UpsertWorkspaceAppAuditSession mocks base method. +func (m *MockStore) UpsertWorkspaceAppAuditSession(ctx context.Context, arg database.UpsertWorkspaceAppAuditSessionParams) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertWorkspaceAppAuditSession", ctx, arg) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertWorkspaceAppAuditSession indicates an expected call of UpsertWorkspaceAppAuditSession. +func (mr *MockStoreMockRecorder) UpsertWorkspaceAppAuditSession(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertWorkspaceAppAuditSession", reflect.TypeOf((*MockStore)(nil).UpsertWorkspaceAppAuditSession), ctx, arg) +} + +// ValidateGroupIDs mocks base method. +func (m *MockStore) ValidateGroupIDs(ctx context.Context, groupIds []uuid.UUID) (database.ValidateGroupIDsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ValidateGroupIDs", ctx, groupIds) + ret0, _ := ret[0].(database.ValidateGroupIDsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ValidateGroupIDs indicates an expected call of ValidateGroupIDs. +func (mr *MockStoreMockRecorder) ValidateGroupIDs(ctx, groupIds any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateGroupIDs", reflect.TypeOf((*MockStore)(nil).ValidateGroupIDs), ctx, groupIds) +} + +// ValidateUserIDs mocks base method. +func (m *MockStore) ValidateUserIDs(ctx context.Context, userIds []uuid.UUID) (database.ValidateUserIDsRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ValidateUserIDs", ctx, userIds) + ret0, _ := ret[0].(database.ValidateUserIDsRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ValidateUserIDs indicates an expected call of ValidateUserIDs. +func (mr *MockStoreMockRecorder) ValidateUserIDs(ctx, userIds any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateUserIDs", reflect.TypeOf((*MockStore)(nil).ValidateUserIDs), ctx, userIds) +} + +// Wrappers mocks base method. +func (m *MockStore) Wrappers() []string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Wrappers") + ret0, _ := ret[0].([]string) + return ret0 +} + +// Wrappers indicates an expected call of Wrappers. +func (mr *MockStoreMockRecorder) Wrappers() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Wrappers", reflect.TypeOf((*MockStore)(nil).Wrappers)) +} From 4fd7a36b76af31e201254447af407810e35616a7 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Sat, 13 Dec 2025 14:57:12 +0000 Subject: [PATCH 07/22] chore: resolve `swagger.json` diff --- coderd/apidoc/swagger.json | 43511 +++++++++++++++++------------------ 1 file changed, 20868 insertions(+), 22643 deletions(-) diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index 45c21449b7900..8cc8aca525875 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -1,22644 +1,20869 @@ { - "swagger": "2.0", - "info": { - "description": "Coderd is the service created by running coder server. It is a thin API that connects workspaces, provisioners and users. coderd stores its state in Postgres and is the only service that communicates with Postgres.", - "title": "Coder API", - "termsOfService": "https://coder.com/legal/terms-of-service", - "contact": { - "name": "API Support", - "url": "https://coder.com", - "email": "support@coder.com" - }, - "license": { - "name": "AGPL-3.0", - "url": "https://github.com/coder/coder/blob/main/LICENSE" - }, - "version": "2.0" - }, - "basePath": "/api/v2", - "paths": { - "/": { - "get": { - "produces": [ - "application/json" - ], - "tags": [ - "General" - ], - "summary": "API root handler", - "operationId": "api-root-handler", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/.well-known/oauth-authorization-server": { - "get": { - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "OAuth2 authorization server metadata.", - "operationId": "oauth2-authorization-server-metadata", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OAuth2AuthorizationServerMetadata" - } - } - } - } - }, - "/.well-known/oauth-protected-resource": { - "get": { - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "OAuth2 protected resource metadata.", - "operationId": "oauth2-protected-resource-metadata", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ProtectedResourceMetadata" - } - } - } - } - }, - "/aibridge/interceptions": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "AI Bridge" - ], - "summary": "List AI Bridge interceptions", - "operationId": "list-ai-bridge-interceptions", - "parameters": [ - { - "type": "string", - "description": "Search query in the format `key:value`. Available keys are: initiator, provider, model, started_after, started_before.", - "name": "q", - "in": "query" - }, - { - "type": "integer", - "description": "Page limit", - "name": "limit", - "in": "query" - }, - { - "type": "string", - "description": "Cursor pagination after ID (cannot be used with offset)", - "name": "after_id", - "in": "query" - }, - { - "type": "integer", - "description": "Offset pagination (cannot be used with after_id)", - "name": "offset", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.AIBridgeListInterceptionsResponse" - } - } - } - } - }, - "/aibridge/models": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "AI Bridge" - ], - "summary": "List AI Bridge models", - "operationId": "list-ai-bridge-models", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "/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 - } - } - }, - "/auth/scopes": { - "get": { - "produces": [ - "application/json" - ], - "tags": [ - "Authorization" - ], - "summary": "List API key scopes", - "operationId": "list-api-key-scopes", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ExternalAPIKeyScopes" - } - } - } - } - }, - "/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" - } - } - } - } - }, - "/connectionlog": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get connection logs", - "operationId": "get-connection-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.ConnectionLogResponse" - } - } - } - } - }, - "/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/metrics": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Debug" - ], - "summary": "Debug metrics", - "operationId": "debug-metrics", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/debug/pprof": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Debug" - ], - "summary": "Debug pprof index", - "operationId": "debug-pprof-index", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/debug/pprof/cmdline": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Debug" - ], - "summary": "Debug pprof cmdline", - "operationId": "debug-pprof-cmdline", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/debug/pprof/profile": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Debug" - ], - "summary": "Debug pprof profile", - "operationId": "debug-pprof-profile", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/debug/pprof/symbol": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Debug" - ], - "summary": "Debug pprof symbol", - "operationId": "debug-pprof-symbol", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/debug/pprof/trace": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Debug" - ], - "summary": "Debug pprof trace", - "operationId": "debug-pprof-trace", - "responses": { - "200": { - "description": "OK" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/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": [] - } - ], - "produces": [ - "application/json" - ], - "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", - "schema": { - "$ref": "#/definitions/codersdk.DeleteExternalAuthByIDResponse" - } - } - } - } - }, - "/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. If using tar format, file must conform to ustar (pax may cause problems).", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "Returns existing file if duplicate", - "schema": { - "$ref": "#/definitions/codersdk.UploadResponse" - } - }, - "201": { - "description": "Returns newly created file", - "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": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get groups", - "operationId": "get-groups", - "parameters": [ - { - "type": "string", - "description": "Organization ID or name", - "name": "organization", - "in": "query", - "required": true - }, - { - "type": "string", - "description": "User ID or name", - "name": "has_member", - "in": "query", - "required": true - }, - { - "type": "string", - "description": "Comma separated list of group IDs", - "name": "group_ids", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Group" - } - } - } - } - } - }, - "/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" - } - } - } - } - }, - "/init-script/{os}/{arch}": { - "get": { - "produces": [ - "text/plain" - ], - "tags": [ - "InitScript" - ], - "summary": "Get agent init script", - "operationId": "get-agent-init-script", - "parameters": [ - { - "type": "string", - "description": "Operating system", - "name": "os", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Architecture", - "name": "arch", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/insights/daus": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Insights" - ], - "summary": "Get deployment DAUs", - "operationId": "get-deployment-daus", - "parameters": [ - { - "type": "integer", - "description": "Time-zone offset (e.g. -2)", - "name": "tz_offset", - "in": "query", - "required": true - } - ], - "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": "string", - "format": "date-time", - "description": "Start time", - "name": "start_time", - "in": "query", - "required": true - }, - { - "type": "string", - "format": "date-time", - "description": "End time", - "name": "end_time", - "in": "query", - "required": true - }, - { - "enum": [ - "week", - "day" - ], - "type": "string", - "description": "Interval", - "name": "interval", - "in": "query", - "required": true - }, - { - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "csv", - "description": "Template IDs", - "name": "template_ids", - "in": "query" - } - ], - "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": "string", - "format": "date-time", - "description": "Start time", - "name": "start_time", - "in": "query", - "required": true - }, - { - "type": "string", - "format": "date-time", - "description": "End time", - "name": "end_time", - "in": "query", - "required": true - }, - { - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "csv", - "description": "Template IDs", - "name": "template_ids", - "in": "query" - } - ], - "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": "string", - "format": "date-time", - "description": "Start time", - "name": "start_time", - "in": "query", - "required": true - }, - { - "type": "string", - "format": "date-time", - "description": "End time", - "name": "end_time", - "in": "query", - "required": true - }, - { - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "csv", - "description": "Template IDs", - "name": "template_ids", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.UserLatencyInsightsResponse" - } - } - } - } - }, - "/insights/user-status-counts": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Insights" - ], - "summary": "Get insights about user status counts", - "operationId": "get-insights-about-user-status-counts", - "parameters": [ - { - "type": "integer", - "description": "Time-zone offset (e.g. -2)", - "name": "tz_offset", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GetUserStatusCountsResponse" - } - } - } - } - }, - "/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": [ - "Enterprise" - ], - "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": [ - "Enterprise" - ], - "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" - } - } - } - }, - "/notifications/custom": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Send a custom notification", - "operationId": "send-a-custom-notification", - "parameters": [ - { - "description": "Provide a non-empty title or message", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.CustomNotificationRequest" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Invalid request body", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - }, - "403": { - "description": "System users cannot send custom notifications", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - }, - "500": { - "description": "Failed to send custom notification", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/notifications/dispatch-methods": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Get notification dispatch methods", - "operationId": "get-notification-dispatch-methods", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.NotificationMethodsResponse" - } - } - } - } - } - }, - "/notifications/inbox": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "List inbox notifications", - "operationId": "list-inbox-notifications", - "parameters": [ - { - "type": "string", - "description": "Comma-separated list of target IDs to filter notifications", - "name": "targets", - "in": "query" - }, - { - "type": "string", - "description": "Comma-separated list of template IDs to filter notifications", - "name": "templates", - "in": "query" - }, - { - "type": "string", - "description": "Filter notifications by read status. Possible values: read, unread, all", - "name": "read_status", - "in": "query" - }, - { - "type": "string", - "format": "uuid", - "description": "ID of the last notification from the current page. Notifications returned will be older than the associated one", - "name": "starting_before", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ListInboxNotificationsResponse" - } - } - } - } - }, - "/notifications/inbox/mark-all-as-read": { - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Notifications" - ], - "summary": "Mark all unread notifications as read", - "operationId": "mark-all-unread-notifications-as-read", - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/notifications/inbox/watch": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Watch for new inbox notifications", - "operationId": "watch-for-new-inbox-notifications", - "parameters": [ - { - "type": "string", - "description": "Comma-separated list of target IDs to filter notifications", - "name": "targets", - "in": "query" - }, - { - "type": "string", - "description": "Comma-separated list of template IDs to filter notifications", - "name": "templates", - "in": "query" - }, - { - "type": "string", - "description": "Filter notifications by read status. Possible values: read, unread, all", - "name": "read_status", - "in": "query" - }, - { - "enum": [ - "plaintext", - "markdown" - ], - "type": "string", - "description": "Define the output format for notifications title and body.", - "name": "format", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GetInboxNotificationResponse" - } - } - } - } - }, - "/notifications/inbox/{id}/read-status": { - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Update read status of a notification", - "operationId": "update-read-status-of-a-notification", - "parameters": [ - { - "type": "string", - "description": "id of the notification", - "name": "id", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/notifications/settings": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Get notifications settings", - "operationId": "get-notifications-settings", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.NotificationsSettings" - } - } - } - }, - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Update notifications settings", - "operationId": "update-notifications-settings", - "parameters": [ - { - "description": "Notifications settings request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.NotificationsSettings" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.NotificationsSettings" - } - }, - "304": { - "description": "Not Modified" - } - } - } - }, - "/notifications/templates/custom": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Get custom notification templates", - "operationId": "get-custom-notification-templates", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.NotificationTemplate" - } - } - }, - "500": { - "description": "Failed to retrieve 'custom' notifications template", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/notifications/templates/system": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Get system notification templates", - "operationId": "get-system-notification-templates", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.NotificationTemplate" - } - } - }, - "500": { - "description": "Failed to retrieve 'system' notifications template", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/notifications/templates/{notification_template}/method": { - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Update notification template dispatch method", - "operationId": "update-notification-template-dispatch-method", - "parameters": [ - { - "type": "string", - "description": "Notification template UUID", - "name": "notification_template", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "Success" - }, - "304": { - "description": "Not modified" - } - } - } - }, - "/notifications/test": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Notifications" - ], - "summary": "Send a test notification", - "operationId": "send-a-test-notification", - "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": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Enterprise" - ], - "summary": "OAuth2 authorization request (GET - show authorization page).", - "operationId": "oauth2-authorization-request-get", - "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": { - "200": { - "description": "Returns HTML authorization page" - } - } - }, - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Enterprise" - ], - "summary": "OAuth2 authorization request (POST - process authorization).", - "operationId": "oauth2-authorization-request-post", - "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": "Returns redirect with authorization code" - } - } - } - }, - "/oauth2/clients/{client_id}": { - "get": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get OAuth2 client configuration (RFC 7592)", - "operationId": "get-oauth2-client-configuration", - "parameters": [ - { - "type": "string", - "description": "Client ID", - "name": "client_id", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ClientConfiguration" - } - } - } - }, - "put": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Update OAuth2 client configuration (RFC 7592)", - "operationId": "put-oauth2-client-configuration", - "parameters": [ - { - "type": "string", - "description": "Client ID", - "name": "client_id", - "in": "path", - "required": true - }, - { - "description": "Client update request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ClientConfiguration" - } - } - } - }, - "delete": { - "tags": [ - "Enterprise" - ], - "summary": "Delete OAuth2 client registration (RFC 7592)", - "operationId": "delete-oauth2-client-configuration", - "parameters": [ - { - "type": "string", - "description": "Client ID", - "name": "client_id", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/oauth2/register": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "OAuth2 dynamic client registration (RFC 7591)", - "operationId": "oauth2-dynamic-client-registration", - "parameters": [ - { - "description": "Client registration request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationRequest" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationResponse" - } - } - } - } - }, - "/oauth2/revoke": { - "post": { - "consumes": [ - "application/x-www-form-urlencoded" - ], - "tags": [ - "Enterprise" - ], - "summary": "Revoke OAuth2 tokens (RFC 7009).", - "operationId": "oauth2-token-revocation", - "parameters": [ - { - "type": "string", - "description": "Client ID for authentication", - "name": "client_id", - "in": "formData", - "required": true - }, - { - "type": "string", - "description": "The token to revoke", - "name": "token", - "in": "formData", - "required": true - }, - { - "type": "string", - "description": "Hint about token type (access_token or refresh_token)", - "name": "token_type_hint", - "in": "formData" - } - ], - "responses": { - "200": { - "description": "Token successfully revoked" - } - } - } - }, - "/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": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Organizations" - ], - "summary": "Get organizations", - "operationId": "get-organizations", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Organization" - } - } - } - } - }, - "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" - } - } - } - }, - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Organizations" - ], - "summary": "Delete organization", - "operationId": "delete-organization", - "parameters": [ - { - "type": "string", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - }, - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Organizations" - ], - "summary": "Update organization", - "operationId": "update-organization", - "parameters": [ - { - "type": "string", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "Patch organization request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateOrganizationRequest" - } - } - ], - "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": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Members" - ], - "summary": "List organization members", - "operationId": "list-organization-members", - "deprecated": true, - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.OrganizationMemberWithUserData" - } - } - } - } - } - }, - "/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" - } - } - } - } - }, - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Members" - ], - "summary": "Upsert a custom organization role", - "operationId": "upsert-a-custom-organization-role", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "Upsert role request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.CustomRoleRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Role" - } - } - } - } - }, - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Members" - ], - "summary": "Insert a custom organization role", - "operationId": "insert-a-custom-organization-role", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "Insert role request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.CustomRoleRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Role" - } - } - } - } - } - }, - "/organizations/{organization}/members/roles/{roleName}": { - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Members" - ], - "summary": "Delete a custom organization role", - "operationId": "delete-a-custom-organization-role", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Role name", - "name": "roleName", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Role" - } - } - } - } - } - }, - "/organizations/{organization}/members/{user}": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Members" - ], - "summary": "Add organization member", - "operationId": "add-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 - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OrganizationMember" - } - } - } - }, - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Members" - ], - "summary": "Remove organization member", - "operationId": "remove-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 - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/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}/workspace-quota": { - "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 - }, - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceQuota" - } - } - } - } - }, - "/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", - "deprecated": true, - "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}/paginated-members": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Members" - ], - "summary": "Paginated organization members", - "operationId": "paginated-organization-members", - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "integer", - "description": "Page limit, if 0 returns all members", - "name": "limit", - "in": "query" - }, - { - "type": "integer", - "description": "Page offset", - "name": "offset", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.PaginatedMembersResponse" - } - } - } - } - } - }, - "/organizations/{organization}/provisionerdaemons": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Provisioning" - ], - "summary": "Get provisioner daemons", - "operationId": "get-provisioner-daemons", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "integer", - "description": "Page limit", - "name": "limit", - "in": "query" - }, - { - "type": "array", - "format": "uuid", - "items": { - "type": "string" - }, - "description": "Filter results by job IDs", - "name": "ids", - "in": "query" - }, - { - "enum": [ - "pending", - "running", - "succeeded", - "canceling", - "canceled", - "failed", - "unknown", - "pending", - "running", - "succeeded", - "canceling", - "canceled", - "failed" - ], - "type": "string", - "description": "Filter results by status", - "name": "status", - "in": "query" - }, - { - "type": "object", - "description": "Provisioner tags to filter by (JSON of the form {'tag1':'value1','tag2':'value2'})", - "name": "tags", - "in": "query" - } - ], - "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}/provisionerjobs": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Organizations" - ], - "summary": "Get provisioner jobs", - "operationId": "get-provisioner-jobs", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "integer", - "description": "Page limit", - "name": "limit", - "in": "query" - }, - { - "type": "array", - "format": "uuid", - "items": { - "type": "string" - }, - "description": "Filter results by job IDs", - "name": "ids", - "in": "query" - }, - { - "enum": [ - "pending", - "running", - "succeeded", - "canceling", - "canceled", - "failed", - "unknown", - "pending", - "running", - "succeeded", - "canceling", - "canceled", - "failed" - ], - "type": "string", - "description": "Filter results by status", - "name": "status", - "in": "query" - }, - { - "type": "object", - "description": "Provisioner tags to filter by (JSON of the form {'tag1':'value1','tag2':'value2'})", - "name": "tags", - "in": "query" - }, - { - "type": "string", - "format": "uuid", - "description": "Filter results by initiator", - "name": "initiator", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ProvisionerJob" - } - } - } - } - } - }, - "/organizations/{organization}/provisionerjobs/{job}": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Organizations" - ], - "summary": "Get provisioner job", - "operationId": "get-provisioner-job", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "string", - "format": "uuid", - "description": "Job ID", - "name": "job", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ProvisionerJob" - } - } - } - } - }, - "/organizations/{organization}/provisionerkeys": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "List provisioner key", - "operationId": "list-provisioner-key", - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ProvisionerKey" - } - } - } - } - }, - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Create provisioner key", - "operationId": "create-provisioner-key", - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/codersdk.CreateProvisionerKeyResponse" - } - } - } - } - }, - "/organizations/{organization}/provisionerkeys/daemons": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "List provisioner key daemons", - "operationId": "list-provisioner-key-daemons", - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ProvisionerKeyDaemons" - } - } - } - } - } - }, - "/organizations/{organization}/provisionerkeys/{provisionerkey}": { - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Enterprise" - ], - "summary": "Delete provisioner key", - "operationId": "delete-provisioner-key", - "parameters": [ - { - "type": "string", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Provisioner key name", - "name": "provisionerkey", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/organizations/{organization}/settings/idpsync/available-fields": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get the available organization idp sync claim fields", - "operationId": "get-the-available-organization-idp-sync-claim-fields", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/field-values": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get the organization idp sync claim field values", - "operationId": "get-the-organization-idp-sync-claim-field-values", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "string", - "format": "string", - "description": "Claim Field", - "name": "claimField", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/groups": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get group IdP Sync settings by organization", - "operationId": "get-group-idp-sync-settings-by-organization", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GroupSyncSettings" - } - } - } - }, - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Update group IdP Sync settings by organization", - "operationId": "update-group-idp-sync-settings-by-organization", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "New settings", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.GroupSyncSettings" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GroupSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/groups/config": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Update group IdP Sync config", - "operationId": "update-group-idp-sync-config", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "New config values", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchGroupIDPSyncConfigRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GroupSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/groups/mapping": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Update group IdP Sync mapping", - "operationId": "update-group-idp-sync-mapping", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "Description of the mappings to add and remove", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchGroupIDPSyncMappingRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.GroupSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/roles": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get role IdP Sync settings by organization", - "operationId": "get-role-idp-sync-settings-by-organization", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.RoleSyncSettings" - } - } - } - }, - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Update role IdP Sync settings by organization", - "operationId": "update-role-idp-sync-settings-by-organization", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "New settings", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.RoleSyncSettings" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.RoleSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/roles/config": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Update role IdP Sync config", - "operationId": "update-role-idp-sync-config", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "New config values", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchRoleIDPSyncConfigRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.RoleSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/settings/idpsync/roles/mapping": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Update role IdP Sync mapping", - "operationId": "update-role-idp-sync-mapping", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID or name", - "name": "organization", - "in": "path", - "required": true - }, - { - "description": "Description of the mappings to add and remove", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchRoleIDPSyncMappingRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.RoleSyncSettings" - } - } - } - } - }, - "/organizations/{organization}/templates": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "description": "Returns a list of templates for the specified organization.\nBy default, only non-deprecated templates are returned.\nTo include deprecated templates, specify `deprecated:true` in the search query.", - "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", - "deprecated": true, - "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" - } - } - } - } - }, - "/prebuilds/settings": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Prebuilds" - ], - "summary": "Get prebuilds settings", - "operationId": "get-prebuilds-settings", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.PrebuildsSettings" - } - } - } - }, - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Prebuilds" - ], - "summary": "Update prebuilds settings", - "operationId": "update-prebuilds-settings", - "parameters": [ - { - "description": "Prebuilds settings request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PrebuildsSettings" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.PrebuildsSettings" - } - }, - "304": { - "description": "Not Modified" - } - } - } - }, - "/provisionerkeys/{provisionerkey}": { - "get": { - "security": [ - { - "CoderProvisionerKey": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Fetch provisioner key details", - "operationId": "fetch-provisioner-key-details", - "parameters": [ - { - "type": "string", - "description": "Provisioner Key", - "name": "provisionerkey", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ProvisionerKey" - } - } - } - } - }, - "/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/ServiceProviderConfig": { - "get": { - "produces": [ - "application/scim+json" - ], - "tags": [ - "Enterprise" - ], - "summary": "SCIM 2.0: Service Provider Config", - "operationId": "scim-get-service-provider-config", - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/scim/v2/Users": { - "get": { - "security": [ - { - "Authorization": [] - } - ], - "produces": [ - "application/scim+json" - ], - "tags": [ - "Enterprise" - ], - "summary": "SCIM 2.0: Get users", - "operationId": "scim-get-users", - "responses": { - "200": { - "description": "OK" - } - } - }, - "post": { - "security": [ - { - "Authorization": [] - } - ], - "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": [ - { - "Authorization": [] - } - ], - "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" - } - } - }, - "put": { - "security": [ - { - "Authorization": [] - } - ], - "produces": [ - "application/scim+json" - ], - "tags": [ - "Enterprise" - ], - "summary": "SCIM 2.0: Replace user account", - "operationId": "scim-replace-user-status", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "User ID", - "name": "id", - "in": "path", - "required": true - }, - { - "description": "Replace user request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/coderd.SCIMUser" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.User" - } - } - } - }, - "patch": { - "security": [ - { - "Authorization": [] - } - ], - "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" - } - } - } - } - }, - "/settings/idpsync/available-fields": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get the available idp sync claim fields", - "operationId": "get-the-available-idp-sync-claim-fields", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "/settings/idpsync/field-values": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get the idp sync claim field values", - "operationId": "get-the-idp-sync-claim-field-values", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Organization ID", - "name": "organization", - "in": "path", - "required": true - }, - { - "type": "string", - "format": "string", - "description": "Claim Field", - "name": "claimField", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "/settings/idpsync/organization": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get organization IdP Sync settings", - "operationId": "get-organization-idp-sync-settings", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OrganizationSyncSettings" - } - } - } - }, - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Update organization IdP Sync settings", - "operationId": "update-organization-idp-sync-settings", - "parameters": [ - { - "description": "New settings", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.OrganizationSyncSettings" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OrganizationSyncSettings" - } - } - } - } - }, - "/settings/idpsync/organization/config": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Update organization IdP Sync config", - "operationId": "update-organization-idp-sync-config", - "parameters": [ - { - "description": "New config values", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchOrganizationIDPSyncConfigRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OrganizationSyncSettings" - } - } - } - } - }, - "/settings/idpsync/organization/mapping": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Update organization IdP Sync mapping", - "operationId": "update-organization-idp-sync-mapping", - "parameters": [ - { - "description": "Description of the mappings to add and remove", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.PatchOrganizationIDPSyncMappingRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.OrganizationSyncSettings" - } - } - } - } - }, - "/tailnet": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Agents" - ], - "summary": "User-scoped tailnet RPC connection", - "operationId": "user-scoped-tailnet-rpc-connection", - "responses": { - "101": { - "description": "Switching Protocols" - } - } - } - }, - "/tasks": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Tasks" - ], - "summary": "List AI tasks", - "operationId": "list-ai-tasks", - "parameters": [ - { - "type": "string", - "description": "Search query for filtering tasks. Supports: owner:\u003cusername/uuid/me\u003e, organization:\u003corg-name/uuid\u003e, status:\u003cstatus\u003e", - "name": "q", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.TasksListResponse" - } - } - } - } - }, - "/tasks/{user}": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Tasks" - ], - "summary": "Create a new AI task", - "operationId": "create-a-new-ai-task", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "description": "Create task request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.CreateTaskRequest" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/codersdk.Task" - } - } - } - } - }, - "/tasks/{user}/{task}": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Tasks" - ], - "summary": "Get AI task by ID or name", - "operationId": "get-ai-task-by-id-or-name", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Task ID, or task name", - "name": "task", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Task" - } - } - } - }, - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Tasks" - ], - "summary": "Delete AI task", - "operationId": "delete-ai-task", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Task ID, or task name", - "name": "task", - "in": "path", - "required": true - } - ], - "responses": { - "202": { - "description": "Accepted" - } - } - } - }, - "/tasks/{user}/{task}/input": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "tags": [ - "Tasks" - ], - "summary": "Update AI task input", - "operationId": "update-ai-task-input", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Task ID, or task name", - "name": "task", - "in": "path", - "required": true - }, - { - "description": "Update task input request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateTaskInputRequest" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/tasks/{user}/{task}/logs": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Tasks" - ], - "summary": "Get AI task logs", - "operationId": "get-ai-task-logs", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Task ID, or task name", - "name": "task", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.TaskLogsResponse" - } - } - } - } - }, - "/tasks/{user}/{task}/send": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "tags": [ - "Tasks" - ], - "summary": "Send input to AI task", - "operationId": "send-input-to-ai-task", - "parameters": [ - { - "type": "string", - "description": "Username, user ID, or 'me' for the authenticated user", - "name": "user", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Task ID, or task name", - "name": "task", - "in": "path", - "required": true - }, - { - "description": "Task input request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.TaskSendRequest" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/templates": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "description": "Returns a list of templates.\nBy default, only non-deprecated templates are returned.\nTo include deprecated templates, specify `deprecated:true` in the search query.", - "produces": [ - "application/json" - ], - "tags": [ - "Templates" - ], - "summary": "Get all templates", - "operationId": "get-all-templates", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Template" - } - } - } - } - } - }, - "/templates/examples": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Templates" - ], - "summary": "Get template examples", - "operationId": "get-template-examples", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.TemplateExample" - } - } - } - } - } - }, - "/templates/{template}": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Templates" - ], - "summary": "Get template settings by ID", - "operationId": "get-template-settings-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": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Templates" - ], - "summary": "Update template settings by ID", - "operationId": "update-template-settings-by-id", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Template ID", - "name": "template", - "in": "path", - "required": true - }, - { - "description": "Patch template settings request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateTemplateMeta" - } - } - ], - "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": { - "$ref": "#/definitions/codersdk.TemplateACL" - } - } - } - }, - "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 ACL 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}/prebuilds/invalidate": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Invalidate presets for template", - "operationId": "invalidate-presets-for-template", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Template ID", - "name": "template", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.InvalidatePresetsResponse" - } - } - } - } - }, - "/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}/matched-provisioners": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Templates" - ], - "summary": "Get template version dry-run matched provisioners", - "operationId": "get-template-version-dry-run-matched-provisioners", - "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.MatchedProvisioners" - } - } - } - } - }, - "/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}/dynamic-parameters": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Templates" - ], - "summary": "Open dynamic parameters WebSocket by template version", - "operationId": "open-dynamic-parameters-websocket-by-template-version", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Template version ID", - "name": "templateversion", - "in": "path", - "required": true - } - ], - "responses": { - "101": { - "description": "Switching Protocols" - } - } - } - }, - "/templateversions/{templateversion}/dynamic-parameters/evaluate": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Templates" - ], - "summary": "Evaluate dynamic parameters for template version", - "operationId": "evaluate-dynamic-parameters-for-template-version", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Template version ID", - "name": "templateversion", - "in": "path", - "required": true - }, - { - "description": "Initial parameter values", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.DynamicParametersRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.DynamicParametersResponse" - } - } - } - } - }, - "/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}/presets": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Templates" - ], - "summary": "Get template version presets", - "operationId": "get-template-version-presets", - "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.Preset" - } - } - } - } - } - }, - "/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.CreateUserRequestWithOrgs" - } - } - ], - "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/oauth2/github/device": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Users" - ], - "summary": "Get Github device auth.", - "operationId": "get-github-device-auth", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ExternalAuthDevice" - } - } - } - } - }, - "/users/oidc/callback": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "OpenID Connect Callback", - "operationId": "openid-connect-callback", - "responses": { - "307": { - "description": "Temporary Redirect" - } - } - } - }, - "/users/otp/change-password": { - "post": { - "consumes": [ - "application/json" - ], - "tags": [ - "Authorization" - ], - "summary": "Change password with a one-time passcode", - "operationId": "change-password-with-a-one-time-passcode", - "parameters": [ - { - "description": "Change password request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.ChangePasswordWithOneTimePasscodeRequest" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/users/otp/request": { - "post": { - "consumes": [ - "application/json" - ], - "tags": [ - "Authorization" - ], - "summary": "Request one-time passcode", - "operationId": "request-one-time-passcode", - "parameters": [ - { - "description": "One-time passcode request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.RequestOneTimePasscodeRequest" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - } - }, - "/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/validate-password": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authorization" - ], - "summary": "Validate user password", - "operationId": "validate-user-password", - "parameters": [ - { - "description": "Validate user password request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.ValidateUserPasswordRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ValidateUserPasswordResponse" - } - } - } - } - }, - "/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": [] - } - ], - "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" - } - } - } - }, - "/users/{user}/appearance": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Users" - ], - "summary": "Get user appearance settings", - "operationId": "get-user-appearance-settings", - "parameters": [ - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.UserAppearanceSettings" - } - } - } - }, - "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.UserAppearanceSettings" - } - } - } - } - }, - "/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": "string", - "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": "string", - "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}/notifications/preferences": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Get user notification preferences", - "operationId": "get-user-notification-preferences", - "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.NotificationPreference" - } - } - } - } - }, - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Update user notification preferences", - "operationId": "update-user-notification-preferences", - "parameters": [ - { - "description": "Preferences", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateUserNotificationPreferences" - } - }, - { - "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.NotificationPreference" - } - } - } - } - } - }, - "/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}/preferences": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Users" - ], - "summary": "Get user preference settings", - "operationId": "get-user-preference-settings", - "parameters": [ - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.UserPreferenceSettings" - } - } - } - }, - "put": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Users" - ], - "summary": "Update user preference settings", - "operationId": "update-user-preference-settings", - "parameters": [ - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - }, - { - "description": "New preference settings", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateUserPreferenceSettingsRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.UserPreferenceSettings" - } - } - } - } - }, - "/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}/webpush/subscription": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Create user webpush subscription", - "operationId": "create-user-webpush-subscription", - "parameters": [ - { - "description": "Webpush subscription", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.WebpushSubscription" - } - }, - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "x-apidocgen": { - "skip": true - } - }, - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "tags": [ - "Notifications" - ], - "summary": "Delete user webpush subscription", - "operationId": "delete-user-webpush-subscription", - "parameters": [ - { - "description": "Webpush subscription", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.DeleteWebpushSubscription" - } - }, - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/users/{user}/webpush/test": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Notifications" - ], - "summary": "Send a test push notification", - "operationId": "send-a-test-push-notification", - "parameters": [ - { - "type": "string", - "description": "User ID, name, or me", - "name": "user", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/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" - } - } - } - } - }, - "/users/{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", - "operationId": "create-user-workspace", - "parameters": [ - { - "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" - } - } - } - } - }, - "/workspace-quota/{user}": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get workspace quota by user deprecated", - "operationId": "get-workspace-quota-by-user-deprecated", - "deprecated": true, - "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-status": { - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Agents" - ], - "summary": "Patch workspace agent app status", - "operationId": "patch-workspace-agent-app-status", - "parameters": [ - { - "description": "app status", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/agentsdk.PatchAppStatus" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/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/log-source": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Agents" - ], - "summary": "Post workspace agent log source", - "operationId": "post-workspace-agent-log-source", - "parameters": [ - { - "description": "Log source request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/agentsdk.PostLogSourceRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceAgentLogSource" - } - } - } - } - }, - "/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/reinit": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Agents" - ], - "summary": "Get workspace agent reinitialization", - "operationId": "get-workspace-agent-reinitialization", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/agentsdk.ReinitializationEvent" - } - } - } - } - }, - "/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/{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}/containers": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Agents" - ], - "summary": "Get running containers for workspace agent", - "operationId": "get-running-containers-for-workspace-agent", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace agent ID", - "name": "workspaceagent", - "in": "path", - "required": true - }, - { - "type": "string", - "format": "key=value", - "description": "Labels", - "name": "label", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceAgentListContainersResponse" - } - } - } - } - }, - "/workspaceagents/{workspaceagent}/containers/devcontainers/{devcontainer}/recreate": { - "post": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Agents" - ], - "summary": "Recreate devcontainer for workspace agent", - "operationId": "recreate-devcontainer-for-workspace-agent", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace agent ID", - "name": "workspaceagent", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Devcontainer ID", - "name": "devcontainer", - "in": "path", - "required": true - } - ], - "responses": { - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/workspaceagents/{workspaceagent}/containers/watch": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Agents" - ], - "summary": "Watch workspace agent for container updates.", - "operationId": "watch-workspace-agent-for-container-updates", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace agent ID", - "name": "workspaceagent", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceAgentListContainersResponse" - } - } - } - } - }, - "/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", - "deprecated": true, - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace agent ID", - "name": "workspaceagent", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "Success" - } - }, - "x-apidocgen": { - "skip": true - } - } - }, - "/workspaceagents/{workspaceagent}/watch-metadata-ws": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Agents" - ], - "summary": "Watch for workspace agent metadata updates via WebSockets", - "operationId": "watch-for-workspace-agent-metadata-updates-via-websockets", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace agent ID", - "name": "workspaceagent", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ServerSentEvent" - } - } - }, - "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 - }, - { - "enum": [ - "running", - "pending" - ], - "type": "string", - "description": "Expected status of the job. If expect_status is supplied, the request will be rejected with 412 Precondition Failed if the job doesn't match the state when performing the cancellation.", - "name": "expect_status", - "in": "query" - } - ], - "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 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" - } - } - } - } - } - }, - "/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" - } - } - } - } - }, - "/workspacebuilds/{workspacebuild}/timings": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Builds" - ], - "summary": "Get workspace build timings by ID", - "operationId": "get-workspace-build-timings-by-id", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace build ID", - "name": "workspacebuild", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceBuildTimings" - } - } - } - } - }, - "/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/crypto-keys": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get workspace proxy crypto keys", - "operationId": "get-workspace-proxy-crypto-keys", - "parameters": [ - { - "type": "string", - "description": "Feature key", - "name": "feature", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/wsproxysdk.CryptoKeysResponse" - } - } - }, - "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, has-ai-task, has_external_agent.", - "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}/acl": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Workspaces" - ], - "summary": "Get workspace ACLs", - "operationId": "get-workspace-acls", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceACL" - } - } - } - }, - "delete": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "tags": [ - "Workspaces" - ], - "summary": "Completely clears the workspace's user and group ACLs.", - "operationId": "completely-clears-the-workspaces-user-and-group-acls", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - } - ], - "responses": { - "204": { - "description": "No Content" - } - } - }, - "patch": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Workspaces" - ], - "summary": "Update workspace ACL", - "operationId": "update-workspace-acl", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - }, - { - "description": "Update workspace ACL request", - "name": "request", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/codersdk.UpdateWorkspaceACL" - } - } - ], - "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}/external-agent/{agent}/credentials": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Enterprise" - ], - "summary": "Get workspace external agent credentials", - "operationId": "get-workspace-external-agent-credentials", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - }, - { - "type": "string", - "description": "Agent name", - "name": "agent", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ExternalAgentCredentials" - } - } - } - } - }, - "/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": "Delete workspace agent port share", - "operationId": "delete-workspace-agent-port-share", - "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}/timings": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Workspaces" - ], - "summary": "Get workspace timings by ID", - "operationId": "get-workspace-timings-by-id", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.WorkspaceBuildTimings" - } - } - } - } - }, - "/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": [] - } - ], - "consumes": [ - "application/json" - ], - "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 - }, - { - "description": "Post workspace usage request", - "name": "request", - "in": "body", - "schema": { - "$ref": "#/definitions/codersdk.PostWorkspaceUsageRequest" - } - } - ], - "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", - "deprecated": true, - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.Response" - } - } - } - } - }, - "/workspaces/{workspace}/watch-ws": { - "get": { - "security": [ - { - "CoderSessionToken": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "Workspaces" - ], - "summary": "Watch workspace by ID via WebSockets", - "operationId": "watch-workspace-by-id-via-websockets", - "parameters": [ - { - "type": "string", - "format": "uuid", - "description": "Workspace ID", - "name": "workspace", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/codersdk.ServerSentEvent" - } - } - } - } - } - }, - "definitions": { - "agentsdk.AWSInstanceIdentityToken": { - "type": "object", - "required": [ - "document", - "signature" - ], - "properties": { - "document": { - "type": "string" - }, - "signature": { - "type": "string" - } - } - }, - "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.PatchAppStatus": { - "type": "object", - "properties": { - "app_slug": { - "type": "string" - }, - "icon": { - "description": "Deprecated: this field is unused and will be removed in a future version.", - "type": "string" - }, - "message": { - "type": "string" - }, - "needs_user_attention": { - "description": "Deprecated: this field is unused and will be removed in a future version.", - "type": "boolean" - }, - "state": { - "$ref": "#/definitions/codersdk.WorkspaceAppStatusState" - }, - "uri": { - "type": "string" - } - } - }, - "agentsdk.PatchLogs": { - "type": "object", - "properties": { - "log_source_id": { - "type": "string" - }, - "logs": { - "type": "array", - "items": { - "$ref": "#/definitions/agentsdk.Log" - } - } - } - }, - "agentsdk.PostLogSourceRequest": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "id": { - "description": "ID is a unique identifier for the log source.\nIt is scoped to a workspace agent, and can be statically\ndefined inside code to prevent duplicate sources from being\ncreated for the same agent.", - "type": "string" - } - } - }, - "agentsdk.ReinitializationEvent": { - "type": "object", - "properties": { - "reason": { - "$ref": "#/definitions/agentsdk.ReinitializationReason" - }, - "workspaceID": { - "type": "string" - } - } - }, - "agentsdk.ReinitializationReason": { - "type": "string", - "enum": [ - "prebuild_claimed" - ], - "x-enum-varnames": [ - "ReinitializeReasonPrebuildClaimed" - ] - }, - "coderd.SCIMUser": { - "type": "object", - "properties": { - "active": { - "description": "Active is a ptr to prevent the empty value from being interpreted as false.", - "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.AIBridgeAnthropicConfig": { - "type": "object", - "properties": { - "base_url": { - "type": "string" - }, - "key": { - "type": "string" - } - } - }, - "codersdk.AIBridgeBedrockConfig": { - "type": "object", - "properties": { - "access_key": { - "type": "string" - }, - "access_key_secret": { - "type": "string" - }, - "model": { - "type": "string" - }, - "region": { - "type": "string" - }, - "small_fast_model": { - "type": "string" - } - } - }, - "codersdk.AIBridgeConfig": { - "type": "object", - "properties": { - "anthropic": { - "$ref": "#/definitions/codersdk.AIBridgeAnthropicConfig" - }, - "bedrock": { - "$ref": "#/definitions/codersdk.AIBridgeBedrockConfig" - }, - "enabled": { - "type": "boolean" - }, - "inject_coder_mcp_tools": { - "type": "boolean" - }, - "max_concurrency": { - "type": "integer" - }, - "openai": { - "$ref": "#/definitions/codersdk.AIBridgeOpenAIConfig" - }, - "rate_limit": { - "type": "integer" - }, - "retention": { - "type": "integer" - } - } - }, - "codersdk.AIBridgeInterception": { - "type": "object", - "properties": { - "api_key_id": { - "type": "string" - }, - "ended_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "initiator": { - "$ref": "#/definitions/codersdk.MinimalUser" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "model": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "started_at": { - "type": "string", - "format": "date-time" - }, - "token_usages": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AIBridgeTokenUsage" - } - }, - "tool_usages": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AIBridgeToolUsage" - } - }, - "user_prompts": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AIBridgeUserPrompt" - } - } - } - }, - "codersdk.AIBridgeListInterceptionsResponse": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AIBridgeInterception" - } - } - } - }, - "codersdk.AIBridgeOpenAIConfig": { - "type": "object", - "properties": { - "base_url": { - "type": "string" - }, - "key": { - "type": "string" - } - } - }, - "codersdk.AIBridgeTokenUsage": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "input_tokens": { - "type": "integer" - }, - "interception_id": { - "type": "string", - "format": "uuid" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "output_tokens": { - "type": "integer" - }, - "provider_response_id": { - "type": "string" - } - } - }, - "codersdk.AIBridgeToolUsage": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "injected": { - "type": "boolean" - }, - "input": { - "type": "string" - }, - "interception_id": { - "type": "string", - "format": "uuid" - }, - "invocation_error": { - "type": "string" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "provider_response_id": { - "type": "string" - }, - "server_url": { - "type": "string" - }, - "tool": { - "type": "string" - } - } - }, - "codersdk.AIBridgeUserPrompt": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "interception_id": { - "type": "string", - "format": "uuid" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "prompt": { - "type": "string" - }, - "provider_response_id": { - "type": "string" - } - } - }, - "codersdk.AIConfig": { - "type": "object", - "properties": { - "bridge": { - "$ref": "#/definitions/codersdk.AIBridgeConfig" - } - } - }, - "codersdk.APIAllowListTarget": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/codersdk.RBACResource" - } - } - }, - "codersdk.APIKey": { - "type": "object", - "required": [ - "created_at", - "expires_at", - "id", - "last_used", - "lifetime_seconds", - "login_type", - "token_name", - "updated_at", - "user_id" - ], - "properties": { - "allow_list": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.APIAllowListTarget" - } - }, - "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": { - "description": "Deprecated: use Scopes instead.", - "enum": [ - "all", - "application_connect" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.APIKeyScope" - } - ] - }, - "scopes": { - "type": "array", - "items": { - "$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", - "aibridge_interception:*", - "aibridge_interception:create", - "aibridge_interception:read", - "aibridge_interception:update", - "api_key:*", - "api_key:create", - "api_key:delete", - "api_key:read", - "api_key:update", - "assign_org_role:*", - "assign_org_role:assign", - "assign_org_role:create", - "assign_org_role:delete", - "assign_org_role:read", - "assign_org_role:unassign", - "assign_org_role:update", - "assign_role:*", - "assign_role:assign", - "assign_role:read", - "assign_role:unassign", - "audit_log:*", - "audit_log:create", - "audit_log:read", - "coder:all", - "coder:apikeys.manage_self", - "coder:application_connect", - "coder:templates.author", - "coder:templates.build", - "coder:workspaces.access", - "coder:workspaces.create", - "coder:workspaces.delete", - "coder:workspaces.operate", - "connection_log:*", - "connection_log:read", - "connection_log:update", - "crypto_key:*", - "crypto_key:create", - "crypto_key:delete", - "crypto_key:read", - "crypto_key:update", - "debug_info:*", - "debug_info:read", - "deployment_config:*", - "deployment_config:read", - "deployment_config:update", - "deployment_stats:*", - "deployment_stats:read", - "file:*", - "file:create", - "file:read", - "group:*", - "group:create", - "group:delete", - "group:read", - "group:update", - "group_member:*", - "group_member:read", - "idpsync_settings:*", - "idpsync_settings:read", - "idpsync_settings:update", - "inbox_notification:*", - "inbox_notification:create", - "inbox_notification:read", - "inbox_notification:update", - "license:*", - "license:create", - "license:delete", - "license:read", - "notification_message:*", - "notification_message:create", - "notification_message:delete", - "notification_message:read", - "notification_message:update", - "notification_preference:*", - "notification_preference:read", - "notification_preference:update", - "notification_template:*", - "notification_template:read", - "notification_template:update", - "oauth2_app:*", - "oauth2_app:create", - "oauth2_app:delete", - "oauth2_app:read", - "oauth2_app:update", - "oauth2_app_code_token:*", - "oauth2_app_code_token:create", - "oauth2_app_code_token:delete", - "oauth2_app_code_token:read", - "oauth2_app_secret:*", - "oauth2_app_secret:create", - "oauth2_app_secret:delete", - "oauth2_app_secret:read", - "oauth2_app_secret:update", - "organization:*", - "organization:create", - "organization:delete", - "organization:read", - "organization:update", - "organization_member:*", - "organization_member:create", - "organization_member:delete", - "organization_member:read", - "organization_member:update", - "prebuilt_workspace:*", - "prebuilt_workspace:delete", - "prebuilt_workspace:update", - "provisioner_daemon:*", - "provisioner_daemon:create", - "provisioner_daemon:delete", - "provisioner_daemon:read", - "provisioner_daemon:update", - "provisioner_jobs:*", - "provisioner_jobs:create", - "provisioner_jobs:read", - "provisioner_jobs:update", - "replicas:*", - "replicas:read", - "system:*", - "system:create", - "system:delete", - "system:read", - "system:update", - "tailnet_coordinator:*", - "tailnet_coordinator:create", - "tailnet_coordinator:delete", - "tailnet_coordinator:read", - "tailnet_coordinator:update", - "task:*", - "task:create", - "task:delete", - "task:read", - "task:update", - "template:*", - "template:create", - "template:delete", - "template:read", - "template:update", - "template:use", - "template:view_insights", - "usage_event:*", - "usage_event:create", - "usage_event:read", - "usage_event:update", - "user:*", - "user:create", - "user:delete", - "user:read", - "user:read_personal", - "user:update", - "user:update_personal", - "user_secret:*", - "user_secret:create", - "user_secret:delete", - "user_secret:read", - "user_secret:update", - "webpush_subscription:*", - "webpush_subscription:create", - "webpush_subscription:delete", - "webpush_subscription:read", - "workspace:*", - "workspace:application_connect", - "workspace:create", - "workspace:create_agent", - "workspace:delete", - "workspace:delete_agent", - "workspace:read", - "workspace:share", - "workspace:ssh", - "workspace:start", - "workspace:stop", - "workspace:update", - "workspace_agent_devcontainers:*", - "workspace_agent_devcontainers:create", - "workspace_agent_resource_monitor:*", - "workspace_agent_resource_monitor:create", - "workspace_agent_resource_monitor:read", - "workspace_agent_resource_monitor:update", - "workspace_dormant:*", - "workspace_dormant:application_connect", - "workspace_dormant:create", - "workspace_dormant:create_agent", - "workspace_dormant:delete", - "workspace_dormant:delete_agent", - "workspace_dormant:read", - "workspace_dormant:share", - "workspace_dormant:ssh", - "workspace_dormant:start", - "workspace_dormant:stop", - "workspace_dormant:update", - "workspace_proxy:*", - "workspace_proxy:create", - "workspace_proxy:delete", - "workspace_proxy:read", - "workspace_proxy:update" - ], - "x-enum-varnames": [ - "APIKeyScopeAll", - "APIKeyScopeApplicationConnect", - "APIKeyScopeAibridgeInterceptionAll", - "APIKeyScopeAibridgeInterceptionCreate", - "APIKeyScopeAibridgeInterceptionRead", - "APIKeyScopeAibridgeInterceptionUpdate", - "APIKeyScopeApiKeyAll", - "APIKeyScopeApiKeyCreate", - "APIKeyScopeApiKeyDelete", - "APIKeyScopeApiKeyRead", - "APIKeyScopeApiKeyUpdate", - "APIKeyScopeAssignOrgRoleAll", - "APIKeyScopeAssignOrgRoleAssign", - "APIKeyScopeAssignOrgRoleCreate", - "APIKeyScopeAssignOrgRoleDelete", - "APIKeyScopeAssignOrgRoleRead", - "APIKeyScopeAssignOrgRoleUnassign", - "APIKeyScopeAssignOrgRoleUpdate", - "APIKeyScopeAssignRoleAll", - "APIKeyScopeAssignRoleAssign", - "APIKeyScopeAssignRoleRead", - "APIKeyScopeAssignRoleUnassign", - "APIKeyScopeAuditLogAll", - "APIKeyScopeAuditLogCreate", - "APIKeyScopeAuditLogRead", - "APIKeyScopeCoderAll", - "APIKeyScopeCoderApikeysManageSelf", - "APIKeyScopeCoderApplicationConnect", - "APIKeyScopeCoderTemplatesAuthor", - "APIKeyScopeCoderTemplatesBuild", - "APIKeyScopeCoderWorkspacesAccess", - "APIKeyScopeCoderWorkspacesCreate", - "APIKeyScopeCoderWorkspacesDelete", - "APIKeyScopeCoderWorkspacesOperate", - "APIKeyScopeConnectionLogAll", - "APIKeyScopeConnectionLogRead", - "APIKeyScopeConnectionLogUpdate", - "APIKeyScopeCryptoKeyAll", - "APIKeyScopeCryptoKeyCreate", - "APIKeyScopeCryptoKeyDelete", - "APIKeyScopeCryptoKeyRead", - "APIKeyScopeCryptoKeyUpdate", - "APIKeyScopeDebugInfoAll", - "APIKeyScopeDebugInfoRead", - "APIKeyScopeDeploymentConfigAll", - "APIKeyScopeDeploymentConfigRead", - "APIKeyScopeDeploymentConfigUpdate", - "APIKeyScopeDeploymentStatsAll", - "APIKeyScopeDeploymentStatsRead", - "APIKeyScopeFileAll", - "APIKeyScopeFileCreate", - "APIKeyScopeFileRead", - "APIKeyScopeGroupAll", - "APIKeyScopeGroupCreate", - "APIKeyScopeGroupDelete", - "APIKeyScopeGroupRead", - "APIKeyScopeGroupUpdate", - "APIKeyScopeGroupMemberAll", - "APIKeyScopeGroupMemberRead", - "APIKeyScopeIdpsyncSettingsAll", - "APIKeyScopeIdpsyncSettingsRead", - "APIKeyScopeIdpsyncSettingsUpdate", - "APIKeyScopeInboxNotificationAll", - "APIKeyScopeInboxNotificationCreate", - "APIKeyScopeInboxNotificationRead", - "APIKeyScopeInboxNotificationUpdate", - "APIKeyScopeLicenseAll", - "APIKeyScopeLicenseCreate", - "APIKeyScopeLicenseDelete", - "APIKeyScopeLicenseRead", - "APIKeyScopeNotificationMessageAll", - "APIKeyScopeNotificationMessageCreate", - "APIKeyScopeNotificationMessageDelete", - "APIKeyScopeNotificationMessageRead", - "APIKeyScopeNotificationMessageUpdate", - "APIKeyScopeNotificationPreferenceAll", - "APIKeyScopeNotificationPreferenceRead", - "APIKeyScopeNotificationPreferenceUpdate", - "APIKeyScopeNotificationTemplateAll", - "APIKeyScopeNotificationTemplateRead", - "APIKeyScopeNotificationTemplateUpdate", - "APIKeyScopeOauth2AppAll", - "APIKeyScopeOauth2AppCreate", - "APIKeyScopeOauth2AppDelete", - "APIKeyScopeOauth2AppRead", - "APIKeyScopeOauth2AppUpdate", - "APIKeyScopeOauth2AppCodeTokenAll", - "APIKeyScopeOauth2AppCodeTokenCreate", - "APIKeyScopeOauth2AppCodeTokenDelete", - "APIKeyScopeOauth2AppCodeTokenRead", - "APIKeyScopeOauth2AppSecretAll", - "APIKeyScopeOauth2AppSecretCreate", - "APIKeyScopeOauth2AppSecretDelete", - "APIKeyScopeOauth2AppSecretRead", - "APIKeyScopeOauth2AppSecretUpdate", - "APIKeyScopeOrganizationAll", - "APIKeyScopeOrganizationCreate", - "APIKeyScopeOrganizationDelete", - "APIKeyScopeOrganizationRead", - "APIKeyScopeOrganizationUpdate", - "APIKeyScopeOrganizationMemberAll", - "APIKeyScopeOrganizationMemberCreate", - "APIKeyScopeOrganizationMemberDelete", - "APIKeyScopeOrganizationMemberRead", - "APIKeyScopeOrganizationMemberUpdate", - "APIKeyScopePrebuiltWorkspaceAll", - "APIKeyScopePrebuiltWorkspaceDelete", - "APIKeyScopePrebuiltWorkspaceUpdate", - "APIKeyScopeProvisionerDaemonAll", - "APIKeyScopeProvisionerDaemonCreate", - "APIKeyScopeProvisionerDaemonDelete", - "APIKeyScopeProvisionerDaemonRead", - "APIKeyScopeProvisionerDaemonUpdate", - "APIKeyScopeProvisionerJobsAll", - "APIKeyScopeProvisionerJobsCreate", - "APIKeyScopeProvisionerJobsRead", - "APIKeyScopeProvisionerJobsUpdate", - "APIKeyScopeReplicasAll", - "APIKeyScopeReplicasRead", - "APIKeyScopeSystemAll", - "APIKeyScopeSystemCreate", - "APIKeyScopeSystemDelete", - "APIKeyScopeSystemRead", - "APIKeyScopeSystemUpdate", - "APIKeyScopeTailnetCoordinatorAll", - "APIKeyScopeTailnetCoordinatorCreate", - "APIKeyScopeTailnetCoordinatorDelete", - "APIKeyScopeTailnetCoordinatorRead", - "APIKeyScopeTailnetCoordinatorUpdate", - "APIKeyScopeTaskAll", - "APIKeyScopeTaskCreate", - "APIKeyScopeTaskDelete", - "APIKeyScopeTaskRead", - "APIKeyScopeTaskUpdate", - "APIKeyScopeTemplateAll", - "APIKeyScopeTemplateCreate", - "APIKeyScopeTemplateDelete", - "APIKeyScopeTemplateRead", - "APIKeyScopeTemplateUpdate", - "APIKeyScopeTemplateUse", - "APIKeyScopeTemplateViewInsights", - "APIKeyScopeUsageEventAll", - "APIKeyScopeUsageEventCreate", - "APIKeyScopeUsageEventRead", - "APIKeyScopeUsageEventUpdate", - "APIKeyScopeUserAll", - "APIKeyScopeUserCreate", - "APIKeyScopeUserDelete", - "APIKeyScopeUserRead", - "APIKeyScopeUserReadPersonal", - "APIKeyScopeUserUpdate", - "APIKeyScopeUserUpdatePersonal", - "APIKeyScopeUserSecretAll", - "APIKeyScopeUserSecretCreate", - "APIKeyScopeUserSecretDelete", - "APIKeyScopeUserSecretRead", - "APIKeyScopeUserSecretUpdate", - "APIKeyScopeWebpushSubscriptionAll", - "APIKeyScopeWebpushSubscriptionCreate", - "APIKeyScopeWebpushSubscriptionDelete", - "APIKeyScopeWebpushSubscriptionRead", - "APIKeyScopeWorkspaceAll", - "APIKeyScopeWorkspaceApplicationConnect", - "APIKeyScopeWorkspaceCreate", - "APIKeyScopeWorkspaceCreateAgent", - "APIKeyScopeWorkspaceDelete", - "APIKeyScopeWorkspaceDeleteAgent", - "APIKeyScopeWorkspaceRead", - "APIKeyScopeWorkspaceShare", - "APIKeyScopeWorkspaceSsh", - "APIKeyScopeWorkspaceStart", - "APIKeyScopeWorkspaceStop", - "APIKeyScopeWorkspaceUpdate", - "APIKeyScopeWorkspaceAgentDevcontainersAll", - "APIKeyScopeWorkspaceAgentDevcontainersCreate", - "APIKeyScopeWorkspaceAgentResourceMonitorAll", - "APIKeyScopeWorkspaceAgentResourceMonitorCreate", - "APIKeyScopeWorkspaceAgentResourceMonitorRead", - "APIKeyScopeWorkspaceAgentResourceMonitorUpdate", - "APIKeyScopeWorkspaceDormantAll", - "APIKeyScopeWorkspaceDormantApplicationConnect", - "APIKeyScopeWorkspaceDormantCreate", - "APIKeyScopeWorkspaceDormantCreateAgent", - "APIKeyScopeWorkspaceDormantDelete", - "APIKeyScopeWorkspaceDormantDeleteAgent", - "APIKeyScopeWorkspaceDormantRead", - "APIKeyScopeWorkspaceDormantShare", - "APIKeyScopeWorkspaceDormantSsh", - "APIKeyScopeWorkspaceDormantStart", - "APIKeyScopeWorkspaceDormantStop", - "APIKeyScopeWorkspaceDormantUpdate", - "APIKeyScopeWorkspaceProxyAll", - "APIKeyScopeWorkspaceProxyCreate", - "APIKeyScopeWorkspaceProxyDelete", - "APIKeyScopeWorkspaceProxyRead", - "APIKeyScopeWorkspaceProxyUpdate" - ] - }, - "codersdk.AddLicenseRequest": { - "type": "object", - "required": [ - "license" - ], - "properties": { - "license": { - "type": "string" - } - } - }, - "codersdk.AgentConnectionTiming": { - "type": "object", - "properties": { - "ended_at": { - "type": "string", - "format": "date-time" - }, - "stage": { - "$ref": "#/definitions/codersdk.TimingStage" - }, - "started_at": { - "type": "string", - "format": "date-time" - }, - "workspace_agent_id": { - "type": "string" - }, - "workspace_agent_name": { - "type": "string" - } - } - }, - "codersdk.AgentScriptTiming": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "ended_at": { - "type": "string", - "format": "date-time" - }, - "exit_code": { - "type": "integer" - }, - "stage": { - "$ref": "#/definitions/codersdk.TimingStage" - }, - "started_at": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "workspace_agent_id": { - "type": "string" - }, - "workspace_agent_name": { - "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": { - "announcement_banners": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.BannerConfig" - } - }, - "application_name": { - "type": "string" - }, - "docs_url": { - "type": "string" - }, - "logo_url": { - "type": "string" - }, - "service_banner": { - "description": "Deprecated: ServiceBanner has been replaced by AnnouncementBanners.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.BannerConfig" - } - ] - }, - "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" - }, - "built_in": { - "description": "BuiltIn roles are immutable", - "type": "boolean" - }, - "display_name": { - "type": "string" - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_member_permissions": { - "description": "OrganizationMemberPermissions are specific for the organization in the field 'OrganizationID' above.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "organization_permissions": { - "description": "OrganizationPermissions are specific for the organization in the field 'OrganizationID' above.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "site_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "user_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - } - } - }, - "codersdk.AuditAction": { - "type": "string", - "enum": [ - "create", - "write", - "delete", - "start", - "stop", - "login", - "logout", - "register", - "request_password_reset", - "connect", - "disconnect", - "open", - "close" - ], - "x-enum-varnames": [ - "AuditActionCreate", - "AuditActionWrite", - "AuditActionDelete", - "AuditActionStart", - "AuditActionStop", - "AuditActionLogin", - "AuditActionLogout", - "AuditActionRegister", - "AuditActionRequestPasswordReset", - "AuditActionConnect", - "AuditActionDisconnect", - "AuditActionOpen", - "AuditActionClose" - ] - }, - "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": "object" - }, - "description": { - "type": "string" - }, - "diff": { - "$ref": "#/definitions/codersdk.AuditDiff" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "ip": { - "type": "string" - }, - "is_deleted": { - "type": "boolean" - }, - "organization": { - "$ref": "#/definitions/codersdk.MinimalOrganization" - }, - "organization_id": { - "description": "Deprecated: Use 'organization.id' instead.", - "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.GithubAuthMethod" - }, - "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": { - "enum": [ - "create", - "read", - "update", - "delete" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.RBACAction" - } - ] - }, - "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": { - "any_org": { - "description": "AnyOrgOwner (optional) will disregard the org_owner when checking for permissions.\nThis cannot be set to true if the OrganizationID is set.", - "type": "boolean" - }, - "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.BannerConfig": { - "type": "object", - "properties": { - "background_color": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "message": { - "type": "string" - } - } - }, - "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" - }, - "provisioner_api_version": { - "description": "ProvisionerAPIVersion is the current version of the Provisioner API", - "type": "string" - }, - "telemetry": { - "description": "Telemetry is a boolean that indicates whether telemetry is enabled.", - "type": "boolean" - }, - "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" - }, - "webpush_public_key": { - "description": "WebPushPublicKey is the public key for push notifications via Web Push.", - "type": "string" - }, - "workspace_proxy": { - "type": "boolean" - } - } - }, - "codersdk.BuildReason": { - "type": "string", - "enum": [ - "initiator", - "autostart", - "autostop", - "dormancy", - "dashboard", - "cli", - "ssh_connection", - "vscode_connection", - "jetbrains_connection" - ], - "x-enum-varnames": [ - "BuildReasonInitiator", - "BuildReasonAutostart", - "BuildReasonAutostop", - "BuildReasonDormancy", - "BuildReasonDashboard", - "BuildReasonCLI", - "BuildReasonSSHConnection", - "BuildReasonVSCodeConnection", - "BuildReasonJetbrainsConnection" - ] - }, - "codersdk.CORSBehavior": { - "type": "string", - "enum": [ - "simple", - "passthru" - ], - "x-enum-varnames": [ - "CORSBehaviorSimple", - "CORSBehaviorPassthru" - ] - }, - "codersdk.ChangePasswordWithOneTimePasscodeRequest": { - "type": "object", - "required": [ - "email", - "one_time_passcode", - "password" - ], - "properties": { - "email": { - "type": "string", - "format": "email" - }, - "one_time_passcode": { - "type": "string" - }, - "password": { - "type": "string" - } - } - }, - "codersdk.ConnectionLatency": { - "type": "object", - "properties": { - "p50": { - "type": "number", - "example": 31.312 - }, - "p95": { - "type": "number", - "example": 119.832 - } - } - }, - "codersdk.ConnectionLog": { - "type": "object", - "properties": { - "agent_name": { - "type": "string" - }, - "connect_time": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "ip": { - "type": "string" - }, - "organization": { - "$ref": "#/definitions/codersdk.MinimalOrganization" - }, - "ssh_info": { - "description": "SSHInfo is only set when `type` is one of:\n- `ConnectionTypeSSH`\n- `ConnectionTypeReconnectingPTY`\n- `ConnectionTypeVSCode`\n- `ConnectionTypeJetBrains`", - "allOf": [ - { - "$ref": "#/definitions/codersdk.ConnectionLogSSHInfo" - } - ] - }, - "type": { - "$ref": "#/definitions/codersdk.ConnectionType" - }, - "web_info": { - "description": "WebInfo is only set when `type` is one of:\n- `ConnectionTypePortForwarding`\n- `ConnectionTypeWorkspaceApp`", - "allOf": [ - { - "$ref": "#/definitions/codersdk.ConnectionLogWebInfo" - } - ] - }, - "workspace_id": { - "type": "string", - "format": "uuid" - }, - "workspace_name": { - "type": "string" - }, - "workspace_owner_id": { - "type": "string", - "format": "uuid" - }, - "workspace_owner_username": { - "type": "string" - } - } - }, - "codersdk.ConnectionLogResponse": { - "type": "object", - "properties": { - "connection_logs": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ConnectionLog" - } - }, - "count": { - "type": "integer" - } - } - }, - "codersdk.ConnectionLogSSHInfo": { - "type": "object", - "properties": { - "connection_id": { - "type": "string", - "format": "uuid" - }, - "disconnect_reason": { - "description": "DisconnectReason is omitted if a disconnect event with the same connection ID\nhas not yet been seen.", - "type": "string" - }, - "disconnect_time": { - "description": "DisconnectTime is omitted if a disconnect event with the same connection ID\nhas not yet been seen.", - "type": "string", - "format": "date-time" - }, - "exit_code": { - "description": "ExitCode is the exit code of the SSH session. It is omitted if a\ndisconnect event with the same connection ID has not yet been seen.", - "type": "integer" - } - } - }, - "codersdk.ConnectionLogWebInfo": { - "type": "object", - "properties": { - "slug_or_port": { - "type": "string" - }, - "status_code": { - "description": "StatusCode is the HTTP status code of the request.", - "type": "integer" - }, - "user": { - "description": "User is omitted if the connection event was from an unauthenticated user.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.User" - } - ] - }, - "user_agent": { - "type": "string" - } - } - }, - "codersdk.ConnectionType": { - "type": "string", - "enum": [ - "ssh", - "vscode", - "jetbrains", - "reconnecting_pty", - "workspace_app", - "port_forwarding" - ], - "x-enum-varnames": [ - "ConnectionTypeSSH", - "ConnectionTypeVSCode", - "ConnectionTypeJetBrains", - "ConnectionTypeReconnectingPTY", - "ConnectionTypeWorkspaceApp", - "ConnectionTypePortForwarding" - ] - }, - "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" - }, - "name": { - "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", - "required": [ - "name" - ], - "properties": { - "avatar_url": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "name": { - "type": "string" - }, - "quota_allowance": { - "type": "integer" - } - } - }, - "codersdk.CreateOrganizationRequest": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "description": { - "type": "string" - }, - "display_name": { - "description": "DisplayName will default to the same value as `Name` if not provided.", - "type": "string" - }, - "icon": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "codersdk.CreateProvisionerKeyResponse": { - "type": "object", - "properties": { - "key": { - "type": "string" - } - } - }, - "codersdk.CreateTaskRequest": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "input": { - "type": "string" - }, - "name": { - "type": "string" - }, - "template_version_id": { - "type": "string", - "format": "uuid" - }, - "template_version_preset_id": { - "type": "string", - "format": "uuid" - } - } - }, - "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" - } - ] - }, - "cors_behavior": { - "description": "CORSBehavior allows optionally specifying the CORS behavior for all shared ports.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.CORSBehavior" - } - ] - }, - "default_ttl_ms": { - "description": "DefaultTTLMillis allows optionally specifying the default TTL\nfor all workspaces created from this template.", - "type": "integer" - }, - "delete_ttl_ms": { - "description": "TimeTilDormantAutoDeleteMillis allows optionally specifying the max lifetime before Coder\npermanently deletes dormant workspaces created from this template.", - "type": "integer" - }, - "description": { - "description": "Description is a description of what the template contains. It must be\nless than 128 bytes.", - "type": "string" - }, - "disable_everyone_group_access": { - "description": "DisableEveryoneGroupAccess allows optionally disabling the default\nbehavior of granting the 'everyone' group access to use the template.\nIf this is set to true, the template will not be available to all users,\nand must be explicitly granted to users or groups in the permissions settings\nof the template.", - "type": "boolean" - }, - "display_name": { - "description": "DisplayName is the displayed name of the template.", - "type": "string" - }, - "dormant_ttl_ms": { - "description": "TimeTilDormantMillis allows optionally specifying the max lifetime before Coder\nlocks inactive workspaces created from this template.", - "type": "integer" - }, - "failure_ttl_ms": { - "description": "FailureTTLMillis allows optionally specifying the max lifetime before Coder\nstops all resources for failed workspaces created from this template.", - "type": "integer" - }, - "icon": { - "description": "Icon is a relative path or external URL that specifies\nan icon to be displayed in the dashboard.", - "type": "string" - }, - "max_port_share_level": { - "description": "MaxPortShareLevel allows optionally specifying the maximum port share level\nfor workspaces created from the template.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" - } - ] - }, - "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_use_classic_parameter_flow": { - "description": "UseClassicParameterFlow allows optionally specifying whether\nthe template should use the classic parameter flow. The default if unset is\ntrue, and is why `*bool` is used here. When dynamic parameters becomes\nthe default, this will default to false.", - "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" - } - ] - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "request_id": { - "type": "string", - "format": "uuid" - }, - "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": { - "allow_list": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.APIAllowListTarget" - } - }, - "lifetime": { - "type": "integer" - }, - "scope": { - "description": "Deprecated: use Scopes instead.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.APIKeyScope" - } - ] - }, - "scopes": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.APIKeyScope" - } - }, - "token_name": { - "type": "string" - } - } - }, - "codersdk.CreateUserRequestWithOrgs": { - "type": "object", - "required": [ - "email", - "username" - ], - "properties": { - "email": { - "type": "string", - "format": "email" - }, - "login_type": { - "description": "UserLoginType defaults to LoginTypePassword.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.LoginType" - } - ] - }, - "name": { - "type": "string" - }, - "organization_ids": { - "description": "OrganizationIDs is a list of organization IDs that the user should be a member of.", - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - }, - "password": { - "type": "string" - }, - "user_status": { - "description": "UserStatus defaults to UserStatusDormant.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.UserStatus" - } - ] - }, - "username": { - "type": "string" - } - } - }, - "codersdk.CreateWorkspaceBuildReason": { - "type": "string", - "enum": [ - "dashboard", - "cli", - "ssh_connection", - "vscode_connection", - "jetbrains_connection" - ], - "x-enum-varnames": [ - "CreateWorkspaceBuildReasonDashboard", - "CreateWorkspaceBuildReasonCLI", - "CreateWorkspaceBuildReasonSSHConnection", - "CreateWorkspaceBuildReasonVSCodeConnection", - "CreateWorkspaceBuildReasonJetbrainsConnection" - ] - }, - "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" - }, - "reason": { - "description": "Reason sets the reason for the workspace build.", - "enum": [ - "dashboard", - "cli", - "ssh_connection", - "vscode_connection", - "jetbrains_connection" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.CreateWorkspaceBuildReason" - } - ] - }, - "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" - }, - "template_version_preset_id": { - "description": "TemplateVersionPresetID is the ID of the template version preset to use for the build.", - "type": "string", - "format": "uuid" - }, - "transition": { - "enum": [ - "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. Workspace names: - Must start with a letter or number - Can only contain letters, numbers, and hyphens - Cannot contain spaces or special characters - Cannot be named `new` or `create` - Must be unique within your workspaces - Maximum length of 32 characters", - "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" - }, - "template_version_preset_id": { - "type": "string", - "format": "uuid" - }, - "ttl_ms": { - "type": "integer" - } - } - }, - "codersdk.CryptoKey": { - "type": "object", - "properties": { - "deletes_at": { - "type": "string", - "format": "date-time" - }, - "feature": { - "$ref": "#/definitions/codersdk.CryptoKeyFeature" - }, - "secret": { - "type": "string" - }, - "sequence": { - "type": "integer" - }, - "starts_at": { - "type": "string", - "format": "date-time" - } - } - }, - "codersdk.CryptoKeyFeature": { - "type": "string", - "enum": [ - "workspace_apps_api_key", - "workspace_apps_token", - "oidc_convert", - "tailnet_resume" - ], - "x-enum-varnames": [ - "CryptoKeyFeatureWorkspaceAppsAPIKey", - "CryptoKeyFeatureWorkspaceAppsToken", - "CryptoKeyFeatureOIDCConvert", - "CryptoKeyFeatureTailnetResume" - ] - }, - "codersdk.CustomNotificationContent": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "title": { - "type": "string" - } - } - }, - "codersdk.CustomNotificationRequest": { - "type": "object", - "properties": { - "content": { - "$ref": "#/definitions/codersdk.CustomNotificationContent" - } - } - }, - "codersdk.CustomRoleRequest": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "name": { - "type": "string" - }, - "organization_member_permissions": { - "description": "OrganizationMemberPermissions are specific to the organization the role belongs to.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "organization_permissions": { - "description": "OrganizationPermissions are specific to the organization the role belongs to.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "site_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "user_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - } - } - }, - "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.DeleteExternalAuthByIDResponse": { - "type": "object", - "properties": { - "token_revocation_error": { - "type": "string" - }, - "token_revoked": { - "description": "TokenRevoked set to true if token revocation was attempted and was successful", - "type": "boolean" - } - } - }, - "codersdk.DeleteWebpushSubscription": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - } - } - }, - "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" - }, - "additional_csp_policy": { - "type": "array", - "items": { - "type": "string" - } - }, - "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" - }, - "ai": { - "$ref": "#/definitions/codersdk.AIConfig" - }, - "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" - }, - "disable_workspace_sharing": { - "type": "boolean" - }, - "docs_url": { - "$ref": "#/definitions/serpent.URL" - }, - "enable_authz_recording": { - "type": "boolean" - }, - "enable_terraform_debug_mode": { - "type": "boolean" - }, - "ephemeral_deployment": { - "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" - }, - "hide_ai_tasks": { - "type": "boolean" - }, - "http_address": { - "description": "HTTPAddress is a string because it may be set to zero to disable.", - "type": "string" - }, - "http_cookies": { - "$ref": "#/definitions/codersdk.HTTPCookieConfig" - }, - "job_hang_detector_interval": { - "type": "integer" - }, - "logging": { - "$ref": "#/definitions/codersdk.LoggingConfig" - }, - "metrics_cache_refresh_interval": { - "type": "integer" - }, - "notifications": { - "$ref": "#/definitions/codersdk.NotificationsConfig" - }, - "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" - }, - "retention": { - "$ref": "#/definitions/codersdk.RetentionConfig" - }, - "scim_api_key": { - "type": "string" - }, - "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" - }, - "workspace_hostname_suffix": { - "type": "string" - }, - "workspace_prebuilds": { - "$ref": "#/definitions/codersdk.PrebuildsConfig" - }, - "write_config": { - "type": "boolean" - } - } - }, - "codersdk.DiagnosticExtra": { - "type": "object", - "properties": { - "code": { - "type": "string" - } - } - }, - "codersdk.DiagnosticSeverityString": { - "type": "string", - "enum": [ - "error", - "warning" - ], - "x-enum-varnames": [ - "DiagnosticSeverityError", - "DiagnosticSeverityWarning" - ] - }, - "codersdk.DisplayApp": { - "type": "string", - "enum": [ - "vscode", - "vscode_insiders", - "web_terminal", - "port_forwarding_helper", - "ssh_helper" - ], - "x-enum-varnames": [ - "DisplayAppVSCodeDesktop", - "DisplayAppVSCodeInsiders", - "DisplayAppWebTerminal", - "DisplayAppPortForward", - "DisplayAppSSH" - ] - }, - "codersdk.DynamicParametersRequest": { - "type": "object", - "properties": { - "id": { - "description": "ID identifies the request. The response contains the same\nID so that the client can match it to the request.", - "type": "integer" - }, - "inputs": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "owner_id": { - "description": "OwnerID if uuid.Nil, it defaults to `codersdk.Me`", - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.DynamicParametersResponse": { - "type": "object", - "properties": { - "diagnostics": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.FriendlyDiagnostic" - } - }, - "id": { - "type": "integer" - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.PreviewParameter" - } - } - } - }, - "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", - "notifications", - "workspace-usage", - "web-push", - "oauth2", - "mcp-server-http", - "workspace-sharing", - "terraform-directory-reuse" - ], - "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.", - "ExperimentMCPServerHTTP": "Enables the MCP HTTP server functionality.", - "ExperimentNotifications": "Sends notifications via SMTP and webhooks following certain events.", - "ExperimentOAuth2": "Enables OAuth2 provider functionality.", - "ExperimentTerraformWorkspace": "Enables reuse of existing terraform directory for builds", - "ExperimentWebPush": "Enables web push notifications through the browser.", - "ExperimentWorkspaceSharing": "Enables updating workspace ACLs for sharing with users and groups.", - "ExperimentWorkspaceUsage": "Enables the new workspace usage tracking." - }, - "x-enum-varnames": [ - "ExperimentExample", - "ExperimentAutoFillParameters", - "ExperimentNotifications", - "ExperimentWorkspaceUsage", - "ExperimentWebPush", - "ExperimentOAuth2", - "ExperimentMCPServerHTTP", - "ExperimentWorkspaceSharing", - "ExperimentTerraformWorkspace" - ] - }, - "codersdk.ExternalAPIKeyScopes": { - "type": "object", - "properties": { - "external": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.APIKeyScope" - } - } - } - }, - "codersdk.ExternalAgentCredentials": { - "type": "object", - "properties": { - "agent_token": { - "type": "string" - }, - "command": { - "type": "string" - } - } - }, - "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" - } - }, - "supports_revocation": { - "type": "boolean" - }, - "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" - }, - "id": { - "description": "ID is a unique identifier for the auth config.\nIt defaults to `type` when not provided.", - "type": "string" - }, - "mcp_tool_allow_regex": { - "type": "string" - }, - "mcp_tool_deny_regex": { - "type": "string" - }, - "mcp_url": { - "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" - }, - "revoke_url": { - "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" - }, - "id": { - "type": "integer" - }, - "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" - }, - "soft_limit": { - "description": "SoftLimit is the soft limit of the feature, and is only used for showing\nincluded limits in the dashboard. No license validation or warnings are\ngenerated from this value.", - "type": "integer" - }, - "usage_period": { - "description": "UsagePeriod denotes that the usage is a counter that accumulates over\nthis period (and most likely resets with the issuance of the next\nlicense).\n\nThese dates are determined from the license that this entitlement comes\nfrom, see enterprise/coderd/license/license.go.\n\nOnly certain features set these fields:\n- FeatureManagedAgentLimit", - "allOf": [ - { - "$ref": "#/definitions/codersdk.UsagePeriod" - } - ] - } - } - }, - "codersdk.FriendlyDiagnostic": { - "type": "object", - "properties": { - "detail": { - "type": "string" - }, - "extra": { - "$ref": "#/definitions/codersdk.DiagnosticExtra" - }, - "severity": { - "$ref": "#/definitions/codersdk.DiagnosticSeverityString" - }, - "summary": { - "type": "string" - } - } - }, - "codersdk.GenerateAPIKeyResponse": { - "type": "object", - "properties": { - "key": { - "type": "string" - } - } - }, - "codersdk.GetInboxNotificationResponse": { - "type": "object", - "properties": { - "notification": { - "$ref": "#/definitions/codersdk.InboxNotification" - }, - "unread_count": { - "type": "integer" - } - } - }, - "codersdk.GetUserStatusCountsResponse": { - "type": "object", - "properties": { - "status_counts": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.UserStatusChangeCount" - } - } - } - } - }, - "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": { - "description": "PublicKey is the SSH public key in OpenSSH format.\nExample: \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3OmYJvT7q1cF1azbybYy0OZ9yrXfA+M6Lr4vzX5zlp\\n\"\nNote: The key includes a trailing newline (\\n).", - "type": "string" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "user_id": { - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.GithubAuthMethod": { - "type": "object", - "properties": { - "default_provider_configured": { - "type": "boolean" - }, - "enabled": { - "type": "boolean" - } - } - }, - "codersdk.Group": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ReducedUser" - } - }, - "name": { - "type": "string" - }, - "organization_display_name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_name": { - "type": "string" - }, - "quota_allowance": { - "type": "integer" - }, - "source": { - "$ref": "#/definitions/codersdk.GroupSource" - }, - "total_member_count": { - "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", - "type": "integer" - } - } - }, - "codersdk.GroupSource": { - "type": "string", - "enum": [ - "user", - "oidc" - ], - "x-enum-varnames": [ - "GroupSourceUser", - "GroupSourceOIDC" - ] - }, - "codersdk.GroupSyncSettings": { - "type": "object", - "properties": { - "auto_create_missing_groups": { - "description": "AutoCreateMissing controls whether groups returned by the OIDC provider\nare automatically created in Coder if they are missing.", - "type": "boolean" - }, - "field": { - "description": "Field is the name of the claim field that specifies what groups a user\nshould be in. If empty, no groups will be synced.", - "type": "string" - }, - "legacy_group_name_mapping": { - "description": "LegacyNameMapping is deprecated. It remaps an IDP group name to\na Coder group name. Since configuration is now done at runtime,\ngroup IDs are used to account for group renames.\nFor legacy configurations, this config option has to remain.\nDeprecated: Use Mapping instead.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "mapping": { - "description": "Mapping is a map from OIDC groups to Coder group IDs", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "regex_filter": { - "description": "RegexFilter is a regular expression that filters the groups returned by\nthe OIDC provider. Any group not matched by this regex will be ignored.\nIf the group filter is nil, then no group filtering will occur.", - "allOf": [ - { - "$ref": "#/definitions/regexp.Regexp" - } - ] - } - } - }, - "codersdk.HTTPCookieConfig": { - "type": "object", - "properties": { - "same_site": { - "type": "string" - }, - "secure_auth_cookie": { - "type": "boolean" - } - } - }, - "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.InboxNotification": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.InboxNotificationAction" - } - }, - "content": { - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "icon": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "read_at": { - "type": "string" - }, - "targets": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - }, - "template_id": { - "type": "string", - "format": "uuid" - }, - "title": { - "type": "string" - }, - "user_id": { - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.InboxNotificationAction": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "codersdk.InsightsReportInterval": { - "type": "string", - "enum": [ - "day", - "week" - ], - "x-enum-varnames": [ - "InsightsReportIntervalDay", - "InsightsReportIntervalWeek" - ] - }, - "codersdk.InvalidatePresetsResponse": { - "type": "object", - "properties": { - "invalidated": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.InvalidatedPreset" - } - } - } - }, - "codersdk.InvalidatedPreset": { - "type": "object", - "properties": { - "preset_name": { - "type": "string" - }, - "template_name": { - "type": "string" - }, - "template_version_name": { - "type": "string" - } - } - }, - "codersdk.IssueReconnectingPTYSignedTokenRequest": { - "type": "object", - "required": [ - "agentID", - "url" - ], - "properties": { - "agentID": { - "type": "string", - "format": "uuid" - }, - "url": { - "description": "URL is the URL of the reconnecting-pty endpoint you are connecting to.", - "type": "string" - } - } - }, - "codersdk.IssueReconnectingPTYSignedTokenResponse": { - "type": "object", - "properties": { - "signed_token": { - "type": "string" - } - } - }, - "codersdk.JobErrorCode": { - "type": "string", - "enum": [ - "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", - "star" - ] - }, - "location": { - "type": "string", - "enum": [ - "navbar", - "dropdown" - ] - }, - "name": { - "type": "string" - }, - "target": { - "type": "string" - } - } - }, - "codersdk.ListInboxNotificationsResponse": { - "type": "object", - "properties": { - "notifications": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.InboxNotification" - } - }, - "unread_count": { - "type": "integer" - } - } - }, - "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.MatchedProvisioners": { - "type": "object", - "properties": { - "available": { - "description": "Available is the number of provisioner daemons that are available to\ntake jobs. This may be less than the count if some provisioners are\nbusy or have been stopped.", - "type": "integer" - }, - "count": { - "description": "Count is the number of provisioner daemons that matched the given\ntags. If the count is 0, it means no provisioner daemons matched the\nrequested tags.", - "type": "integer" - }, - "most_recently_seen": { - "description": "MostRecentlySeen is the most recently seen time of the set of matched\nprovisioners. If no provisioners matched, this field will be null.", - "type": "string", - "format": "date-time" - } - } - }, - "codersdk.MinimalOrganization": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "display_name": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - } - } - }, - "codersdk.MinimalUser": { - "type": "object", - "required": [ - "id", - "username" - ], - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - }, - "username": { - "type": "string" - } - } - }, - "codersdk.NotificationMethodsResponse": { - "type": "object", - "properties": { - "available": { - "type": "array", - "items": { - "type": "string" - } - }, - "default": { - "type": "string" - } - } - }, - "codersdk.NotificationPreference": { - "type": "object", - "properties": { - "disabled": { - "type": "boolean" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "updated_at": { - "type": "string", - "format": "date-time" - } - } - }, - "codersdk.NotificationTemplate": { - "type": "object", - "properties": { - "actions": { - "type": "string" - }, - "body_template": { - "type": "string" - }, - "enabled_by_default": { - "type": "boolean" - }, - "group": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "kind": { - "type": "string" - }, - "method": { - "type": "string" - }, - "name": { - "type": "string" - }, - "title_template": { - "type": "string" - } - } - }, - "codersdk.NotificationsConfig": { - "type": "object", - "properties": { - "dispatch_timeout": { - "description": "How long to wait while a notification is being sent before giving up.", - "type": "integer" - }, - "email": { - "description": "SMTP settings.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.NotificationsEmailConfig" - } - ] - }, - "fetch_interval": { - "description": "How often to query the database for queued notifications.", - "type": "integer" - }, - "inbox": { - "description": "Inbox settings.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.NotificationsInboxConfig" - } - ] - }, - "lease_count": { - "description": "How many notifications a notifier should lease per fetch interval.", - "type": "integer" - }, - "lease_period": { - "description": "How long a notifier should lease a message. This is effectively how long a notification is 'owned'\nby a notifier, and once this period expires it will be available for lease by another notifier. Leasing\nis important in order for multiple running notifiers to not pick the same messages to deliver concurrently.\nThis lease period will only expire if a notifier shuts down ungracefully; a dispatch of the notification\nreleases the lease.", - "type": "integer" - }, - "max_send_attempts": { - "description": "The upper limit of attempts to send a notification.", - "type": "integer" - }, - "method": { - "description": "Which delivery method to use (available options: 'smtp', 'webhook').", - "type": "string" - }, - "retry_interval": { - "description": "The minimum time between retries.", - "type": "integer" - }, - "sync_buffer_size": { - "description": "The notifications system buffers message updates in memory to ease pressure on the database.\nThis option controls how many updates are kept in memory. The lower this value the\nlower the change of state inconsistency in a non-graceful shutdown - but it also increases load on the\ndatabase. It is recommended to keep this option at its default value.", - "type": "integer" - }, - "sync_interval": { - "description": "The notifications system buffers message updates in memory to ease pressure on the database.\nThis option controls how often it synchronizes its state with the database. The shorter this value the\nlower the change of state inconsistency in a non-graceful shutdown - but it also increases load on the\ndatabase. It is recommended to keep this option at its default value.", - "type": "integer" - }, - "webhook": { - "description": "Webhook settings.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.NotificationsWebhookConfig" - } - ] - } - } - }, - "codersdk.NotificationsEmailAuthConfig": { - "type": "object", - "properties": { - "identity": { - "description": "Identity for PLAIN auth.", - "type": "string" - }, - "password": { - "description": "Password for LOGIN/PLAIN auth.", - "type": "string" - }, - "password_file": { - "description": "File from which to load the password for LOGIN/PLAIN auth.", - "type": "string" - }, - "username": { - "description": "Username for LOGIN/PLAIN auth.", - "type": "string" - } - } - }, - "codersdk.NotificationsEmailConfig": { - "type": "object", - "properties": { - "auth": { - "description": "Authentication details.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.NotificationsEmailAuthConfig" - } - ] - }, - "force_tls": { - "description": "ForceTLS causes a TLS connection to be attempted.", - "type": "boolean" - }, - "from": { - "description": "The sender's address.", - "type": "string" - }, - "hello": { - "description": "The hostname identifying the SMTP server.", - "type": "string" - }, - "smarthost": { - "description": "The intermediary SMTP host through which emails are sent (host:port).", - "type": "string" - }, - "tls": { - "description": "TLS details.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.NotificationsEmailTLSConfig" - } - ] - } - } - }, - "codersdk.NotificationsEmailTLSConfig": { - "type": "object", - "properties": { - "ca_file": { - "description": "CAFile specifies the location of the CA certificate to use.", - "type": "string" - }, - "cert_file": { - "description": "CertFile specifies the location of the certificate to use.", - "type": "string" - }, - "insecure_skip_verify": { - "description": "InsecureSkipVerify skips target certificate validation.", - "type": "boolean" - }, - "key_file": { - "description": "KeyFile specifies the location of the key to use.", - "type": "string" - }, - "server_name": { - "description": "ServerName to verify the hostname for the targets.", - "type": "string" - }, - "start_tls": { - "description": "StartTLS attempts to upgrade plain connections to TLS.", - "type": "boolean" - } - } - }, - "codersdk.NotificationsInboxConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } - }, - "codersdk.NotificationsSettings": { - "type": "object", - "properties": { - "notifier_paused": { - "type": "boolean" - } - } - }, - "codersdk.NotificationsWebhookConfig": { - "type": "object", - "properties": { - "endpoint": { - "description": "The URL to which the payload will be sent with an HTTP POST request.", - "allOf": [ - { - "$ref": "#/definitions/serpent.URL" - } - ] - } - } - }, - "codersdk.NullHCLString": { - "type": "object", - "properties": { - "valid": { - "type": "boolean" - }, - "value": { - "type": "string" - } - } - }, - "codersdk.OAuth2AppEndpoints": { - "type": "object", - "properties": { - "authorization": { - "type": "string" - }, - "device_authorization": { - "description": "DeviceAuth is optional.", - "type": "string" - }, - "token": { - "type": "string" - }, - "token_revoke": { - "type": "string" - } - } - }, - "codersdk.OAuth2AuthorizationServerMetadata": { - "type": "object", - "properties": { - "authorization_endpoint": { - "type": "string" - }, - "code_challenge_methods_supported": { - "type": "array", - "items": { - "type": "string" - } - }, - "grant_types_supported": { - "type": "array", - "items": { - "type": "string" - } - }, - "issuer": { - "type": "string" - }, - "registration_endpoint": { - "type": "string" - }, - "response_types_supported": { - "type": "array", - "items": { - "type": "string" - } - }, - "revocation_endpoint": { - "type": "string" - }, - "scopes_supported": { - "type": "array", - "items": { - "type": "string" - } - }, - "token_endpoint": { - "type": "string" - }, - "token_endpoint_auth_methods_supported": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "codersdk.OAuth2ClientConfiguration": { - "type": "object", - "properties": { - "client_id": { - "type": "string" - }, - "client_id_issued_at": { - "type": "integer" - }, - "client_name": { - "type": "string" - }, - "client_secret_expires_at": { - "type": "integer" - }, - "client_uri": { - "type": "string" - }, - "contacts": { - "type": "array", - "items": { - "type": "string" - } - }, - "grant_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "jwks": { - "type": "object" - }, - "jwks_uri": { - "type": "string" - }, - "logo_uri": { - "type": "string" - }, - "policy_uri": { - "type": "string" - }, - "redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - }, - "registration_access_token": { - "type": "array", - "items": { - "type": "integer" - } - }, - "registration_client_uri": { - "type": "string" - }, - "response_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string" - }, - "software_id": { - "type": "string" - }, - "software_version": { - "type": "string" - }, - "token_endpoint_auth_method": { - "type": "string" - }, - "tos_uri": { - "type": "string" - } - } - }, - "codersdk.OAuth2ClientRegistrationRequest": { - "type": "object", - "properties": { - "client_name": { - "type": "string" - }, - "client_uri": { - "type": "string" - }, - "contacts": { - "type": "array", - "items": { - "type": "string" - } - }, - "grant_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "jwks": { - "type": "object" - }, - "jwks_uri": { - "type": "string" - }, - "logo_uri": { - "type": "string" - }, - "policy_uri": { - "type": "string" - }, - "redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - }, - "response_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string" - }, - "software_id": { - "type": "string" - }, - "software_statement": { - "type": "string" - }, - "software_version": { - "type": "string" - }, - "token_endpoint_auth_method": { - "type": "string" - }, - "tos_uri": { - "type": "string" - } - } - }, - "codersdk.OAuth2ClientRegistrationResponse": { - "type": "object", - "properties": { - "client_id": { - "type": "string" - }, - "client_id_issued_at": { - "type": "integer" - }, - "client_name": { - "type": "string" - }, - "client_secret": { - "type": "string" - }, - "client_secret_expires_at": { - "type": "integer" - }, - "client_uri": { - "type": "string" - }, - "contacts": { - "type": "array", - "items": { - "type": "string" - } - }, - "grant_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "jwks": { - "type": "object" - }, - "jwks_uri": { - "type": "string" - }, - "logo_uri": { - "type": "string" - }, - "policy_uri": { - "type": "string" - }, - "redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - }, - "registration_access_token": { - "type": "string" - }, - "registration_client_uri": { - "type": "string" - }, - "response_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string" - }, - "software_id": { - "type": "string" - }, - "software_version": { - "type": "string" - }, - "token_endpoint_auth_method": { - "type": "string" - }, - "tos_uri": { - "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" - }, - "default_provider_enable": { - "type": "boolean" - }, - "device_flow": { - "type": "boolean" - }, - "enterprise_base_url": { - "type": "string" - } - } - }, - "codersdk.OAuth2ProtectedResourceMetadata": { - "type": "object", - "properties": { - "authorization_servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "bearer_methods_supported": { - "type": "array", - "items": { - "type": "string" - } - }, - "resource": { - "type": "string" - }, - "scopes_supported": { - "type": "array", - "items": { - "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": { - "description": "IgnoreUserInfo \u0026 UserInfoFromAccessToken are mutually exclusive. Only 1\ncan be set to true. Ideally this would be an enum with 3 states, ['none',\n'userinfo', 'access_token']. However, for backward compatibility,\n`ignore_user_info` must remain. And `access_token` is a niche, non-spec\ncompliant edge case. So it's use is rare, and should not be advised.", - "type": "boolean" - }, - "issuer_url": { - "type": "string" - }, - "name_field": { - "type": "string" - }, - "organization_assign_default": { - "type": "boolean" - }, - "organization_field": { - "type": "string" - }, - "organization_mapping": { - "type": "object" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - } - }, - "sign_in_text": { - "type": "string" - }, - "signups_disabled_text": { - "type": "string" - }, - "skip_issuer_checks": { - "type": "boolean" - }, - "source_user_info_from_access_token": { - "description": "UserInfoFromAccessToken as mentioned above is an edge case. This allows\nsourcing the user_info from the access token itself instead of a user_info\nendpoint. This assumes the access token is a valid JWT with a set of claims to\nbe merged with the id_token.", - "type": "boolean" - }, - "user_role_field": { - "type": "string" - }, - "user_role_mapping": { - "type": "object" - }, - "user_roles_default": { - "type": "array", - "items": { - "type": "string" - } - }, - "username_field": { - "type": "string" - } - } - }, - "codersdk.OptionType": { - "type": "string", - "enum": [ - "string", - "number", - "bool", - "list(string)" - ], - "x-enum-varnames": [ - "OptionTypeString", - "OptionTypeNumber", - "OptionTypeBoolean", - "OptionTypeListString" - ] - }, - "codersdk.Organization": { - "type": "object", - "required": [ - "created_at", - "id", - "is_default", - "updated_at" - ], - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "description": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "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.SlimRole" - } - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "user_id": { - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.OrganizationMemberWithUserData": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "email": { - "type": "string" - }, - "global_roles": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.SlimRole" - } - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.SlimRole" - } - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "user_id": { - "type": "string", - "format": "uuid" - }, - "username": { - "type": "string" - } - } - }, - "codersdk.OrganizationSyncSettings": { - "type": "object", - "properties": { - "field": { - "description": "Field selects the claim field to be used as the created user's\norganizations. If the field is the empty string, then no organization\nupdates will ever come from the OIDC provider.", - "type": "string" - }, - "mapping": { - "description": "Mapping maps from an OIDC claim --\u003e Coder organization uuid", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "organization_assign_default": { - "description": "AssignDefault will ensure the default org is always included\nfor every user, regardless of their claims. This preserves legacy behavior.", - "type": "boolean" - } - } - }, - "codersdk.PaginatedMembersResponse": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.OrganizationMemberWithUserData" - } - } - } - }, - "codersdk.ParameterFormType": { - "type": "string", - "enum": [ - "", - "radio", - "slider", - "input", - "dropdown", - "checkbox", - "switch", - "multi-select", - "tag-select", - "textarea", - "error" - ], - "x-enum-varnames": [ - "ParameterFormTypeDefault", - "ParameterFormTypeRadio", - "ParameterFormTypeSlider", - "ParameterFormTypeInput", - "ParameterFormTypeDropdown", - "ParameterFormTypeCheckbox", - "ParameterFormTypeSwitch", - "ParameterFormTypeMultiSelect", - "ParameterFormTypeTagSelect", - "ParameterFormTypeTextArea", - "ParameterFormTypeError" - ] - }, - "codersdk.PatchGroupIDPSyncConfigRequest": { - "type": "object", - "properties": { - "auto_create_missing_groups": { - "type": "boolean" - }, - "field": { - "type": "string" - }, - "regex_filter": { - "$ref": "#/definitions/regexp.Regexp" - } - } - }, - "codersdk.PatchGroupIDPSyncMappingRequest": { - "type": "object", - "properties": { - "add": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "type": "string" - } - } - } - }, - "remove": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "type": "string" - } - } - } - } - } - }, - "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.PatchOrganizationIDPSyncConfigRequest": { - "type": "object", - "properties": { - "assign_default": { - "type": "boolean" - }, - "field": { - "type": "string" - } - } - }, - "codersdk.PatchOrganizationIDPSyncMappingRequest": { - "type": "object", - "properties": { - "add": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "type": "string" - } - } - } - }, - "remove": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "type": "string" - } - } - } - } - } - }, - "codersdk.PatchRoleIDPSyncConfigRequest": { - "type": "object", - "properties": { - "field": { - "type": "string" - } - } - }, - "codersdk.PatchRoleIDPSyncMappingRequest": { - "type": "object", - "properties": { - "add": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "type": "string" - } - } - } - }, - "remove": { - "type": "array", - "items": { - "type": "object", - "properties": { - "gets": { - "description": "The ID of the Coder resource the user should be added to", - "type": "string" - }, - "given": { - "description": "The IdP claim the user has", - "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.Permission": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/codersdk.RBACAction" - }, - "negate": { - "description": "Negate makes this a negative permission", - "type": "boolean" - }, - "resource_type": { - "$ref": "#/definitions/codersdk.RBACResource" - } - } - }, - "codersdk.PostOAuth2ProviderAppRequest": { - "type": "object", - "required": [ - "callback_url", - "name" - ], - "properties": { - "callback_url": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "codersdk.PostWorkspaceUsageRequest": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "format": "uuid" - }, - "app_name": { - "$ref": "#/definitions/codersdk.UsageAppName" - } - } - }, - "codersdk.PprofConfig": { - "type": "object", - "properties": { - "address": { - "$ref": "#/definitions/serpent.HostPort" - }, - "enable": { - "type": "boolean" - } - } - }, - "codersdk.PrebuildsConfig": { - "type": "object", - "properties": { - "failure_hard_limit": { - "description": "FailureHardLimit defines the maximum number of consecutive failed prebuild attempts allowed\nbefore a preset is considered to be in a hard limit state. When a preset hits this limit,\nno new prebuilds will be created until the limit is reset.\nFailureHardLimit is disabled when set to zero.", - "type": "integer" - }, - "reconciliation_backoff_interval": { - "description": "ReconciliationBackoffInterval specifies the amount of time to increase the backoff interval\nwhen errors occur during reconciliation.", - "type": "integer" - }, - "reconciliation_backoff_lookback": { - "description": "ReconciliationBackoffLookback determines the time window to look back when calculating\nthe number of failed prebuilds, which influences the backoff strategy.", - "type": "integer" - }, - "reconciliation_interval": { - "description": "ReconciliationInterval defines how often the workspace prebuilds state should be reconciled.", - "type": "integer" - } - } - }, - "codersdk.PrebuildsSettings": { - "type": "object", - "properties": { - "reconciliation_paused": { - "type": "boolean" - } - } - }, - "codersdk.Preset": { - "type": "object", - "properties": { - "default": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "desiredPrebuildInstances": { - "type": "integer" - }, - "icon": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.PresetParameter" - } - } - } - }, - "codersdk.PresetParameter": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - } - }, - "codersdk.PreviewParameter": { - "type": "object", - "properties": { - "default_value": { - "$ref": "#/definitions/codersdk.NullHCLString" - }, - "description": { - "type": "string" - }, - "diagnostics": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.FriendlyDiagnostic" - } - }, - "display_name": { - "type": "string" - }, - "ephemeral": { - "type": "boolean" - }, - "form_type": { - "$ref": "#/definitions/codersdk.ParameterFormType" - }, - "icon": { - "type": "string" - }, - "mutable": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.PreviewParameterOption" - } - }, - "order": { - "description": "legacy_variable_name was removed (= 14)", - "type": "integer" - }, - "required": { - "type": "boolean" - }, - "styling": { - "$ref": "#/definitions/codersdk.PreviewParameterStyling" - }, - "type": { - "$ref": "#/definitions/codersdk.OptionType" - }, - "validations": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.PreviewParameterValidation" - } - }, - "value": { - "$ref": "#/definitions/codersdk.NullHCLString" - } - } - }, - "codersdk.PreviewParameterOption": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "name": { - "type": "string" - }, - "value": { - "$ref": "#/definitions/codersdk.NullHCLString" - } - } - }, - "codersdk.PreviewParameterStyling": { - "type": "object", - "properties": { - "disabled": { - "type": "boolean" - }, - "label": { - "type": "string" - }, - "mask_input": { - "type": "boolean" - }, - "placeholder": { - "type": "string" - } - } - }, - "codersdk.PreviewParameterValidation": { - "type": "object", - "properties": { - "validation_error": { - "type": "string" - }, - "validation_max": { - "type": "integer" - }, - "validation_min": { - "type": "integer" - }, - "validation_monotonic": { - "type": "string" - }, - "validation_regex": { - "description": "All validation attributes are optional.", - "type": "string" - } - } - }, - "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" - }, - "daemon_types": { - "type": "array", - "items": { - "type": "string" - } - }, - "daemons": { - "description": "Daemons is the number of built-in terraform provisioners.", - "type": "integer" - }, - "force_cancel_interval": { - "type": "integer" - } - } - }, - "codersdk.ProvisionerDaemon": { - "type": "object", - "properties": { - "api_version": { - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "current_job": { - "$ref": "#/definitions/codersdk.ProvisionerDaemonJob" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "key_id": { - "type": "string", - "format": "uuid" - }, - "key_name": { - "description": "Optional fields.", - "type": "string" - }, - "last_seen_at": { - "type": "string", - "format": "date-time" - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "previous_job": { - "$ref": "#/definitions/codersdk.ProvisionerDaemonJob" - }, - "provisioners": { - "type": "array", - "items": { - "type": "string" - } - }, - "status": { - "enum": [ - "offline", - "idle", - "busy" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.ProvisionerDaemonStatus" - } - ] - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "version": { - "type": "string" - } - } - }, - "codersdk.ProvisionerDaemonJob": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "status": { - "enum": [ - "pending", - "running", - "succeeded", - "canceling", - "canceled", - "failed" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.ProvisionerJobStatus" - } - ] - }, - "template_display_name": { - "type": "string" - }, - "template_icon": { - "type": "string" - }, - "template_name": { - "type": "string" - } - } - }, - "codersdk.ProvisionerDaemonStatus": { - "type": "string", - "enum": [ - "offline", - "idle", - "busy" - ], - "x-enum-varnames": [ - "ProvisionerDaemonOffline", - "ProvisionerDaemonIdle", - "ProvisionerDaemonBusy" - ] - }, - "codersdk.ProvisionerJob": { - "type": "object", - "properties": { - "available_workers": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - }, - "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" - }, - "initiator_id": { - "type": "string", - "format": "uuid" - }, - "input": { - "$ref": "#/definitions/codersdk.ProvisionerJobInput" - }, - "logs_overflowed": { - "type": "boolean" - }, - "metadata": { - "$ref": "#/definitions/codersdk.ProvisionerJobMetadata" - }, - "organization_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" - } - }, - "type": { - "$ref": "#/definitions/codersdk.ProvisionerJobType" - }, - "worker_id": { - "type": "string", - "format": "uuid" - }, - "worker_name": { - "type": "string" - } - } - }, - "codersdk.ProvisionerJobInput": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "template_version_id": { - "type": "string", - "format": "uuid" - }, - "workspace_build_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.ProvisionerJobMetadata": { - "type": "object", - "properties": { - "template_display_name": { - "type": "string" - }, - "template_icon": { - "type": "string" - }, - "template_id": { - "type": "string", - "format": "uuid" - }, - "template_name": { - "type": "string" - }, - "template_version_name": { - "type": "string" - }, - "workspace_id": { - "type": "string", - "format": "uuid" - }, - "workspace_name": { - "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.ProvisionerJobType": { - "type": "string", - "enum": [ - "template_version_import", - "workspace_build", - "template_version_dry_run" - ], - "x-enum-varnames": [ - "ProvisionerJobTypeTemplateVersionImport", - "ProvisionerJobTypeWorkspaceBuild", - "ProvisionerJobTypeTemplateVersionDryRun" - ] - }, - "codersdk.ProvisionerKey": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - }, - "organization": { - "type": "string", - "format": "uuid" - }, - "tags": { - "$ref": "#/definitions/codersdk.ProvisionerKeyTags" - } - } - }, - "codersdk.ProvisionerKeyDaemons": { - "type": "object", - "properties": { - "daemons": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ProvisionerDaemon" - } - }, - "key": { - "$ref": "#/definitions/codersdk.ProvisionerKey" - } - } - }, - "codersdk.ProvisionerKeyTags": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "codersdk.ProvisionerLogLevel": { - "type": "string", - "enum": [ - "debug" - ], - "x-enum-varnames": [ - "ProvisionerLogLevelDebug" - ] - }, - "codersdk.ProvisionerStorageMethod": { - "type": "string", - "enum": [ - "file" - ], - "x-enum-varnames": [ - "ProvisionerStorageMethodFile" - ] - }, - "codersdk.ProvisionerTiming": { - "type": "object", - "properties": { - "action": { - "type": "string" - }, - "ended_at": { - "type": "string", - "format": "date-time" - }, - "job_id": { - "type": "string", - "format": "uuid" - }, - "resource": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stage": { - "$ref": "#/definitions/codersdk.TimingStage" - }, - "started_at": { - "type": "string", - "format": "date-time" - } - } - }, - "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.RBACAction": { - "type": "string", - "enum": [ - "application_connect", - "assign", - "create", - "create_agent", - "delete", - "delete_agent", - "read", - "read_personal", - "ssh", - "share", - "unassign", - "update", - "update_personal", - "use", - "view_insights", - "start", - "stop" - ], - "x-enum-varnames": [ - "ActionApplicationConnect", - "ActionAssign", - "ActionCreate", - "ActionCreateAgent", - "ActionDelete", - "ActionDeleteAgent", - "ActionRead", - "ActionReadPersonal", - "ActionSSH", - "ActionShare", - "ActionUnassign", - "ActionUpdate", - "ActionUpdatePersonal", - "ActionUse", - "ActionViewInsights", - "ActionWorkspaceStart", - "ActionWorkspaceStop" - ] - }, - "codersdk.RBACResource": { - "type": "string", - "enum": [ - "*", - "aibridge_interception", - "api_key", - "assign_org_role", - "assign_role", - "audit_log", - "connection_log", - "crypto_key", - "debug_info", - "deployment_config", - "deployment_stats", - "file", - "group", - "group_member", - "idpsync_settings", - "inbox_notification", - "license", - "notification_message", - "notification_preference", - "notification_template", - "oauth2_app", - "oauth2_app_code_token", - "oauth2_app_secret", - "organization", - "organization_member", - "prebuilt_workspace", - "provisioner_daemon", - "provisioner_jobs", - "replicas", - "system", - "tailnet_coordinator", - "task", - "template", - "usage_event", - "user", - "user_secret", - "webpush_subscription", - "workspace", - "workspace_agent_devcontainers", - "workspace_agent_resource_monitor", - "workspace_dormant", - "workspace_proxy" - ], - "x-enum-varnames": [ - "ResourceWildcard", - "ResourceAibridgeInterception", - "ResourceApiKey", - "ResourceAssignOrgRole", - "ResourceAssignRole", - "ResourceAuditLog", - "ResourceConnectionLog", - "ResourceCryptoKey", - "ResourceDebugInfo", - "ResourceDeploymentConfig", - "ResourceDeploymentStats", - "ResourceFile", - "ResourceGroup", - "ResourceGroupMember", - "ResourceIdpsyncSettings", - "ResourceInboxNotification", - "ResourceLicense", - "ResourceNotificationMessage", - "ResourceNotificationPreference", - "ResourceNotificationTemplate", - "ResourceOauth2App", - "ResourceOauth2AppCodeToken", - "ResourceOauth2AppSecret", - "ResourceOrganization", - "ResourceOrganizationMember", - "ResourcePrebuiltWorkspace", - "ResourceProvisionerDaemon", - "ResourceProvisionerJobs", - "ResourceReplicas", - "ResourceSystem", - "ResourceTailnetCoordinator", - "ResourceTask", - "ResourceTemplate", - "ResourceUsageEvent", - "ResourceUser", - "ResourceUserSecret", - "ResourceWebpushSubscription", - "ResourceWorkspace", - "ResourceWorkspaceAgentDevcontainers", - "ResourceWorkspaceAgentResourceMonitor", - "ResourceWorkspaceDormant", - "ResourceWorkspaceProxy" - ] - }, - "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": { - "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", - "type": "string" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "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.RequestOneTimePasscodeRequest": { - "type": "object", - "required": [ - "email" - ], - "properties": { - "email": { - "type": "string", - "format": "email" - } - } - }, - "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", - "notifications_settings", - "prebuilds_settings", - "workspace_proxy", - "organization", - "oauth2_provider_app", - "oauth2_provider_app_secret", - "custom_role", - "organization_member", - "notification_template", - "idp_sync_settings_organization", - "idp_sync_settings_group", - "idp_sync_settings_role", - "workspace_agent", - "workspace_app", - "task" - ], - "x-enum-varnames": [ - "ResourceTypeTemplate", - "ResourceTypeTemplateVersion", - "ResourceTypeUser", - "ResourceTypeWorkspace", - "ResourceTypeWorkspaceBuild", - "ResourceTypeGitSSHKey", - "ResourceTypeAPIKey", - "ResourceTypeGroup", - "ResourceTypeLicense", - "ResourceTypeConvertLogin", - "ResourceTypeHealthSettings", - "ResourceTypeNotificationsSettings", - "ResourceTypePrebuildsSettings", - "ResourceTypeWorkspaceProxy", - "ResourceTypeOrganization", - "ResourceTypeOAuth2ProviderApp", - "ResourceTypeOAuth2ProviderAppSecret", - "ResourceTypeCustomRole", - "ResourceTypeOrganizationMember", - "ResourceTypeNotificationTemplate", - "ResourceTypeIdpSyncSettingsOrganization", - "ResourceTypeIdpSyncSettingsGroup", - "ResourceTypeIdpSyncSettingsRole", - "ResourceTypeWorkspaceAgent", - "ResourceTypeWorkspaceApp", - "ResourceTypeTask" - ] - }, - "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.RetentionConfig": { - "type": "object", - "properties": { - "api_keys": { - "description": "APIKeys controls how long expired API keys are retained before being deleted.\nKeys are only deleted if they have been expired for at least this duration.\nDefaults to 7 days to preserve existing behavior.", - "type": "integer" - }, - "audit_logs": { - "description": "AuditLogs controls how long audit log entries are retained.\nSet to 0 to disable (keep indefinitely).", - "type": "integer" - }, - "connection_logs": { - "description": "ConnectionLogs controls how long connection log entries are retained.\nSet to 0 to disable (keep indefinitely).", - "type": "integer" - }, - "workspace_agent_logs": { - "description": "WorkspaceAgentLogs controls how long workspace agent logs are retained.\nLogs are deleted if the agent hasn't connected within this period.\nLogs from the latest build are always retained regardless of age.\nDefaults to 7 days to preserve existing behavior.", - "type": "integer" - } - } - }, - "codersdk.Role": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_member_permissions": { - "description": "OrganizationMemberPermissions are specific for the organization in the field 'OrganizationID' above.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "organization_permissions": { - "description": "OrganizationPermissions are specific for the organization in the field 'OrganizationID' above.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "site_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - }, - "user_permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Permission" - } - } - } - }, - "codersdk.RoleSyncSettings": { - "type": "object", - "properties": { - "field": { - "description": "Field is the name of the claim field that specifies what organization roles\na user should be given. If empty, no roles will be synced.", - "type": "string" - }, - "mapping": { - "description": "Mapping is a map from OIDC groups to Coder organization roles.", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "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": { - "description": "HostnamePrefix is the prefix we append to workspace names for SSH hostnames.\nDeprecated: use HostnameSuffix instead.", - "type": "string" - }, - "hostname_suffix": { - "description": "HostnameSuffix is the suffix to append to workspace names for SSH hostnames.", - "type": "string" - }, - "ssh_config_options": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "codersdk.ServerSentEvent": { - "type": "object", - "properties": { - "data": {}, - "type": { - "$ref": "#/definitions/codersdk.ServerSentEventType" - } - } - }, - "codersdk.ServerSentEventType": { - "type": "string", - "enum": [ - "ping", - "data", - "error" - ], - "x-enum-varnames": [ - "ServerSentEventTypePing", - "ServerSentEventTypeData", - "ServerSentEventTypeError" - ] - }, - "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 only for browser, workspace app and oauth sessions.", - "type": "integer" - }, - "default_token_lifetime": { - "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_admin_token_lifetime": { - "type": "integer" - }, - "max_token_lifetime": { - "type": "integer" - }, - "refresh_default_duration": { - "description": "RefreshDefaultDuration is the default lifetime for OAuth2 refresh tokens.\nThis should generally be longer than access token lifetimes to allow\nrefreshing after access token expiry.", - "type": "integer" - } - } - }, - "codersdk.SlimRole": { - "type": "object", - "properties": { - "display_name": { - "type": "string" - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string" - } - } - }, - "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.Task": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "current_state": { - "$ref": "#/definitions/codersdk.TaskStateEntry" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "initial_prompt": { - "type": "string" - }, - "name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "owner_avatar_url": { - "type": "string" - }, - "owner_id": { - "type": "string", - "format": "uuid" - }, - "owner_name": { - "type": "string" - }, - "status": { - "enum": [ - "pending", - "initializing", - "active", - "paused", - "unknown", - "error" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.TaskStatus" - } - ] - }, - "template_display_name": { - "type": "string" - }, - "template_icon": { - "type": "string" - }, - "template_id": { - "type": "string", - "format": "uuid" - }, - "template_name": { - "type": "string" - }, - "template_version_id": { - "type": "string", - "format": "uuid" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "workspace_agent_health": { - "$ref": "#/definitions/codersdk.WorkspaceAgentHealth" - }, - "workspace_agent_id": { - "format": "uuid", - "allOf": [ - { - "$ref": "#/definitions/uuid.NullUUID" - } - ] - }, - "workspace_agent_lifecycle": { - "$ref": "#/definitions/codersdk.WorkspaceAgentLifecycle" - }, - "workspace_app_id": { - "format": "uuid", - "allOf": [ - { - "$ref": "#/definitions/uuid.NullUUID" - } - ] - }, - "workspace_build_number": { - "type": "integer" - }, - "workspace_id": { - "format": "uuid", - "allOf": [ - { - "$ref": "#/definitions/uuid.NullUUID" - } - ] - }, - "workspace_name": { - "type": "string" - }, - "workspace_status": { - "enum": [ - "pending", - "starting", - "running", - "stopping", - "stopped", - "failed", - "canceling", - "canceled", - "deleting", - "deleted" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceStatus" - } - ] - } - } - }, - "codersdk.TaskLogEntry": { - "type": "object", - "properties": { - "content": { - "type": "string" - }, - "id": { - "type": "integer" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "type": { - "$ref": "#/definitions/codersdk.TaskLogType" - } - } - }, - "codersdk.TaskLogType": { - "type": "string", - "enum": [ - "input", - "output" - ], - "x-enum-varnames": [ - "TaskLogTypeInput", - "TaskLogTypeOutput" - ] - }, - "codersdk.TaskLogsResponse": { - "type": "object", - "properties": { - "logs": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.TaskLogEntry" - } - } - } - }, - "codersdk.TaskSendRequest": { - "type": "object", - "properties": { - "input": { - "type": "string" - } - } - }, - "codersdk.TaskState": { - "type": "string", - "enum": [ - "working", - "idle", - "complete", - "failed" - ], - "x-enum-varnames": [ - "TaskStateWorking", - "TaskStateIdle", - "TaskStateComplete", - "TaskStateFailed" - ] - }, - "codersdk.TaskStateEntry": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/codersdk.TaskState" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "uri": { - "type": "string" - } - } - }, - "codersdk.TaskStatus": { - "type": "string", - "enum": [ - "pending", - "initializing", - "active", - "paused", - "unknown", - "error" - ], - "x-enum-varnames": [ - "TaskStatusPending", - "TaskStatusInitializing", - "TaskStatusActive", - "TaskStatusPaused", - "TaskStatusUnknown", - "TaskStatusError" - ] - }, - "codersdk.TasksListResponse": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "tasks": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.Task" - } - } - } - }, - "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" - }, - "cors_behavior": { - "$ref": "#/definitions/codersdk.CORSBehavior" - }, - "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_display_name": { - "type": "string" - }, - "organization_icon": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_name": { - "type": "string", - "format": "url" - }, - "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" - }, - "use_classic_parameter_flow": { - "type": "boolean" - }, - "use_terraform_workspace_cache": { - "type": "boolean" - } - } - }, - "codersdk.TemplateACL": { - "type": "object", - "properties": { - "group": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.TemplateGroup" - } - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.TemplateUser" - } - } - } - }, - "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" - } - }, - "times_used": { - "type": "integer", - "example": 2 - }, - "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.TemplateGroup": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ReducedUser" - } - }, - "name": { - "type": "string" - }, - "organization_display_name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_name": { - "type": "string" - }, - "quota_allowance": { - "type": "integer" - }, - "role": { - "enum": [ - "admin", - "use" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.TemplateRole" - } - ] - }, - "source": { - "$ref": "#/definitions/codersdk.GroupSource" - }, - "total_member_count": { - "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", - "type": "integer" - } - } - }, - "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.SlimRole" - } - }, - "status": { - "enum": [ - "active", - "suspended" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.UserStatus" - } - ] - }, - "theme_preference": { - "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", - "type": "string" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - } - }, - "codersdk.TemplateVersion": { - "type": "object", - "properties": { - "archived": { - "type": "boolean" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "created_by": { - "$ref": "#/definitions/codersdk.MinimalUser" - }, - "has_external_agent": { - "type": "boolean" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "job": { - "$ref": "#/definitions/codersdk.ProvisionerJob" - }, - "matched_provisioners": { - "$ref": "#/definitions/codersdk.MatchedProvisioners" - }, - "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" - }, - "form_type": { - "description": "FormType has an enum value of empty string, `\"\"`.\nKeep the leading comma in the enums struct tag.", - "type": "string", - "enum": [ - "", - "radio", - "dropdown", - "input", - "textarea", - "slider", - "checkbox", - "switch", - "tag-select", - "multi-select", - "error" - ] - }, - "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.TerminalFontName": { - "type": "string", - "enum": [ - "", - "ibm-plex-mono", - "fira-code", - "source-code-pro", - "jetbrains-mono" - ], - "x-enum-varnames": [ - "TerminalFontUnknown", - "TerminalFontIBMPlexMono", - "TerminalFontFiraCode", - "TerminalFontSourceCodePro", - "TerminalFontJetBrainsMono" - ] - }, - "codersdk.TimingStage": { - "type": "string", - "enum": [ - "init", - "plan", - "graph", - "apply", - "start", - "stop", - "cron", - "connect" - ], - "x-enum-varnames": [ - "TimingStageInit", - "TimingStagePlan", - "TimingStageGraph", - "TimingStageApply", - "TimingStageStart", - "TimingStageStop", - "TimingStageCron", - "TimingStageConnect" - ] - }, - "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": { - "announcement_banners": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.BannerConfig" - } - }, - "application_name": { - "type": "string" - }, - "logo_url": { - "type": "string" - }, - "service_banner": { - "description": "Deprecated: ServiceBanner has been replaced by AnnouncementBanners.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.BannerConfig" - } - ] - } - } - }, - "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.UpdateOrganizationRequest": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "codersdk.UpdateRoles": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "codersdk.UpdateTaskInputRequest": { - "type": "object", - "properties": { - "input": { - "type": "string" - } - } - }, - "codersdk.UpdateTemplateACL": { - "type": "object", - "properties": { - "group_perms": { - "description": "GroupPerms is a mapping from valid group UUIDs to the template role they\nshould be granted. To remove a group from the template, use \"\" as the role\n(available as a constant named codersdk.TemplateRoleDeleted)", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/codersdk.TemplateRole" - }, - "example": { - "8bd26b20-f3e8-48be-a903-46bb920cf671": "use", - "\u003cgroup_id\u003e": "admin" - } - }, - "user_perms": { - "description": "UserPerms is a mapping from valid user UUIDs to the template role they\nshould be granted. To remove a user from the template, use \"\" as the role\n(available as a constant named codersdk.TemplateRoleDeleted)", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/codersdk.TemplateRole" - }, - "example": { - "4df59e74-c027-470b-ab4d-cbba8963a5e9": "use", - "\u003cuser_id\u003e": "admin" - } - } - } - }, - "codersdk.UpdateTemplateMeta": { - "type": "object", - "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": { - "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 can only be set if your license\nincludes the advanced template scheduling feature. If you attempt to set this\nvalue while unlicensed, it will be ignored.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.TemplateAutostopRequirement" - } - ] - }, - "cors_behavior": { - "$ref": "#/definitions/codersdk.CORSBehavior" - }, - "default_ttl_ms": { - "type": "integer" - }, - "deprecation_message": { - "description": "DeprecationMessage if set, will mark the template as deprecated and block\nany new workspaces from using this template.\nIf passed an empty string, will remove the deprecated message, making\nthe template usable for new workspaces again.", - "type": "string" - }, - "description": { - "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": { - "type": "string" - }, - "failure_ttl_ms": { - "type": "integer" - }, - "icon": { - "type": "string" - }, - "max_port_share_level": { - "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" - }, - "name": { - "type": "string" - }, - "require_active_version": { - "description": "RequireActiveVersion mandates workspaces built using this template\nuse the active version of the template. This option has no\neffect on template admins.", - "type": "boolean" - }, - "time_til_dormant_autodelete_ms": { - "type": "integer" - }, - "time_til_dormant_ms": { - "type": "integer" - }, - "update_workspace_dormant_at": { - "description": "UpdateWorkspaceDormant updates the dormant_at field of workspaces spawned\nfrom the template. This is useful for preventing dormant workspaces being immediately\ndeleted when updating the dormant_ttl field to a new, shorter value.", - "type": "boolean" - }, - "update_workspace_last_used_at": { - "description": "UpdateWorkspaceLastUsedAt updates the last_used_at field of workspaces\nspawned from the template. This is useful for preventing workspaces being\nimmediately locked when updating the inactivity_ttl field to a new, shorter\nvalue.", - "type": "boolean" - }, - "use_classic_parameter_flow": { - "description": "UseClassicParameterFlow is a flag that switches the default behavior to use the classic\nparameter flow when creating a workspace. This only affects deployments with the experiment\n\"dynamic-parameters\" enabled. This setting will live for a period after the experiment is\nmade the default.\nAn \"opt-out\" is present in case the new feature breaks some existing templates.", - "type": "boolean" - }, - "use_terraform_workspace_cache": { - "description": "UseTerraformWorkspaceCache allows optionally specifying whether to use cached\nterraform directories for workspaces created from this template. This field\nonly applies when the correct experiment is enabled. This field is subject to\nbeing removed in the future.", - "type": "boolean" - } - } - }, - "codersdk.UpdateUserAppearanceSettingsRequest": { - "type": "object", - "required": [ - "terminal_font", - "theme_preference" - ], - "properties": { - "terminal_font": { - "$ref": "#/definitions/codersdk.TerminalFontName" - }, - "theme_preference": { - "type": "string" - } - } - }, - "codersdk.UpdateUserNotificationPreferences": { - "type": "object", - "properties": { - "template_disabled_map": { - "type": "object", - "additionalProperties": { - "type": "boolean" - } - } - } - }, - "codersdk.UpdateUserPasswordRequest": { - "type": "object", - "required": [ - "password" - ], - "properties": { - "old_password": { - "type": "string" - }, - "password": { - "type": "string" - } - } - }, - "codersdk.UpdateUserPreferenceSettingsRequest": { - "type": "object", - "properties": { - "task_notification_alert_dismissed": { - "type": "boolean" - } - } - }, - "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.UpdateWorkspaceACL": { - "type": "object", - "properties": { - "group_roles": { - "description": "GroupRoles is a mapping from valid group UUIDs to the workspace role they\nshould be granted. To remove a group from the workspace, use \"\" as the role\n(available as a constant named codersdk.WorkspaceRoleDeleted)", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/codersdk.WorkspaceRole" - } - }, - "user_roles": { - "description": "UserRoles is a mapping from valid user UUIDs to the workspace role they\nshould be granted. To remove a user from the workspace, use \"\" as the role\n(available as a constant named codersdk.WorkspaceRoleDeleted)", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/codersdk.WorkspaceRole" - } - } - } - }, - "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", - "organization", - "public" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" - } - ] - } - } - }, - "codersdk.UsageAppName": { - "type": "string", - "enum": [ - "vscode", - "jetbrains", - "reconnecting-pty", - "ssh" - ], - "x-enum-varnames": [ - "UsageAppNameVscode", - "UsageAppNameJetbrains", - "UsageAppNameReconnectingPty", - "UsageAppNameSSH" - ] - }, - "codersdk.UsagePeriod": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "issued_at": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - } - } - }, - "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.SlimRole" - } - }, - "status": { - "enum": [ - "active", - "suspended" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.UserStatus" - } - ] - }, - "theme_preference": { - "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", - "type": "string" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "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.UserAppearanceSettings": { - "type": "object", - "properties": { - "terminal_font": { - "$ref": "#/definitions/codersdk.TerminalFontName" - }, - "theme_preference": { - "type": "string" - } - } - }, - "codersdk.UserLatency": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "latency_ms": { - "$ref": "#/definitions/codersdk.ConnectionLatency" - }, - "template_ids": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - }, - "user_id": { - "type": "string", - "format": "uuid" - }, - "username": { - "type": "string" - } - } - }, - "codersdk.UserLatencyInsightsReport": { - "type": "object", - "properties": { - "end_time": { - "type": "string", - "format": "date-time" - }, - "start_time": { - "type": "string", - "format": "date-time" - }, - "template_ids": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.UserLatency" - } - } - } - }, - "codersdk.UserLatencyInsightsResponse": { - "type": "object", - "properties": { - "report": { - "$ref": "#/definitions/codersdk.UserLatencyInsightsReport" - } - } - }, - "codersdk.UserLoginType": { - "type": "object", - "properties": { - "login_type": { - "$ref": "#/definitions/codersdk.LoginType" - } - } - }, - "codersdk.UserParameter": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - } - }, - "codersdk.UserPreferenceSettings": { - "type": "object", - "properties": { - "task_notification_alert_dismissed": { - "type": "boolean" - } - } - }, - "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.UserStatusChangeCount": { - "type": "object", - "properties": { - "count": { - "type": "integer", - "example": 10 - }, - "date": { - "type": "string", - "format": "date-time" - } - } - }, - "codersdk.ValidateUserPasswordRequest": { - "type": "object", - "required": [ - "password" - ], - "properties": { - "password": { - "type": "string" - } - } - }, - "codersdk.ValidateUserPasswordResponse": { - "type": "object", - "properties": { - "details": { - "type": "string" - }, - "valid": { - "type": "boolean" - } - } - }, - "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.WebpushSubscription": { - "type": "object", - "properties": { - "auth_key": { - "type": "string" - }, - "endpoint": { - "type": "string" - }, - "p256dh_key": { - "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" - }, - "is_prebuild": { - "description": "IsPrebuild indicates whether the workspace is a prebuilt workspace.\nPrebuilt workspaces are owned by the prebuilds system user and have specific behavior,\nsuch as being managed differently from regular workspaces.\nOnce a prebuilt workspace is claimed by a user, it transitions to a regular workspace,\nand IsPrebuild returns false.", - "type": "boolean" - }, - "last_used_at": { - "type": "string", - "format": "date-time" - }, - "latest_app_status": { - "$ref": "#/definitions/codersdk.WorkspaceAppStatus" - }, - "latest_build": { - "$ref": "#/definitions/codersdk.WorkspaceBuild" - }, - "name": { - "type": "string" - }, - "next_start_at": { - "type": "string", - "format": "date-time" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_name": { - "type": "string" - }, - "outdated": { - "type": "boolean" - }, - "owner_avatar_url": { - "type": "string" - }, - "owner_id": { - "type": "string", - "format": "uuid" - }, - "owner_name": { - "description": "OwnerName is the username of the owner of the workspace.", - "type": "string" - }, - "task_id": { - "description": "TaskID, if set, indicates that the workspace is relevant to the given codersdk.Task.", - "allOf": [ - { - "$ref": "#/definitions/uuid.NullUUID" - } - ] - }, - "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" - }, - "template_use_classic_parameter_flow": { - "type": "boolean" - }, - "ttl_ms": { - "type": "integer" - }, - "updated_at": { - "type": "string", - "format": "date-time" - } - } - }, - "codersdk.WorkspaceACL": { - "type": "object", - "properties": { - "group": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceGroup" - } - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceUser" - } - } - } - }, - "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" - }, - "parent_id": { - "format": "uuid", - "allOf": [ - { - "$ref": "#/definitions/uuid.NullUUID" - } - ] - }, - "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.WorkspaceAgentContainer": { - "type": "object", - "properties": { - "created_at": { - "description": "CreatedAt is the time the container was created.", - "type": "string", - "format": "date-time" - }, - "id": { - "description": "ID is the unique identifier of the container.", - "type": "string" - }, - "image": { - "description": "Image is the name of the container image.", - "type": "string" - }, - "labels": { - "description": "Labels is a map of key-value pairs of container labels.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "name": { - "description": "FriendlyName is the human-readable name of the container.", - "type": "string" - }, - "ports": { - "description": "Ports includes ports exposed by the container.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceAgentContainerPort" - } - }, - "running": { - "description": "Running is true if the container is currently running.", - "type": "boolean" - }, - "status": { - "description": "Status is the current status of the container. This is somewhat\nimplementation-dependent, but should generally be a human-readable\nstring.", - "type": "string" - }, - "volumes": { - "description": "Volumes is a map of \"things\" mounted into the container. Again, this\nis somewhat implementation-dependent.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "codersdk.WorkspaceAgentContainerPort": { - "type": "object", - "properties": { - "host_ip": { - "description": "HostIP is the IP address of the host interface to which the port is\nbound. Note that this can be an IPv4 or IPv6 address.", - "type": "string" - }, - "host_port": { - "description": "HostPort is the port number *outside* the container.", - "type": "integer" - }, - "network": { - "description": "Network is the network protocol used by the port (tcp, udp, etc).", - "type": "string" - }, - "port": { - "description": "Port is the port number *inside* the container.", - "type": "integer" - } - } - }, - "codersdk.WorkspaceAgentDevcontainer": { - "type": "object", - "properties": { - "agent": { - "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainerAgent" - }, - "config_path": { - "type": "string" - }, - "container": { - "$ref": "#/definitions/codersdk.WorkspaceAgentContainer" - }, - "dirty": { - "type": "boolean" - }, - "error": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - }, - "status": { - "description": "Additional runtime fields.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainerStatus" - } - ] - }, - "workspace_folder": { - "type": "string" - } - } - }, - "codersdk.WorkspaceAgentDevcontainerAgent": { - "type": "object", - "properties": { - "directory": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - } - } - }, - "codersdk.WorkspaceAgentDevcontainerStatus": { - "type": "string", - "enum": [ - "running", - "stopped", - "starting", - "error" - ], - "x-enum-varnames": [ - "WorkspaceAgentDevcontainerStatusRunning", - "WorkspaceAgentDevcontainerStatusStopped", - "WorkspaceAgentDevcontainerStatusStarting", - "WorkspaceAgentDevcontainerStatusError" - ] - }, - "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.WorkspaceAgentListContainersResponse": { - "type": "object", - "properties": { - "containers": { - "description": "Containers is a list of containers visible to the workspace agent.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceAgentContainer" - } - }, - "devcontainers": { - "description": "Devcontainers is a list of devcontainers visible to the workspace agent.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainer" - } - }, - "warnings": { - "description": "Warnings is a list of warnings that may have occurred during the\nprocess of listing containers. This should not include fatal errors.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "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.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", - "organization", - "public" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" - } - ] - }, - "workspace_id": { - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.WorkspaceAgentPortShareLevel": { - "type": "string", - "enum": [ - "owner", - "authenticated", - "organization", - "public" - ], - "x-enum-varnames": [ - "WorkspaceAgentPortShareLevelOwner", - "WorkspaceAgentPortShareLevelAuthenticated", - "WorkspaceAgentPortShareLevelOrganization", - "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" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "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" - }, - "group": { - "type": "string" - }, - "health": { - "$ref": "#/definitions/codersdk.WorkspaceAppHealth" - }, - "healthcheck": { - "description": "Healthcheck specifies the configuration for checking app health.", - "allOf": [ - { - "$ref": "#/definitions/codersdk.Healthcheck" - } - ] - }, - "hidden": { - "type": "boolean" - }, - "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" - }, - "open_in": { - "$ref": "#/definitions/codersdk.WorkspaceAppOpenIn" - }, - "sharing_level": { - "enum": [ - "owner", - "authenticated", - "organization", - "public" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceAppSharingLevel" - } - ] - }, - "slug": { - "description": "Slug is a unique identifier within the agent.", - "type": "string" - }, - "statuses": { - "description": "Statuses is a list of statuses for the app.", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.WorkspaceAppStatus" - } - }, - "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" - }, - "tooltip": { - "description": "Tooltip is an optional markdown supported field that is displayed\nwhen hovering over workspace apps in the UI.", - "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.WorkspaceAppOpenIn": { - "type": "string", - "enum": [ - "slim-window", - "tab" - ], - "x-enum-varnames": [ - "WorkspaceAppOpenInSlimWindow", - "WorkspaceAppOpenInTab" - ] - }, - "codersdk.WorkspaceAppSharingLevel": { - "type": "string", - "enum": [ - "owner", - "authenticated", - "organization", - "public" - ], - "x-enum-varnames": [ - "WorkspaceAppSharingLevelOwner", - "WorkspaceAppSharingLevelAuthenticated", - "WorkspaceAppSharingLevelOrganization", - "WorkspaceAppSharingLevelPublic" - ] - }, - "codersdk.WorkspaceAppStatus": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "format": "uuid" - }, - "app_id": { - "type": "string", - "format": "uuid" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "icon": { - "description": "Deprecated: This field is unused and will be removed in a future version.\nIcon is an external URL to an icon that will be rendered in the UI.", - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "message": { - "type": "string" - }, - "needs_user_attention": { - "description": "Deprecated: This field is unused and will be removed in a future version.\nNeedsUserAttention specifies whether the status needs user attention.", - "type": "boolean" - }, - "state": { - "$ref": "#/definitions/codersdk.WorkspaceAppStatusState" - }, - "uri": { - "description": "URI is the URI of the resource that the status is for.\ne.g. https://github.com/org/repo/pull/123\ne.g. file:///path/to/file", - "type": "string" - }, - "workspace_id": { - "type": "string", - "format": "uuid" - } - } - }, - "codersdk.WorkspaceAppStatusState": { - "type": "string", - "enum": [ - "working", - "idle", - "complete", - "failure" - ], - "x-enum-varnames": [ - "WorkspaceAppStatusStateWorking", - "WorkspaceAppStatusStateIdle", - "WorkspaceAppStatusStateComplete", - "WorkspaceAppStatusStateFailure" - ] - }, - "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" - }, - "has_ai_task": { - "description": "Deprecated: This field has been deprecated in favor of Task WorkspaceID.", - "type": "boolean" - }, - "has_external_agent": { - "type": "boolean" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "initiator_id": { - "type": "string", - "format": "uuid" - }, - "initiator_name": { - "type": "string" - }, - "job": { - "$ref": "#/definitions/codersdk.ProvisionerJob" - }, - "matched_provisioners": { - "$ref": "#/definitions/codersdk.MatchedProvisioners" - }, - "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" - }, - "template_version_preset_id": { - "type": "string", - "format": "uuid" - }, - "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": { - "description": "WorkspaceOwnerName is the username of the owner of the workspace.", - "type": "string" - } - } - }, - "codersdk.WorkspaceBuildParameter": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - } - }, - "codersdk.WorkspaceBuildTimings": { - "type": "object", - "properties": { - "agent_connection_timings": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AgentConnectionTiming" - } - }, - "agent_script_timings": { - "description": "TODO: Consolidate agent-related timing metrics into a single struct when\nupdating the API version", - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.AgentScriptTiming" - } - }, - "provisioner_timings": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ProvisionerTiming" - } - } - } - }, - "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.WorkspaceGroup": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.ReducedUser" - } - }, - "name": { - "type": "string" - }, - "organization_display_name": { - "type": "string" - }, - "organization_id": { - "type": "string", - "format": "uuid" - }, - "organization_name": { - "type": "string" - }, - "quota_allowance": { - "type": "integer" - }, - "role": { - "enum": [ - "admin", - "use" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceRole" - } - ] - }, - "source": { - "$ref": "#/definitions/codersdk.GroupSource" - }, - "total_member_count": { - "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", - "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.WorkspaceRole": { - "type": "string", - "enum": [ - "admin", - "use", - "" - ], - "x-enum-varnames": [ - "WorkspaceRoleAdmin", - "WorkspaceRoleUse", - "WorkspaceRoleDeleted" - ] - }, - "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.WorkspaceUser": { - "type": "object", - "required": [ - "id", - "username" - ], - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - }, - "role": { - "enum": [ - "admin", - "use" - ], - "allOf": [ - { - "$ref": "#/definitions/codersdk.WorkspaceRole" - } - ] - }, - "username": { - "type": "string" - } - } - }, - "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" - }, - "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" - }, - "expires_in": { - "description": "ExpiresIn is the OAuth2 wire format \"expires_in\" field,\nwhich specifies how many seconds later the token expires,\nrelative to an unknown time base approximately around \"now\".\nIt is the application's responsibility to populate\n`Expiry` from `ExpiresIn` when required.", - "type": "integer" - }, - "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" - } - } - }, - "regexp.Regexp": { - "type": "object" - }, - "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 (see Hostname and Port methods)", - "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" - }, - "uuid.NullUUID": { - "type": "object", - "properties": { - "uuid": { - "type": "string" - }, - "valid": { - "description": "Valid is true if UUID is not NULL", - "type": "boolean" - } - } - }, - "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" - }, - "hostname_suffix": { - "type": "string" - } - } - }, - "wsproxysdk.CryptoKeysResponse": { - "type": "object", - "properties": { - "crypto_keys": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.CryptoKey" - } - } - } - }, - "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": { - "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": { - "Authorization": { - "type": "apiKey", - "name": "Authorizaiton", - "in": "header" - }, - "CoderSessionToken": { - "type": "apiKey", - "name": "Coder-Session-Token", - "in": "header" - } - } -} \ No newline at end of file + "swagger": "2.0", + "info": { + "description": "Coderd is the service created by running coder server. It is a thin API that connects workspaces, provisioners and users. coderd stores its state in Postgres and is the only service that communicates with Postgres.", + "title": "Coder API", + "termsOfService": "https://coder.com/legal/terms-of-service", + "contact": { + "name": "API Support", + "url": "https://coder.com", + "email": "support@coder.com" + }, + "license": { + "name": "AGPL-3.0", + "url": "https://github.com/coder/coder/blob/main/LICENSE" + }, + "version": "2.0" + }, + "basePath": "/api/v2", + "paths": { + "/": { + "get": { + "produces": ["application/json"], + "tags": ["General"], + "summary": "API root handler", + "operationId": "api-root-handler", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/.well-known/oauth-authorization-server": { + "get": { + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "OAuth2 authorization server metadata.", + "operationId": "oauth2-authorization-server-metadata", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OAuth2AuthorizationServerMetadata" + } + } + } + } + }, + "/.well-known/oauth-protected-resource": { + "get": { + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "OAuth2 protected resource metadata.", + "operationId": "oauth2-protected-resource-metadata", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ProtectedResourceMetadata" + } + } + } + } + }, + "/aibridge/interceptions": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["AI Bridge"], + "summary": "List AI Bridge interceptions", + "operationId": "list-ai-bridge-interceptions", + "parameters": [ + { + "type": "string", + "description": "Search query in the format `key:value`. Available keys are: initiator, provider, model, started_after, started_before.", + "name": "q", + "in": "query" + }, + { + "type": "integer", + "description": "Page limit", + "name": "limit", + "in": "query" + }, + { + "type": "string", + "description": "Cursor pagination after ID (cannot be used with offset)", + "name": "after_id", + "in": "query" + }, + { + "type": "integer", + "description": "Offset pagination (cannot be used with after_id)", + "name": "offset", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.AIBridgeListInterceptionsResponse" + } + } + } + } + }, + "/aibridge/models": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["AI Bridge"], + "summary": "List AI Bridge models", + "operationId": "list-ai-bridge-models", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "/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 + } + } + }, + "/auth/scopes": { + "get": { + "produces": ["application/json"], + "tags": ["Authorization"], + "summary": "List API key scopes", + "operationId": "list-api-key-scopes", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ExternalAPIKeyScopes" + } + } + } + } + }, + "/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" + } + } + } + } + }, + "/connectionlog": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get connection logs", + "operationId": "get-connection-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.ConnectionLogResponse" + } + } + } + } + }, + "/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/metrics": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Debug"], + "summary": "Debug metrics", + "operationId": "debug-metrics", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/debug/pprof": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Debug"], + "summary": "Debug pprof index", + "operationId": "debug-pprof-index", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/debug/pprof/cmdline": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Debug"], + "summary": "Debug pprof cmdline", + "operationId": "debug-pprof-cmdline", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/debug/pprof/profile": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Debug"], + "summary": "Debug pprof profile", + "operationId": "debug-pprof-profile", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/debug/pprof/symbol": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Debug"], + "summary": "Debug pprof symbol", + "operationId": "debug-pprof-symbol", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/debug/pprof/trace": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Debug"], + "summary": "Debug pprof trace", + "operationId": "debug-pprof-trace", + "responses": { + "200": { + "description": "OK" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/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": [] + } + ], + "produces": ["application/json"], + "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", + "schema": { + "$ref": "#/definitions/codersdk.DeleteExternalAuthByIDResponse" + } + } + } + } + }, + "/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. If using tar format, file must conform to ustar (pax may cause problems).", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "Returns existing file if duplicate", + "schema": { + "$ref": "#/definitions/codersdk.UploadResponse" + } + }, + "201": { + "description": "Returns newly created file", + "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": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get groups", + "operationId": "get-groups", + "parameters": [ + { + "type": "string", + "description": "Organization ID or name", + "name": "organization", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "User ID or name", + "name": "has_member", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "Comma separated list of group IDs", + "name": "group_ids", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Group" + } + } + } + } + } + }, + "/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" + } + } + } + } + }, + "/init-script/{os}/{arch}": { + "get": { + "produces": ["text/plain"], + "tags": ["InitScript"], + "summary": "Get agent init script", + "operationId": "get-agent-init-script", + "parameters": [ + { + "type": "string", + "description": "Operating system", + "name": "os", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Architecture", + "name": "arch", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/insights/daus": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Insights"], + "summary": "Get deployment DAUs", + "operationId": "get-deployment-daus", + "parameters": [ + { + "type": "integer", + "description": "Time-zone offset (e.g. -2)", + "name": "tz_offset", + "in": "query", + "required": true + } + ], + "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": "string", + "format": "date-time", + "description": "Start time", + "name": "start_time", + "in": "query", + "required": true + }, + { + "type": "string", + "format": "date-time", + "description": "End time", + "name": "end_time", + "in": "query", + "required": true + }, + { + "enum": ["week", "day"], + "type": "string", + "description": "Interval", + "name": "interval", + "in": "query", + "required": true + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "description": "Template IDs", + "name": "template_ids", + "in": "query" + } + ], + "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": "string", + "format": "date-time", + "description": "Start time", + "name": "start_time", + "in": "query", + "required": true + }, + { + "type": "string", + "format": "date-time", + "description": "End time", + "name": "end_time", + "in": "query", + "required": true + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "description": "Template IDs", + "name": "template_ids", + "in": "query" + } + ], + "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": "string", + "format": "date-time", + "description": "Start time", + "name": "start_time", + "in": "query", + "required": true + }, + { + "type": "string", + "format": "date-time", + "description": "End time", + "name": "end_time", + "in": "query", + "required": true + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "description": "Template IDs", + "name": "template_ids", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserLatencyInsightsResponse" + } + } + } + } + }, + "/insights/user-status-counts": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Insights"], + "summary": "Get insights about user status counts", + "operationId": "get-insights-about-user-status-counts", + "parameters": [ + { + "type": "integer", + "description": "Time-zone offset (e.g. -2)", + "name": "tz_offset", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GetUserStatusCountsResponse" + } + } + } + } + }, + "/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": ["Enterprise"], + "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": ["Enterprise"], + "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" + } + } + } + }, + "/notifications/custom": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Notifications"], + "summary": "Send a custom notification", + "operationId": "send-a-custom-notification", + "parameters": [ + { + "description": "Provide a non-empty title or message", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.CustomNotificationRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Invalid request body", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + }, + "403": { + "description": "System users cannot send custom notifications", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + }, + "500": { + "description": "Failed to send custom notification", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/notifications/dispatch-methods": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Notifications"], + "summary": "Get notification dispatch methods", + "operationId": "get-notification-dispatch-methods", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.NotificationMethodsResponse" + } + } + } + } + } + }, + "/notifications/inbox": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Notifications"], + "summary": "List inbox notifications", + "operationId": "list-inbox-notifications", + "parameters": [ + { + "type": "string", + "description": "Comma-separated list of target IDs to filter notifications", + "name": "targets", + "in": "query" + }, + { + "type": "string", + "description": "Comma-separated list of template IDs to filter notifications", + "name": "templates", + "in": "query" + }, + { + "type": "string", + "description": "Filter notifications by read status. Possible values: read, unread, all", + "name": "read_status", + "in": "query" + }, + { + "type": "string", + "format": "uuid", + "description": "ID of the last notification from the current page. Notifications returned will be older than the associated one", + "name": "starting_before", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ListInboxNotificationsResponse" + } + } + } + } + }, + "/notifications/inbox/mark-all-as-read": { + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Notifications"], + "summary": "Mark all unread notifications as read", + "operationId": "mark-all-unread-notifications-as-read", + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/notifications/inbox/watch": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Notifications"], + "summary": "Watch for new inbox notifications", + "operationId": "watch-for-new-inbox-notifications", + "parameters": [ + { + "type": "string", + "description": "Comma-separated list of target IDs to filter notifications", + "name": "targets", + "in": "query" + }, + { + "type": "string", + "description": "Comma-separated list of template IDs to filter notifications", + "name": "templates", + "in": "query" + }, + { + "type": "string", + "description": "Filter notifications by read status. Possible values: read, unread, all", + "name": "read_status", + "in": "query" + }, + { + "enum": ["plaintext", "markdown"], + "type": "string", + "description": "Define the output format for notifications title and body.", + "name": "format", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GetInboxNotificationResponse" + } + } + } + } + }, + "/notifications/inbox/{id}/read-status": { + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Notifications"], + "summary": "Update read status of a notification", + "operationId": "update-read-status-of-a-notification", + "parameters": [ + { + "type": "string", + "description": "id of the notification", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/notifications/settings": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Notifications"], + "summary": "Get notifications settings", + "operationId": "get-notifications-settings", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.NotificationsSettings" + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Notifications"], + "summary": "Update notifications settings", + "operationId": "update-notifications-settings", + "parameters": [ + { + "description": "Notifications settings request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.NotificationsSettings" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.NotificationsSettings" + } + }, + "304": { + "description": "Not Modified" + } + } + } + }, + "/notifications/templates/custom": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Notifications"], + "summary": "Get custom notification templates", + "operationId": "get-custom-notification-templates", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.NotificationTemplate" + } + } + }, + "500": { + "description": "Failed to retrieve 'custom' notifications template", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/notifications/templates/system": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Notifications"], + "summary": "Get system notification templates", + "operationId": "get-system-notification-templates", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.NotificationTemplate" + } + } + }, + "500": { + "description": "Failed to retrieve 'system' notifications template", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/notifications/templates/{notification_template}/method": { + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Update notification template dispatch method", + "operationId": "update-notification-template-dispatch-method", + "parameters": [ + { + "type": "string", + "description": "Notification template UUID", + "name": "notification_template", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Success" + }, + "304": { + "description": "Not modified" + } + } + } + }, + "/notifications/test": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Notifications"], + "summary": "Send a test notification", + "operationId": "send-a-test-notification", + "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": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Enterprise"], + "summary": "OAuth2 authorization request (GET - show authorization page).", + "operationId": "oauth2-authorization-request-get", + "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": { + "200": { + "description": "Returns HTML authorization page" + } + } + }, + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Enterprise"], + "summary": "OAuth2 authorization request (POST - process authorization).", + "operationId": "oauth2-authorization-request-post", + "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": "Returns redirect with authorization code" + } + } + } + }, + "/oauth2/clients/{client_id}": { + "get": { + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get OAuth2 client configuration (RFC 7592)", + "operationId": "get-oauth2-client-configuration", + "parameters": [ + { + "type": "string", + "description": "Client ID", + "name": "client_id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ClientConfiguration" + } + } + } + }, + "put": { + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Update OAuth2 client configuration (RFC 7592)", + "operationId": "put-oauth2-client-configuration", + "parameters": [ + { + "type": "string", + "description": "Client ID", + "name": "client_id", + "in": "path", + "required": true + }, + { + "description": "Client update request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ClientConfiguration" + } + } + } + }, + "delete": { + "tags": ["Enterprise"], + "summary": "Delete OAuth2 client registration (RFC 7592)", + "operationId": "delete-oauth2-client-configuration", + "parameters": [ + { + "type": "string", + "description": "Client ID", + "name": "client_id", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/oauth2/register": { + "post": { + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "OAuth2 dynamic client registration (RFC 7591)", + "operationId": "oauth2-dynamic-client-registration", + "parameters": [ + { + "description": "Client registration request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationRequest" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/codersdk.OAuth2ClientRegistrationResponse" + } + } + } + } + }, + "/oauth2/revoke": { + "post": { + "consumes": ["application/x-www-form-urlencoded"], + "tags": ["Enterprise"], + "summary": "Revoke OAuth2 tokens (RFC 7009).", + "operationId": "oauth2-token-revocation", + "parameters": [ + { + "type": "string", + "description": "Client ID for authentication", + "name": "client_id", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "The token to revoke", + "name": "token", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "Hint about token type (access_token or refresh_token)", + "name": "token_type_hint", + "in": "formData" + } + ], + "responses": { + "200": { + "description": "Token successfully revoked" + } + } + } + }, + "/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": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Organizations"], + "summary": "Get organizations", + "operationId": "get-organizations", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Organization" + } + } + } + } + }, + "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" + } + } + } + }, + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Organizations"], + "summary": "Delete organization", + "operationId": "delete-organization", + "parameters": [ + { + "type": "string", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + }, + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Organizations"], + "summary": "Update organization", + "operationId": "update-organization", + "parameters": [ + { + "type": "string", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "Patch organization request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateOrganizationRequest" + } + } + ], + "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": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Members"], + "summary": "List organization members", + "operationId": "list-organization-members", + "deprecated": true, + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.OrganizationMemberWithUserData" + } + } + } + } + } + }, + "/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" + } + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Members"], + "summary": "Upsert a custom organization role", + "operationId": "upsert-a-custom-organization-role", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "Upsert role request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.CustomRoleRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Role" + } + } + } + } + }, + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Members"], + "summary": "Insert a custom organization role", + "operationId": "insert-a-custom-organization-role", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "Insert role request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.CustomRoleRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Role" + } + } + } + } + } + }, + "/organizations/{organization}/members/roles/{roleName}": { + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Members"], + "summary": "Delete a custom organization role", + "operationId": "delete-a-custom-organization-role", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Role name", + "name": "roleName", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Role" + } + } + } + } + } + }, + "/organizations/{organization}/members/{user}": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Members"], + "summary": "Add organization member", + "operationId": "add-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 + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OrganizationMember" + } + } + } + }, + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Members"], + "summary": "Remove organization member", + "operationId": "remove-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 + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/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}/workspace-quota": { + "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 + }, + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceQuota" + } + } + } + } + }, + "/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", + "deprecated": true, + "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}/paginated-members": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Members"], + "summary": "Paginated organization members", + "operationId": "paginated-organization-members", + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "integer", + "description": "Page limit, if 0 returns all members", + "name": "limit", + "in": "query" + }, + { + "type": "integer", + "description": "Page offset", + "name": "offset", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.PaginatedMembersResponse" + } + } + } + } + } + }, + "/organizations/{organization}/provisionerdaemons": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Provisioning"], + "summary": "Get provisioner daemons", + "operationId": "get-provisioner-daemons", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "integer", + "description": "Page limit", + "name": "limit", + "in": "query" + }, + { + "type": "array", + "format": "uuid", + "items": { + "type": "string" + }, + "description": "Filter results by job IDs", + "name": "ids", + "in": "query" + }, + { + "enum": [ + "pending", + "running", + "succeeded", + "canceling", + "canceled", + "failed", + "unknown", + "pending", + "running", + "succeeded", + "canceling", + "canceled", + "failed" + ], + "type": "string", + "description": "Filter results by status", + "name": "status", + "in": "query" + }, + { + "type": "object", + "description": "Provisioner tags to filter by (JSON of the form {'tag1':'value1','tag2':'value2'})", + "name": "tags", + "in": "query" + } + ], + "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}/provisionerjobs": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Organizations"], + "summary": "Get provisioner jobs", + "operationId": "get-provisioner-jobs", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "integer", + "description": "Page limit", + "name": "limit", + "in": "query" + }, + { + "type": "array", + "format": "uuid", + "items": { + "type": "string" + }, + "description": "Filter results by job IDs", + "name": "ids", + "in": "query" + }, + { + "enum": [ + "pending", + "running", + "succeeded", + "canceling", + "canceled", + "failed", + "unknown", + "pending", + "running", + "succeeded", + "canceling", + "canceled", + "failed" + ], + "type": "string", + "description": "Filter results by status", + "name": "status", + "in": "query" + }, + { + "type": "object", + "description": "Provisioner tags to filter by (JSON of the form {'tag1':'value1','tag2':'value2'})", + "name": "tags", + "in": "query" + }, + { + "type": "string", + "format": "uuid", + "description": "Filter results by initiator", + "name": "initiator", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ProvisionerJob" + } + } + } + } + } + }, + "/organizations/{organization}/provisionerjobs/{job}": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Organizations"], + "summary": "Get provisioner job", + "operationId": "get-provisioner-job", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "string", + "format": "uuid", + "description": "Job ID", + "name": "job", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ProvisionerJob" + } + } + } + } + }, + "/organizations/{organization}/provisionerkeys": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "List provisioner key", + "operationId": "list-provisioner-key", + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ProvisionerKey" + } + } + } + } + }, + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Create provisioner key", + "operationId": "create-provisioner-key", + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/codersdk.CreateProvisionerKeyResponse" + } + } + } + } + }, + "/organizations/{organization}/provisionerkeys/daemons": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "List provisioner key daemons", + "operationId": "list-provisioner-key-daemons", + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ProvisionerKeyDaemons" + } + } + } + } + } + }, + "/organizations/{organization}/provisionerkeys/{provisionerkey}": { + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Enterprise"], + "summary": "Delete provisioner key", + "operationId": "delete-provisioner-key", + "parameters": [ + { + "type": "string", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Provisioner key name", + "name": "provisionerkey", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/organizations/{organization}/settings/idpsync/available-fields": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get the available organization idp sync claim fields", + "operationId": "get-the-available-organization-idp-sync-claim-fields", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/field-values": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get the organization idp sync claim field values", + "operationId": "get-the-organization-idp-sync-claim-field-values", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "string", + "format": "string", + "description": "Claim Field", + "name": "claimField", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/groups": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get group IdP Sync settings by organization", + "operationId": "get-group-idp-sync-settings-by-organization", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GroupSyncSettings" + } + } + } + }, + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Update group IdP Sync settings by organization", + "operationId": "update-group-idp-sync-settings-by-organization", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "New settings", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.GroupSyncSettings" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GroupSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/groups/config": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Update group IdP Sync config", + "operationId": "update-group-idp-sync-config", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "New config values", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchGroupIDPSyncConfigRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GroupSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/groups/mapping": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Update group IdP Sync mapping", + "operationId": "update-group-idp-sync-mapping", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "Description of the mappings to add and remove", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchGroupIDPSyncMappingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.GroupSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/roles": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get role IdP Sync settings by organization", + "operationId": "get-role-idp-sync-settings-by-organization", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.RoleSyncSettings" + } + } + } + }, + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Update role IdP Sync settings by organization", + "operationId": "update-role-idp-sync-settings-by-organization", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "New settings", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.RoleSyncSettings" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.RoleSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/roles/config": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Update role IdP Sync config", + "operationId": "update-role-idp-sync-config", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "New config values", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchRoleIDPSyncConfigRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.RoleSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/settings/idpsync/roles/mapping": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Update role IdP Sync mapping", + "operationId": "update-role-idp-sync-mapping", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID or name", + "name": "organization", + "in": "path", + "required": true + }, + { + "description": "Description of the mappings to add and remove", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchRoleIDPSyncMappingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.RoleSyncSettings" + } + } + } + } + }, + "/organizations/{organization}/templates": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "description": "Returns a list of templates for the specified organization.\nBy default, only non-deprecated templates are returned.\nTo include deprecated templates, specify `deprecated:true` in the search query.", + "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", + "deprecated": true, + "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" + } + } + } + } + }, + "/prebuilds/settings": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Prebuilds"], + "summary": "Get prebuilds settings", + "operationId": "get-prebuilds-settings", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.PrebuildsSettings" + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Prebuilds"], + "summary": "Update prebuilds settings", + "operationId": "update-prebuilds-settings", + "parameters": [ + { + "description": "Prebuilds settings request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PrebuildsSettings" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.PrebuildsSettings" + } + }, + "304": { + "description": "Not Modified" + } + } + } + }, + "/provisionerkeys/{provisionerkey}": { + "get": { + "security": [ + { + "CoderProvisionerKey": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Fetch provisioner key details", + "operationId": "fetch-provisioner-key-details", + "parameters": [ + { + "type": "string", + "description": "Provisioner Key", + "name": "provisionerkey", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ProvisionerKey" + } + } + } + } + }, + "/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/ServiceProviderConfig": { + "get": { + "produces": ["application/scim+json"], + "tags": ["Enterprise"], + "summary": "SCIM 2.0: Service Provider Config", + "operationId": "scim-get-service-provider-config", + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/scim/v2/Users": { + "get": { + "security": [ + { + "Authorization": [] + } + ], + "produces": ["application/scim+json"], + "tags": ["Enterprise"], + "summary": "SCIM 2.0: Get users", + "operationId": "scim-get-users", + "responses": { + "200": { + "description": "OK" + } + } + }, + "post": { + "security": [ + { + "Authorization": [] + } + ], + "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": [ + { + "Authorization": [] + } + ], + "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" + } + } + }, + "put": { + "security": [ + { + "Authorization": [] + } + ], + "produces": ["application/scim+json"], + "tags": ["Enterprise"], + "summary": "SCIM 2.0: Replace user account", + "operationId": "scim-replace-user-status", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "User ID", + "name": "id", + "in": "path", + "required": true + }, + { + "description": "Replace user request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/coderd.SCIMUser" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.User" + } + } + } + }, + "patch": { + "security": [ + { + "Authorization": [] + } + ], + "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" + } + } + } + } + }, + "/settings/idpsync/available-fields": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get the available idp sync claim fields", + "operationId": "get-the-available-idp-sync-claim-fields", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "/settings/idpsync/field-values": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get the idp sync claim field values", + "operationId": "get-the-idp-sync-claim-field-values", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Organization ID", + "name": "organization", + "in": "path", + "required": true + }, + { + "type": "string", + "format": "string", + "description": "Claim Field", + "name": "claimField", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "/settings/idpsync/organization": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get organization IdP Sync settings", + "operationId": "get-organization-idp-sync-settings", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OrganizationSyncSettings" + } + } + } + }, + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Update organization IdP Sync settings", + "operationId": "update-organization-idp-sync-settings", + "parameters": [ + { + "description": "New settings", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.OrganizationSyncSettings" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OrganizationSyncSettings" + } + } + } + } + }, + "/settings/idpsync/organization/config": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Update organization IdP Sync config", + "operationId": "update-organization-idp-sync-config", + "parameters": [ + { + "description": "New config values", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchOrganizationIDPSyncConfigRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OrganizationSyncSettings" + } + } + } + } + }, + "/settings/idpsync/organization/mapping": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Update organization IdP Sync mapping", + "operationId": "update-organization-idp-sync-mapping", + "parameters": [ + { + "description": "Description of the mappings to add and remove", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.PatchOrganizationIDPSyncMappingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.OrganizationSyncSettings" + } + } + } + } + }, + "/tailnet": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Agents"], + "summary": "User-scoped tailnet RPC connection", + "operationId": "user-scoped-tailnet-rpc-connection", + "responses": { + "101": { + "description": "Switching Protocols" + } + } + } + }, + "/tasks": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Tasks"], + "summary": "List AI tasks", + "operationId": "list-ai-tasks", + "parameters": [ + { + "type": "string", + "description": "Search query for filtering tasks. Supports: owner:\u003cusername/uuid/me\u003e, organization:\u003corg-name/uuid\u003e, status:\u003cstatus\u003e", + "name": "q", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.TasksListResponse" + } + } + } + } + }, + "/tasks/{user}": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Tasks"], + "summary": "Create a new AI task", + "operationId": "create-a-new-ai-task", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "description": "Create task request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.CreateTaskRequest" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/codersdk.Task" + } + } + } + } + }, + "/tasks/{user}/{task}": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Tasks"], + "summary": "Get AI task by ID or name", + "operationId": "get-ai-task-by-id-or-name", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Task ID, or task name", + "name": "task", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Task" + } + } + } + }, + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Tasks"], + "summary": "Delete AI task", + "operationId": "delete-ai-task", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Task ID, or task name", + "name": "task", + "in": "path", + "required": true + } + ], + "responses": { + "202": { + "description": "Accepted" + } + } + } + }, + "/tasks/{user}/{task}/input": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "tags": ["Tasks"], + "summary": "Update AI task input", + "operationId": "update-ai-task-input", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Task ID, or task name", + "name": "task", + "in": "path", + "required": true + }, + { + "description": "Update task input request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateTaskInputRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/tasks/{user}/{task}/logs": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Tasks"], + "summary": "Get AI task logs", + "operationId": "get-ai-task-logs", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Task ID, or task name", + "name": "task", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.TaskLogsResponse" + } + } + } + } + }, + "/tasks/{user}/{task}/send": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "tags": ["Tasks"], + "summary": "Send input to AI task", + "operationId": "send-input-to-ai-task", + "parameters": [ + { + "type": "string", + "description": "Username, user ID, or 'me' for the authenticated user", + "name": "user", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Task ID, or task name", + "name": "task", + "in": "path", + "required": true + }, + { + "description": "Task input request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.TaskSendRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/templates": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "description": "Returns a list of templates.\nBy default, only non-deprecated templates are returned.\nTo include deprecated templates, specify `deprecated:true` in the search query.", + "produces": ["application/json"], + "tags": ["Templates"], + "summary": "Get all templates", + "operationId": "get-all-templates", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Template" + } + } + } + } + } + }, + "/templates/examples": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Templates"], + "summary": "Get template examples", + "operationId": "get-template-examples", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.TemplateExample" + } + } + } + } + } + }, + "/templates/{template}": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Templates"], + "summary": "Get template settings by ID", + "operationId": "get-template-settings-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": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Templates"], + "summary": "Update template settings by ID", + "operationId": "update-template-settings-by-id", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Template ID", + "name": "template", + "in": "path", + "required": true + }, + { + "description": "Patch template settings request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateTemplateMeta" + } + } + ], + "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": { + "$ref": "#/definitions/codersdk.TemplateACL" + } + } + } + }, + "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 ACL 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}/prebuilds/invalidate": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Invalidate presets for template", + "operationId": "invalidate-presets-for-template", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Template ID", + "name": "template", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.InvalidatePresetsResponse" + } + } + } + } + }, + "/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}/matched-provisioners": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Templates"], + "summary": "Get template version dry-run matched provisioners", + "operationId": "get-template-version-dry-run-matched-provisioners", + "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.MatchedProvisioners" + } + } + } + } + }, + "/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}/dynamic-parameters": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Templates"], + "summary": "Open dynamic parameters WebSocket by template version", + "operationId": "open-dynamic-parameters-websocket-by-template-version", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Template version ID", + "name": "templateversion", + "in": "path", + "required": true + } + ], + "responses": { + "101": { + "description": "Switching Protocols" + } + } + } + }, + "/templateversions/{templateversion}/dynamic-parameters/evaluate": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Templates"], + "summary": "Evaluate dynamic parameters for template version", + "operationId": "evaluate-dynamic-parameters-for-template-version", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Template version ID", + "name": "templateversion", + "in": "path", + "required": true + }, + { + "description": "Initial parameter values", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.DynamicParametersRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.DynamicParametersResponse" + } + } + } + } + }, + "/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}/presets": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Templates"], + "summary": "Get template version presets", + "operationId": "get-template-version-presets", + "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.Preset" + } + } + } + } + } + }, + "/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.CreateUserRequestWithOrgs" + } + } + ], + "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/oauth2/github/device": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Users"], + "summary": "Get Github device auth.", + "operationId": "get-github-device-auth", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ExternalAuthDevice" + } + } + } + } + }, + "/users/oidc/callback": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Users"], + "summary": "OpenID Connect Callback", + "operationId": "openid-connect-callback", + "responses": { + "307": { + "description": "Temporary Redirect" + } + } + } + }, + "/users/otp/change-password": { + "post": { + "consumes": ["application/json"], + "tags": ["Authorization"], + "summary": "Change password with a one-time passcode", + "operationId": "change-password-with-a-one-time-passcode", + "parameters": [ + { + "description": "Change password request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.ChangePasswordWithOneTimePasscodeRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/users/otp/request": { + "post": { + "consumes": ["application/json"], + "tags": ["Authorization"], + "summary": "Request one-time passcode", + "operationId": "request-one-time-passcode", + "parameters": [ + { + "description": "One-time passcode request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.RequestOneTimePasscodeRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/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/validate-password": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Authorization"], + "summary": "Validate user password", + "operationId": "validate-user-password", + "parameters": [ + { + "description": "Validate user password request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.ValidateUserPasswordRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ValidateUserPasswordResponse" + } + } + } + } + }, + "/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": [] + } + ], + "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" + } + } + } + }, + "/users/{user}/appearance": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Users"], + "summary": "Get user appearance settings", + "operationId": "get-user-appearance-settings", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserAppearanceSettings" + } + } + } + }, + "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.UserAppearanceSettings" + } + } + } + } + }, + "/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": "string", + "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": "string", + "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}/notifications/preferences": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Notifications"], + "summary": "Get user notification preferences", + "operationId": "get-user-notification-preferences", + "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.NotificationPreference" + } + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Notifications"], + "summary": "Update user notification preferences", + "operationId": "update-user-notification-preferences", + "parameters": [ + { + "description": "Preferences", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateUserNotificationPreferences" + } + }, + { + "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.NotificationPreference" + } + } + } + } + } + }, + "/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}/preferences": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Users"], + "summary": "Get user preference settings", + "operationId": "get-user-preference-settings", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserPreferenceSettings" + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Users"], + "summary": "Update user preference settings", + "operationId": "update-user-preference-settings", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + }, + { + "description": "New preference settings", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateUserPreferenceSettingsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserPreferenceSettings" + } + } + } + } + }, + "/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}/webpush/subscription": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "tags": ["Notifications"], + "summary": "Create user webpush subscription", + "operationId": "create-user-webpush-subscription", + "parameters": [ + { + "description": "Webpush subscription", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.WebpushSubscription" + } + }, + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "x-apidocgen": { + "skip": true + } + }, + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "tags": ["Notifications"], + "summary": "Delete user webpush subscription", + "operationId": "delete-user-webpush-subscription", + "parameters": [ + { + "description": "Webpush subscription", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.DeleteWebpushSubscription" + } + }, + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/users/{user}/webpush/test": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Notifications"], + "summary": "Send a test push notification", + "operationId": "send-a-test-push-notification", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/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" + } + } + } + } + }, + "/users/{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", + "operationId": "create-user-workspace", + "parameters": [ + { + "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" + } + } + } + } + }, + "/workspace-quota/{user}": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get workspace quota by user deprecated", + "operationId": "get-workspace-quota-by-user-deprecated", + "deprecated": true, + "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-status": { + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Agents"], + "summary": "Patch workspace agent app status", + "operationId": "patch-workspace-agent-app-status", + "parameters": [ + { + "description": "app status", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/agentsdk.PatchAppStatus" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/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/log-source": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Agents"], + "summary": "Post workspace agent log source", + "operationId": "post-workspace-agent-log-source", + "parameters": [ + { + "description": "Log source request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/agentsdk.PostLogSourceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceAgentLogSource" + } + } + } + } + }, + "/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/reinit": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Agents"], + "summary": "Get workspace agent reinitialization", + "operationId": "get-workspace-agent-reinitialization", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/agentsdk.ReinitializationEvent" + } + } + } + } + }, + "/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/{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}/containers": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Agents"], + "summary": "Get running containers for workspace agent", + "operationId": "get-running-containers-for-workspace-agent", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace agent ID", + "name": "workspaceagent", + "in": "path", + "required": true + }, + { + "type": "string", + "format": "key=value", + "description": "Labels", + "name": "label", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceAgentListContainersResponse" + } + } + } + } + }, + "/workspaceagents/{workspaceagent}/containers/devcontainers/{devcontainer}/recreate": { + "post": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Agents"], + "summary": "Recreate devcontainer for workspace agent", + "operationId": "recreate-devcontainer-for-workspace-agent", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace agent ID", + "name": "workspaceagent", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Devcontainer ID", + "name": "devcontainer", + "in": "path", + "required": true + } + ], + "responses": { + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/workspaceagents/{workspaceagent}/containers/watch": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Agents"], + "summary": "Watch workspace agent for container updates.", + "operationId": "watch-workspace-agent-for-container-updates", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace agent ID", + "name": "workspaceagent", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceAgentListContainersResponse" + } + } + } + } + }, + "/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", + "deprecated": true, + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace agent ID", + "name": "workspaceagent", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-apidocgen": { + "skip": true + } + } + }, + "/workspaceagents/{workspaceagent}/watch-metadata-ws": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Agents"], + "summary": "Watch for workspace agent metadata updates via WebSockets", + "operationId": "watch-for-workspace-agent-metadata-updates-via-websockets", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace agent ID", + "name": "workspaceagent", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ServerSentEvent" + } + } + }, + "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 + }, + { + "enum": ["running", "pending"], + "type": "string", + "description": "Expected status of the job. If expect_status is supplied, the request will be rejected with 412 Precondition Failed if the job doesn't match the state when performing the cancellation.", + "name": "expect_status", + "in": "query" + } + ], + "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 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" + } + } + } + } + } + }, + "/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" + } + } + } + } + }, + "/workspacebuilds/{workspacebuild}/timings": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Builds"], + "summary": "Get workspace build timings by ID", + "operationId": "get-workspace-build-timings-by-id", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace build ID", + "name": "workspacebuild", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceBuildTimings" + } + } + } + } + }, + "/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/crypto-keys": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get workspace proxy crypto keys", + "operationId": "get-workspace-proxy-crypto-keys", + "parameters": [ + { + "type": "string", + "description": "Feature key", + "name": "feature", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/wsproxysdk.CryptoKeysResponse" + } + } + }, + "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, has-ai-task, has_external_agent.", + "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}/acl": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Workspaces"], + "summary": "Get workspace ACLs", + "operationId": "get-workspace-acls", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceACL" + } + } + } + }, + "delete": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "tags": ["Workspaces"], + "summary": "Completely clears the workspace's user and group ACLs.", + "operationId": "completely-clears-the-workspaces-user-and-group-acls", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + }, + "patch": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Workspaces"], + "summary": "Update workspace ACL", + "operationId": "update-workspace-acl", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + }, + { + "description": "Update workspace ACL request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateWorkspaceACL" + } + } + ], + "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}/external-agent/{agent}/credentials": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Enterprise"], + "summary": "Get workspace external agent credentials", + "operationId": "get-workspace-external-agent-credentials", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Agent name", + "name": "agent", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ExternalAgentCredentials" + } + } + } + } + }, + "/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": "Delete workspace agent port share", + "operationId": "delete-workspace-agent-port-share", + "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}/timings": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Workspaces"], + "summary": "Get workspace timings by ID", + "operationId": "get-workspace-timings-by-id", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.WorkspaceBuildTimings" + } + } + } + } + }, + "/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": [] + } + ], + "consumes": ["application/json"], + "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 + }, + { + "description": "Post workspace usage request", + "name": "request", + "in": "body", + "schema": { + "$ref": "#/definitions/codersdk.PostWorkspaceUsageRequest" + } + } + ], + "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", + "deprecated": true, + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.Response" + } + } + } + } + }, + "/workspaces/{workspace}/watch-ws": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Workspaces"], + "summary": "Watch workspace by ID via WebSockets", + "operationId": "watch-workspace-by-id-via-websockets", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace ID", + "name": "workspace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.ServerSentEvent" + } + } + } + } + } + }, + "definitions": { + "agentsdk.AWSInstanceIdentityToken": { + "type": "object", + "required": ["document", "signature"], + "properties": { + "document": { + "type": "string" + }, + "signature": { + "type": "string" + } + } + }, + "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.PatchAppStatus": { + "type": "object", + "properties": { + "app_slug": { + "type": "string" + }, + "icon": { + "description": "Deprecated: this field is unused and will be removed in a future version.", + "type": "string" + }, + "message": { + "type": "string" + }, + "needs_user_attention": { + "description": "Deprecated: this field is unused and will be removed in a future version.", + "type": "boolean" + }, + "state": { + "$ref": "#/definitions/codersdk.WorkspaceAppStatusState" + }, + "uri": { + "type": "string" + } + } + }, + "agentsdk.PatchLogs": { + "type": "object", + "properties": { + "log_source_id": { + "type": "string" + }, + "logs": { + "type": "array", + "items": { + "$ref": "#/definitions/agentsdk.Log" + } + } + } + }, + "agentsdk.PostLogSourceRequest": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "id": { + "description": "ID is a unique identifier for the log source.\nIt is scoped to a workspace agent, and can be statically\ndefined inside code to prevent duplicate sources from being\ncreated for the same agent.", + "type": "string" + } + } + }, + "agentsdk.ReinitializationEvent": { + "type": "object", + "properties": { + "reason": { + "$ref": "#/definitions/agentsdk.ReinitializationReason" + }, + "workspaceID": { + "type": "string" + } + } + }, + "agentsdk.ReinitializationReason": { + "type": "string", + "enum": ["prebuild_claimed"], + "x-enum-varnames": ["ReinitializeReasonPrebuildClaimed"] + }, + "coderd.SCIMUser": { + "type": "object", + "properties": { + "active": { + "description": "Active is a ptr to prevent the empty value from being interpreted as false.", + "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.AIBridgeAnthropicConfig": { + "type": "object", + "properties": { + "base_url": { + "type": "string" + }, + "key": { + "type": "string" + } + } + }, + "codersdk.AIBridgeBedrockConfig": { + "type": "object", + "properties": { + "access_key": { + "type": "string" + }, + "access_key_secret": { + "type": "string" + }, + "model": { + "type": "string" + }, + "region": { + "type": "string" + }, + "small_fast_model": { + "type": "string" + } + } + }, + "codersdk.AIBridgeConfig": { + "type": "object", + "properties": { + "anthropic": { + "$ref": "#/definitions/codersdk.AIBridgeAnthropicConfig" + }, + "bedrock": { + "$ref": "#/definitions/codersdk.AIBridgeBedrockConfig" + }, + "enabled": { + "type": "boolean" + }, + "inject_coder_mcp_tools": { + "type": "boolean" + }, + "max_concurrency": { + "type": "integer" + }, + "openai": { + "$ref": "#/definitions/codersdk.AIBridgeOpenAIConfig" + }, + "rate_limit": { + "type": "integer" + }, + "retention": { + "type": "integer" + } + } + }, + "codersdk.AIBridgeInterception": { + "type": "object", + "properties": { + "api_key_id": { + "type": "string" + }, + "ended_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "initiator": { + "$ref": "#/definitions/codersdk.MinimalUser" + }, + "metadata": { + "type": "object", + "additionalProperties": {} + }, + "model": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "started_at": { + "type": "string", + "format": "date-time" + }, + "token_usages": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AIBridgeTokenUsage" + } + }, + "tool_usages": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AIBridgeToolUsage" + } + }, + "user_prompts": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AIBridgeUserPrompt" + } + } + } + }, + "codersdk.AIBridgeListInterceptionsResponse": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AIBridgeInterception" + } + } + } + }, + "codersdk.AIBridgeOpenAIConfig": { + "type": "object", + "properties": { + "base_url": { + "type": "string" + }, + "key": { + "type": "string" + } + } + }, + "codersdk.AIBridgeTokenUsage": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "input_tokens": { + "type": "integer" + }, + "interception_id": { + "type": "string", + "format": "uuid" + }, + "metadata": { + "type": "object", + "additionalProperties": {} + }, + "output_tokens": { + "type": "integer" + }, + "provider_response_id": { + "type": "string" + } + } + }, + "codersdk.AIBridgeToolUsage": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "injected": { + "type": "boolean" + }, + "input": { + "type": "string" + }, + "interception_id": { + "type": "string", + "format": "uuid" + }, + "invocation_error": { + "type": "string" + }, + "metadata": { + "type": "object", + "additionalProperties": {} + }, + "provider_response_id": { + "type": "string" + }, + "server_url": { + "type": "string" + }, + "tool": { + "type": "string" + } + } + }, + "codersdk.AIBridgeUserPrompt": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "interception_id": { + "type": "string", + "format": "uuid" + }, + "metadata": { + "type": "object", + "additionalProperties": {} + }, + "prompt": { + "type": "string" + }, + "provider_response_id": { + "type": "string" + } + } + }, + "codersdk.AIConfig": { + "type": "object", + "properties": { + "bridge": { + "$ref": "#/definitions/codersdk.AIBridgeConfig" + } + } + }, + "codersdk.APIAllowListTarget": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/codersdk.RBACResource" + } + } + }, + "codersdk.APIKey": { + "type": "object", + "required": [ + "created_at", + "expires_at", + "id", + "last_used", + "lifetime_seconds", + "login_type", + "token_name", + "updated_at", + "user_id" + ], + "properties": { + "allow_list": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.APIAllowListTarget" + } + }, + "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": { + "description": "Deprecated: use Scopes instead.", + "enum": ["all", "application_connect"], + "allOf": [ + { + "$ref": "#/definitions/codersdk.APIKeyScope" + } + ] + }, + "scopes": { + "type": "array", + "items": { + "$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", + "aibridge_interception:*", + "aibridge_interception:create", + "aibridge_interception:read", + "aibridge_interception:update", + "api_key:*", + "api_key:create", + "api_key:delete", + "api_key:read", + "api_key:update", + "assign_org_role:*", + "assign_org_role:assign", + "assign_org_role:create", + "assign_org_role:delete", + "assign_org_role:read", + "assign_org_role:unassign", + "assign_org_role:update", + "assign_role:*", + "assign_role:assign", + "assign_role:read", + "assign_role:unassign", + "audit_log:*", + "audit_log:create", + "audit_log:read", + "coder:all", + "coder:apikeys.manage_self", + "coder:application_connect", + "coder:templates.author", + "coder:templates.build", + "coder:workspaces.access", + "coder:workspaces.create", + "coder:workspaces.delete", + "coder:workspaces.operate", + "connection_log:*", + "connection_log:read", + "connection_log:update", + "crypto_key:*", + "crypto_key:create", + "crypto_key:delete", + "crypto_key:read", + "crypto_key:update", + "debug_info:*", + "debug_info:read", + "deployment_config:*", + "deployment_config:read", + "deployment_config:update", + "deployment_stats:*", + "deployment_stats:read", + "file:*", + "file:create", + "file:read", + "group:*", + "group:create", + "group:delete", + "group:read", + "group:update", + "group_member:*", + "group_member:read", + "idpsync_settings:*", + "idpsync_settings:read", + "idpsync_settings:update", + "inbox_notification:*", + "inbox_notification:create", + "inbox_notification:read", + "inbox_notification:update", + "license:*", + "license:create", + "license:delete", + "license:read", + "notification_message:*", + "notification_message:create", + "notification_message:delete", + "notification_message:read", + "notification_message:update", + "notification_preference:*", + "notification_preference:read", + "notification_preference:update", + "notification_template:*", + "notification_template:read", + "notification_template:update", + "oauth2_app:*", + "oauth2_app:create", + "oauth2_app:delete", + "oauth2_app:read", + "oauth2_app:update", + "oauth2_app_code_token:*", + "oauth2_app_code_token:create", + "oauth2_app_code_token:delete", + "oauth2_app_code_token:read", + "oauth2_app_secret:*", + "oauth2_app_secret:create", + "oauth2_app_secret:delete", + "oauth2_app_secret:read", + "oauth2_app_secret:update", + "organization:*", + "organization:create", + "organization:delete", + "organization:read", + "organization:update", + "organization_member:*", + "organization_member:create", + "organization_member:delete", + "organization_member:read", + "organization_member:update", + "prebuilt_workspace:*", + "prebuilt_workspace:delete", + "prebuilt_workspace:update", + "provisioner_daemon:*", + "provisioner_daemon:create", + "provisioner_daemon:delete", + "provisioner_daemon:read", + "provisioner_daemon:update", + "provisioner_jobs:*", + "provisioner_jobs:create", + "provisioner_jobs:read", + "provisioner_jobs:update", + "replicas:*", + "replicas:read", + "system:*", + "system:create", + "system:delete", + "system:read", + "system:update", + "tailnet_coordinator:*", + "tailnet_coordinator:create", + "tailnet_coordinator:delete", + "tailnet_coordinator:read", + "tailnet_coordinator:update", + "task:*", + "task:create", + "task:delete", + "task:read", + "task:update", + "template:*", + "template:create", + "template:delete", + "template:read", + "template:update", + "template:use", + "template:view_insights", + "usage_event:*", + "usage_event:create", + "usage_event:read", + "usage_event:update", + "user:*", + "user:create", + "user:delete", + "user:read", + "user:read_personal", + "user:update", + "user:update_personal", + "user_secret:*", + "user_secret:create", + "user_secret:delete", + "user_secret:read", + "user_secret:update", + "webpush_subscription:*", + "webpush_subscription:create", + "webpush_subscription:delete", + "webpush_subscription:read", + "workspace:*", + "workspace:application_connect", + "workspace:create", + "workspace:create_agent", + "workspace:delete", + "workspace:delete_agent", + "workspace:read", + "workspace:share", + "workspace:ssh", + "workspace:start", + "workspace:stop", + "workspace:update", + "workspace_agent_devcontainers:*", + "workspace_agent_devcontainers:create", + "workspace_agent_resource_monitor:*", + "workspace_agent_resource_monitor:create", + "workspace_agent_resource_monitor:read", + "workspace_agent_resource_monitor:update", + "workspace_dormant:*", + "workspace_dormant:application_connect", + "workspace_dormant:create", + "workspace_dormant:create_agent", + "workspace_dormant:delete", + "workspace_dormant:delete_agent", + "workspace_dormant:read", + "workspace_dormant:share", + "workspace_dormant:ssh", + "workspace_dormant:start", + "workspace_dormant:stop", + "workspace_dormant:update", + "workspace_proxy:*", + "workspace_proxy:create", + "workspace_proxy:delete", + "workspace_proxy:read", + "workspace_proxy:update" + ], + "x-enum-varnames": [ + "APIKeyScopeAll", + "APIKeyScopeApplicationConnect", + "APIKeyScopeAibridgeInterceptionAll", + "APIKeyScopeAibridgeInterceptionCreate", + "APIKeyScopeAibridgeInterceptionRead", + "APIKeyScopeAibridgeInterceptionUpdate", + "APIKeyScopeApiKeyAll", + "APIKeyScopeApiKeyCreate", + "APIKeyScopeApiKeyDelete", + "APIKeyScopeApiKeyRead", + "APIKeyScopeApiKeyUpdate", + "APIKeyScopeAssignOrgRoleAll", + "APIKeyScopeAssignOrgRoleAssign", + "APIKeyScopeAssignOrgRoleCreate", + "APIKeyScopeAssignOrgRoleDelete", + "APIKeyScopeAssignOrgRoleRead", + "APIKeyScopeAssignOrgRoleUnassign", + "APIKeyScopeAssignOrgRoleUpdate", + "APIKeyScopeAssignRoleAll", + "APIKeyScopeAssignRoleAssign", + "APIKeyScopeAssignRoleRead", + "APIKeyScopeAssignRoleUnassign", + "APIKeyScopeAuditLogAll", + "APIKeyScopeAuditLogCreate", + "APIKeyScopeAuditLogRead", + "APIKeyScopeCoderAll", + "APIKeyScopeCoderApikeysManageSelf", + "APIKeyScopeCoderApplicationConnect", + "APIKeyScopeCoderTemplatesAuthor", + "APIKeyScopeCoderTemplatesBuild", + "APIKeyScopeCoderWorkspacesAccess", + "APIKeyScopeCoderWorkspacesCreate", + "APIKeyScopeCoderWorkspacesDelete", + "APIKeyScopeCoderWorkspacesOperate", + "APIKeyScopeConnectionLogAll", + "APIKeyScopeConnectionLogRead", + "APIKeyScopeConnectionLogUpdate", + "APIKeyScopeCryptoKeyAll", + "APIKeyScopeCryptoKeyCreate", + "APIKeyScopeCryptoKeyDelete", + "APIKeyScopeCryptoKeyRead", + "APIKeyScopeCryptoKeyUpdate", + "APIKeyScopeDebugInfoAll", + "APIKeyScopeDebugInfoRead", + "APIKeyScopeDeploymentConfigAll", + "APIKeyScopeDeploymentConfigRead", + "APIKeyScopeDeploymentConfigUpdate", + "APIKeyScopeDeploymentStatsAll", + "APIKeyScopeDeploymentStatsRead", + "APIKeyScopeFileAll", + "APIKeyScopeFileCreate", + "APIKeyScopeFileRead", + "APIKeyScopeGroupAll", + "APIKeyScopeGroupCreate", + "APIKeyScopeGroupDelete", + "APIKeyScopeGroupRead", + "APIKeyScopeGroupUpdate", + "APIKeyScopeGroupMemberAll", + "APIKeyScopeGroupMemberRead", + "APIKeyScopeIdpsyncSettingsAll", + "APIKeyScopeIdpsyncSettingsRead", + "APIKeyScopeIdpsyncSettingsUpdate", + "APIKeyScopeInboxNotificationAll", + "APIKeyScopeInboxNotificationCreate", + "APIKeyScopeInboxNotificationRead", + "APIKeyScopeInboxNotificationUpdate", + "APIKeyScopeLicenseAll", + "APIKeyScopeLicenseCreate", + "APIKeyScopeLicenseDelete", + "APIKeyScopeLicenseRead", + "APIKeyScopeNotificationMessageAll", + "APIKeyScopeNotificationMessageCreate", + "APIKeyScopeNotificationMessageDelete", + "APIKeyScopeNotificationMessageRead", + "APIKeyScopeNotificationMessageUpdate", + "APIKeyScopeNotificationPreferenceAll", + "APIKeyScopeNotificationPreferenceRead", + "APIKeyScopeNotificationPreferenceUpdate", + "APIKeyScopeNotificationTemplateAll", + "APIKeyScopeNotificationTemplateRead", + "APIKeyScopeNotificationTemplateUpdate", + "APIKeyScopeOauth2AppAll", + "APIKeyScopeOauth2AppCreate", + "APIKeyScopeOauth2AppDelete", + "APIKeyScopeOauth2AppRead", + "APIKeyScopeOauth2AppUpdate", + "APIKeyScopeOauth2AppCodeTokenAll", + "APIKeyScopeOauth2AppCodeTokenCreate", + "APIKeyScopeOauth2AppCodeTokenDelete", + "APIKeyScopeOauth2AppCodeTokenRead", + "APIKeyScopeOauth2AppSecretAll", + "APIKeyScopeOauth2AppSecretCreate", + "APIKeyScopeOauth2AppSecretDelete", + "APIKeyScopeOauth2AppSecretRead", + "APIKeyScopeOauth2AppSecretUpdate", + "APIKeyScopeOrganizationAll", + "APIKeyScopeOrganizationCreate", + "APIKeyScopeOrganizationDelete", + "APIKeyScopeOrganizationRead", + "APIKeyScopeOrganizationUpdate", + "APIKeyScopeOrganizationMemberAll", + "APIKeyScopeOrganizationMemberCreate", + "APIKeyScopeOrganizationMemberDelete", + "APIKeyScopeOrganizationMemberRead", + "APIKeyScopeOrganizationMemberUpdate", + "APIKeyScopePrebuiltWorkspaceAll", + "APIKeyScopePrebuiltWorkspaceDelete", + "APIKeyScopePrebuiltWorkspaceUpdate", + "APIKeyScopeProvisionerDaemonAll", + "APIKeyScopeProvisionerDaemonCreate", + "APIKeyScopeProvisionerDaemonDelete", + "APIKeyScopeProvisionerDaemonRead", + "APIKeyScopeProvisionerDaemonUpdate", + "APIKeyScopeProvisionerJobsAll", + "APIKeyScopeProvisionerJobsCreate", + "APIKeyScopeProvisionerJobsRead", + "APIKeyScopeProvisionerJobsUpdate", + "APIKeyScopeReplicasAll", + "APIKeyScopeReplicasRead", + "APIKeyScopeSystemAll", + "APIKeyScopeSystemCreate", + "APIKeyScopeSystemDelete", + "APIKeyScopeSystemRead", + "APIKeyScopeSystemUpdate", + "APIKeyScopeTailnetCoordinatorAll", + "APIKeyScopeTailnetCoordinatorCreate", + "APIKeyScopeTailnetCoordinatorDelete", + "APIKeyScopeTailnetCoordinatorRead", + "APIKeyScopeTailnetCoordinatorUpdate", + "APIKeyScopeTaskAll", + "APIKeyScopeTaskCreate", + "APIKeyScopeTaskDelete", + "APIKeyScopeTaskRead", + "APIKeyScopeTaskUpdate", + "APIKeyScopeTemplateAll", + "APIKeyScopeTemplateCreate", + "APIKeyScopeTemplateDelete", + "APIKeyScopeTemplateRead", + "APIKeyScopeTemplateUpdate", + "APIKeyScopeTemplateUse", + "APIKeyScopeTemplateViewInsights", + "APIKeyScopeUsageEventAll", + "APIKeyScopeUsageEventCreate", + "APIKeyScopeUsageEventRead", + "APIKeyScopeUsageEventUpdate", + "APIKeyScopeUserAll", + "APIKeyScopeUserCreate", + "APIKeyScopeUserDelete", + "APIKeyScopeUserRead", + "APIKeyScopeUserReadPersonal", + "APIKeyScopeUserUpdate", + "APIKeyScopeUserUpdatePersonal", + "APIKeyScopeUserSecretAll", + "APIKeyScopeUserSecretCreate", + "APIKeyScopeUserSecretDelete", + "APIKeyScopeUserSecretRead", + "APIKeyScopeUserSecretUpdate", + "APIKeyScopeWebpushSubscriptionAll", + "APIKeyScopeWebpushSubscriptionCreate", + "APIKeyScopeWebpushSubscriptionDelete", + "APIKeyScopeWebpushSubscriptionRead", + "APIKeyScopeWorkspaceAll", + "APIKeyScopeWorkspaceApplicationConnect", + "APIKeyScopeWorkspaceCreate", + "APIKeyScopeWorkspaceCreateAgent", + "APIKeyScopeWorkspaceDelete", + "APIKeyScopeWorkspaceDeleteAgent", + "APIKeyScopeWorkspaceRead", + "APIKeyScopeWorkspaceShare", + "APIKeyScopeWorkspaceSsh", + "APIKeyScopeWorkspaceStart", + "APIKeyScopeWorkspaceStop", + "APIKeyScopeWorkspaceUpdate", + "APIKeyScopeWorkspaceAgentDevcontainersAll", + "APIKeyScopeWorkspaceAgentDevcontainersCreate", + "APIKeyScopeWorkspaceAgentResourceMonitorAll", + "APIKeyScopeWorkspaceAgentResourceMonitorCreate", + "APIKeyScopeWorkspaceAgentResourceMonitorRead", + "APIKeyScopeWorkspaceAgentResourceMonitorUpdate", + "APIKeyScopeWorkspaceDormantAll", + "APIKeyScopeWorkspaceDormantApplicationConnect", + "APIKeyScopeWorkspaceDormantCreate", + "APIKeyScopeWorkspaceDormantCreateAgent", + "APIKeyScopeWorkspaceDormantDelete", + "APIKeyScopeWorkspaceDormantDeleteAgent", + "APIKeyScopeWorkspaceDormantRead", + "APIKeyScopeWorkspaceDormantShare", + "APIKeyScopeWorkspaceDormantSsh", + "APIKeyScopeWorkspaceDormantStart", + "APIKeyScopeWorkspaceDormantStop", + "APIKeyScopeWorkspaceDormantUpdate", + "APIKeyScopeWorkspaceProxyAll", + "APIKeyScopeWorkspaceProxyCreate", + "APIKeyScopeWorkspaceProxyDelete", + "APIKeyScopeWorkspaceProxyRead", + "APIKeyScopeWorkspaceProxyUpdate" + ] + }, + "codersdk.AddLicenseRequest": { + "type": "object", + "required": ["license"], + "properties": { + "license": { + "type": "string" + } + } + }, + "codersdk.AgentConnectionTiming": { + "type": "object", + "properties": { + "ended_at": { + "type": "string", + "format": "date-time" + }, + "stage": { + "$ref": "#/definitions/codersdk.TimingStage" + }, + "started_at": { + "type": "string", + "format": "date-time" + }, + "workspace_agent_id": { + "type": "string" + }, + "workspace_agent_name": { + "type": "string" + } + } + }, + "codersdk.AgentScriptTiming": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "ended_at": { + "type": "string", + "format": "date-time" + }, + "exit_code": { + "type": "integer" + }, + "stage": { + "$ref": "#/definitions/codersdk.TimingStage" + }, + "started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "workspace_agent_id": { + "type": "string" + }, + "workspace_agent_name": { + "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": { + "announcement_banners": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.BannerConfig" + } + }, + "application_name": { + "type": "string" + }, + "docs_url": { + "type": "string" + }, + "logo_url": { + "type": "string" + }, + "service_banner": { + "description": "Deprecated: ServiceBanner has been replaced by AnnouncementBanners.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.BannerConfig" + } + ] + }, + "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" + }, + "built_in": { + "description": "BuiltIn roles are immutable", + "type": "boolean" + }, + "display_name": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_member_permissions": { + "description": "OrganizationMemberPermissions are specific for the organization in the field 'OrganizationID' above.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "organization_permissions": { + "description": "OrganizationPermissions are specific for the organization in the field 'OrganizationID' above.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "site_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "user_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + } + } + }, + "codersdk.AuditAction": { + "type": "string", + "enum": [ + "create", + "write", + "delete", + "start", + "stop", + "login", + "logout", + "register", + "request_password_reset", + "connect", + "disconnect", + "open", + "close" + ], + "x-enum-varnames": [ + "AuditActionCreate", + "AuditActionWrite", + "AuditActionDelete", + "AuditActionStart", + "AuditActionStop", + "AuditActionLogin", + "AuditActionLogout", + "AuditActionRegister", + "AuditActionRequestPasswordReset", + "AuditActionConnect", + "AuditActionDisconnect", + "AuditActionOpen", + "AuditActionClose" + ] + }, + "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": "object" + }, + "description": { + "type": "string" + }, + "diff": { + "$ref": "#/definitions/codersdk.AuditDiff" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "ip": { + "type": "string" + }, + "is_deleted": { + "type": "boolean" + }, + "organization": { + "$ref": "#/definitions/codersdk.MinimalOrganization" + }, + "organization_id": { + "description": "Deprecated: Use 'organization.id' instead.", + "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.GithubAuthMethod" + }, + "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": { + "enum": ["create", "read", "update", "delete"], + "allOf": [ + { + "$ref": "#/definitions/codersdk.RBACAction" + } + ] + }, + "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": { + "any_org": { + "description": "AnyOrgOwner (optional) will disregard the org_owner when checking for permissions.\nThis cannot be set to true if the OrganizationID is set.", + "type": "boolean" + }, + "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.BannerConfig": { + "type": "object", + "properties": { + "background_color": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "message": { + "type": "string" + } + } + }, + "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" + }, + "provisioner_api_version": { + "description": "ProvisionerAPIVersion is the current version of the Provisioner API", + "type": "string" + }, + "telemetry": { + "description": "Telemetry is a boolean that indicates whether telemetry is enabled.", + "type": "boolean" + }, + "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" + }, + "webpush_public_key": { + "description": "WebPushPublicKey is the public key for push notifications via Web Push.", + "type": "string" + }, + "workspace_proxy": { + "type": "boolean" + } + } + }, + "codersdk.BuildReason": { + "type": "string", + "enum": [ + "initiator", + "autostart", + "autostop", + "dormancy", + "dashboard", + "cli", + "ssh_connection", + "vscode_connection", + "jetbrains_connection" + ], + "x-enum-varnames": [ + "BuildReasonInitiator", + "BuildReasonAutostart", + "BuildReasonAutostop", + "BuildReasonDormancy", + "BuildReasonDashboard", + "BuildReasonCLI", + "BuildReasonSSHConnection", + "BuildReasonVSCodeConnection", + "BuildReasonJetbrainsConnection" + ] + }, + "codersdk.CORSBehavior": { + "type": "string", + "enum": ["simple", "passthru"], + "x-enum-varnames": ["CORSBehaviorSimple", "CORSBehaviorPassthru"] + }, + "codersdk.ChangePasswordWithOneTimePasscodeRequest": { + "type": "object", + "required": ["email", "one_time_passcode", "password"], + "properties": { + "email": { + "type": "string", + "format": "email" + }, + "one_time_passcode": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "codersdk.ConnectionLatency": { + "type": "object", + "properties": { + "p50": { + "type": "number", + "example": 31.312 + }, + "p95": { + "type": "number", + "example": 119.832 + } + } + }, + "codersdk.ConnectionLog": { + "type": "object", + "properties": { + "agent_name": { + "type": "string" + }, + "connect_time": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "ip": { + "type": "string" + }, + "organization": { + "$ref": "#/definitions/codersdk.MinimalOrganization" + }, + "ssh_info": { + "description": "SSHInfo is only set when `type` is one of:\n- `ConnectionTypeSSH`\n- `ConnectionTypeReconnectingPTY`\n- `ConnectionTypeVSCode`\n- `ConnectionTypeJetBrains`", + "allOf": [ + { + "$ref": "#/definitions/codersdk.ConnectionLogSSHInfo" + } + ] + }, + "type": { + "$ref": "#/definitions/codersdk.ConnectionType" + }, + "web_info": { + "description": "WebInfo is only set when `type` is one of:\n- `ConnectionTypePortForwarding`\n- `ConnectionTypeWorkspaceApp`", + "allOf": [ + { + "$ref": "#/definitions/codersdk.ConnectionLogWebInfo" + } + ] + }, + "workspace_id": { + "type": "string", + "format": "uuid" + }, + "workspace_name": { + "type": "string" + }, + "workspace_owner_id": { + "type": "string", + "format": "uuid" + }, + "workspace_owner_username": { + "type": "string" + } + } + }, + "codersdk.ConnectionLogResponse": { + "type": "object", + "properties": { + "connection_logs": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ConnectionLog" + } + }, + "count": { + "type": "integer" + } + } + }, + "codersdk.ConnectionLogSSHInfo": { + "type": "object", + "properties": { + "connection_id": { + "type": "string", + "format": "uuid" + }, + "disconnect_reason": { + "description": "DisconnectReason is omitted if a disconnect event with the same connection ID\nhas not yet been seen.", + "type": "string" + }, + "disconnect_time": { + "description": "DisconnectTime is omitted if a disconnect event with the same connection ID\nhas not yet been seen.", + "type": "string", + "format": "date-time" + }, + "exit_code": { + "description": "ExitCode is the exit code of the SSH session. It is omitted if a\ndisconnect event with the same connection ID has not yet been seen.", + "type": "integer" + } + } + }, + "codersdk.ConnectionLogWebInfo": { + "type": "object", + "properties": { + "slug_or_port": { + "type": "string" + }, + "status_code": { + "description": "StatusCode is the HTTP status code of the request.", + "type": "integer" + }, + "user": { + "description": "User is omitted if the connection event was from an unauthenticated user.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.User" + } + ] + }, + "user_agent": { + "type": "string" + } + } + }, + "codersdk.ConnectionType": { + "type": "string", + "enum": [ + "ssh", + "vscode", + "jetbrains", + "reconnecting_pty", + "workspace_app", + "port_forwarding" + ], + "x-enum-varnames": [ + "ConnectionTypeSSH", + "ConnectionTypeVSCode", + "ConnectionTypeJetBrains", + "ConnectionTypeReconnectingPTY", + "ConnectionTypeWorkspaceApp", + "ConnectionTypePortForwarding" + ] + }, + "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" + }, + "name": { + "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", + "required": ["name"], + "properties": { + "avatar_url": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quota_allowance": { + "type": "integer" + } + } + }, + "codersdk.CreateOrganizationRequest": { + "type": "object", + "required": ["name"], + "properties": { + "description": { + "type": "string" + }, + "display_name": { + "description": "DisplayName will default to the same value as `Name` if not provided.", + "type": "string" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "codersdk.CreateProvisionerKeyResponse": { + "type": "object", + "properties": { + "key": { + "type": "string" + } + } + }, + "codersdk.CreateTaskRequest": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "input": { + "type": "string" + }, + "name": { + "type": "string" + }, + "template_version_id": { + "type": "string", + "format": "uuid" + }, + "template_version_preset_id": { + "type": "string", + "format": "uuid" + } + } + }, + "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" + } + ] + }, + "cors_behavior": { + "description": "CORSBehavior allows optionally specifying the CORS behavior for all shared ports.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.CORSBehavior" + } + ] + }, + "default_ttl_ms": { + "description": "DefaultTTLMillis allows optionally specifying the default TTL\nfor all workspaces created from this template.", + "type": "integer" + }, + "delete_ttl_ms": { + "description": "TimeTilDormantAutoDeleteMillis allows optionally specifying the max lifetime before Coder\npermanently deletes dormant workspaces created from this template.", + "type": "integer" + }, + "description": { + "description": "Description is a description of what the template contains. It must be\nless than 128 bytes.", + "type": "string" + }, + "disable_everyone_group_access": { + "description": "DisableEveryoneGroupAccess allows optionally disabling the default\nbehavior of granting the 'everyone' group access to use the template.\nIf this is set to true, the template will not be available to all users,\nand must be explicitly granted to users or groups in the permissions settings\nof the template.", + "type": "boolean" + }, + "display_name": { + "description": "DisplayName is the displayed name of the template.", + "type": "string" + }, + "dormant_ttl_ms": { + "description": "TimeTilDormantMillis allows optionally specifying the max lifetime before Coder\nlocks inactive workspaces created from this template.", + "type": "integer" + }, + "failure_ttl_ms": { + "description": "FailureTTLMillis allows optionally specifying the max lifetime before Coder\nstops all resources for failed workspaces created from this template.", + "type": "integer" + }, + "icon": { + "description": "Icon is a relative path or external URL that specifies\nan icon to be displayed in the dashboard.", + "type": "string" + }, + "max_port_share_level": { + "description": "MaxPortShareLevel allows optionally specifying the maximum port share level\nfor workspaces created from the template.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" + } + ] + }, + "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_use_classic_parameter_flow": { + "description": "UseClassicParameterFlow allows optionally specifying whether\nthe template should use the classic parameter flow. The default if unset is\ntrue, and is why `*bool` is used here. When dynamic parameters becomes\nthe default, this will default to false.", + "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" + } + ] + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "request_id": { + "type": "string", + "format": "uuid" + }, + "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": { + "allow_list": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.APIAllowListTarget" + } + }, + "lifetime": { + "type": "integer" + }, + "scope": { + "description": "Deprecated: use Scopes instead.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.APIKeyScope" + } + ] + }, + "scopes": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.APIKeyScope" + } + }, + "token_name": { + "type": "string" + } + } + }, + "codersdk.CreateUserRequestWithOrgs": { + "type": "object", + "required": ["email", "username"], + "properties": { + "email": { + "type": "string", + "format": "email" + }, + "login_type": { + "description": "UserLoginType defaults to LoginTypePassword.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.LoginType" + } + ] + }, + "name": { + "type": "string" + }, + "organization_ids": { + "description": "OrganizationIDs is a list of organization IDs that the user should be a member of.", + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "password": { + "type": "string" + }, + "user_status": { + "description": "UserStatus defaults to UserStatusDormant.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.UserStatus" + } + ] + }, + "username": { + "type": "string" + } + } + }, + "codersdk.CreateWorkspaceBuildReason": { + "type": "string", + "enum": [ + "dashboard", + "cli", + "ssh_connection", + "vscode_connection", + "jetbrains_connection" + ], + "x-enum-varnames": [ + "CreateWorkspaceBuildReasonDashboard", + "CreateWorkspaceBuildReasonCLI", + "CreateWorkspaceBuildReasonSSHConnection", + "CreateWorkspaceBuildReasonVSCodeConnection", + "CreateWorkspaceBuildReasonJetbrainsConnection" + ] + }, + "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" + }, + "reason": { + "description": "Reason sets the reason for the workspace build.", + "enum": [ + "dashboard", + "cli", + "ssh_connection", + "vscode_connection", + "jetbrains_connection" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.CreateWorkspaceBuildReason" + } + ] + }, + "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" + }, + "template_version_preset_id": { + "description": "TemplateVersionPresetID is the ID of the template version preset to use for the build.", + "type": "string", + "format": "uuid" + }, + "transition": { + "enum": ["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. Workspace names: - Must start with a letter or number - Can only contain letters, numbers, and hyphens - Cannot contain spaces or special characters - Cannot be named `new` or `create` - Must be unique within your workspaces - Maximum length of 32 characters", + "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" + }, + "template_version_preset_id": { + "type": "string", + "format": "uuid" + }, + "ttl_ms": { + "type": "integer" + } + } + }, + "codersdk.CryptoKey": { + "type": "object", + "properties": { + "deletes_at": { + "type": "string", + "format": "date-time" + }, + "feature": { + "$ref": "#/definitions/codersdk.CryptoKeyFeature" + }, + "secret": { + "type": "string" + }, + "sequence": { + "type": "integer" + }, + "starts_at": { + "type": "string", + "format": "date-time" + } + } + }, + "codersdk.CryptoKeyFeature": { + "type": "string", + "enum": [ + "workspace_apps_api_key", + "workspace_apps_token", + "oidc_convert", + "tailnet_resume" + ], + "x-enum-varnames": [ + "CryptoKeyFeatureWorkspaceAppsAPIKey", + "CryptoKeyFeatureWorkspaceAppsToken", + "CryptoKeyFeatureOIDCConvert", + "CryptoKeyFeatureTailnetResume" + ] + }, + "codersdk.CustomNotificationContent": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "codersdk.CustomNotificationRequest": { + "type": "object", + "properties": { + "content": { + "$ref": "#/definitions/codersdk.CustomNotificationContent" + } + } + }, + "codersdk.CustomRoleRequest": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization_member_permissions": { + "description": "OrganizationMemberPermissions are specific to the organization the role belongs to.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "organization_permissions": { + "description": "OrganizationPermissions are specific to the organization the role belongs to.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "site_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "user_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + } + } + }, + "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.DeleteExternalAuthByIDResponse": { + "type": "object", + "properties": { + "token_revocation_error": { + "type": "string" + }, + "token_revoked": { + "description": "TokenRevoked set to true if token revocation was attempted and was successful", + "type": "boolean" + } + } + }, + "codersdk.DeleteWebpushSubscription": { + "type": "object", + "properties": { + "endpoint": { + "type": "string" + } + } + }, + "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" + }, + "additional_csp_policy": { + "type": "array", + "items": { + "type": "string" + } + }, + "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" + }, + "ai": { + "$ref": "#/definitions/codersdk.AIConfig" + }, + "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" + }, + "disable_workspace_sharing": { + "type": "boolean" + }, + "docs_url": { + "$ref": "#/definitions/serpent.URL" + }, + "enable_authz_recording": { + "type": "boolean" + }, + "enable_terraform_debug_mode": { + "type": "boolean" + }, + "ephemeral_deployment": { + "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" + }, + "hide_ai_tasks": { + "type": "boolean" + }, + "http_address": { + "description": "HTTPAddress is a string because it may be set to zero to disable.", + "type": "string" + }, + "http_cookies": { + "$ref": "#/definitions/codersdk.HTTPCookieConfig" + }, + "job_hang_detector_interval": { + "type": "integer" + }, + "logging": { + "$ref": "#/definitions/codersdk.LoggingConfig" + }, + "metrics_cache_refresh_interval": { + "type": "integer" + }, + "notifications": { + "$ref": "#/definitions/codersdk.NotificationsConfig" + }, + "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" + }, + "retention": { + "$ref": "#/definitions/codersdk.RetentionConfig" + }, + "scim_api_key": { + "type": "string" + }, + "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" + }, + "workspace_hostname_suffix": { + "type": "string" + }, + "workspace_prebuilds": { + "$ref": "#/definitions/codersdk.PrebuildsConfig" + }, + "write_config": { + "type": "boolean" + } + } + }, + "codersdk.DiagnosticExtra": { + "type": "object", + "properties": { + "code": { + "type": "string" + } + } + }, + "codersdk.DiagnosticSeverityString": { + "type": "string", + "enum": ["error", "warning"], + "x-enum-varnames": [ + "DiagnosticSeverityError", + "DiagnosticSeverityWarning" + ] + }, + "codersdk.DisplayApp": { + "type": "string", + "enum": [ + "vscode", + "vscode_insiders", + "web_terminal", + "port_forwarding_helper", + "ssh_helper" + ], + "x-enum-varnames": [ + "DisplayAppVSCodeDesktop", + "DisplayAppVSCodeInsiders", + "DisplayAppWebTerminal", + "DisplayAppPortForward", + "DisplayAppSSH" + ] + }, + "codersdk.DynamicParametersRequest": { + "type": "object", + "properties": { + "id": { + "description": "ID identifies the request. The response contains the same\nID so that the client can match it to the request.", + "type": "integer" + }, + "inputs": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "owner_id": { + "description": "OwnerID if uuid.Nil, it defaults to `codersdk.Me`", + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.DynamicParametersResponse": { + "type": "object", + "properties": { + "diagnostics": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.FriendlyDiagnostic" + } + }, + "id": { + "type": "integer" + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.PreviewParameter" + } + } + } + }, + "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", + "notifications", + "workspace-usage", + "web-push", + "oauth2", + "mcp-server-http", + "workspace-sharing", + "terraform-directory-reuse" + ], + "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.", + "ExperimentMCPServerHTTP": "Enables the MCP HTTP server functionality.", + "ExperimentNotifications": "Sends notifications via SMTP and webhooks following certain events.", + "ExperimentOAuth2": "Enables OAuth2 provider functionality.", + "ExperimentTerraformWorkspace": "Enables reuse of existing terraform directory for builds", + "ExperimentWebPush": "Enables web push notifications through the browser.", + "ExperimentWorkspaceSharing": "Enables updating workspace ACLs for sharing with users and groups.", + "ExperimentWorkspaceUsage": "Enables the new workspace usage tracking." + }, + "x-enum-varnames": [ + "ExperimentExample", + "ExperimentAutoFillParameters", + "ExperimentNotifications", + "ExperimentWorkspaceUsage", + "ExperimentWebPush", + "ExperimentOAuth2", + "ExperimentMCPServerHTTP", + "ExperimentWorkspaceSharing", + "ExperimentTerraformWorkspace" + ] + }, + "codersdk.ExternalAPIKeyScopes": { + "type": "object", + "properties": { + "external": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.APIKeyScope" + } + } + } + }, + "codersdk.ExternalAgentCredentials": { + "type": "object", + "properties": { + "agent_token": { + "type": "string" + }, + "command": { + "type": "string" + } + } + }, + "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" + } + }, + "supports_revocation": { + "type": "boolean" + }, + "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" + }, + "id": { + "description": "ID is a unique identifier for the auth config.\nIt defaults to `type` when not provided.", + "type": "string" + }, + "mcp_tool_allow_regex": { + "type": "string" + }, + "mcp_tool_deny_regex": { + "type": "string" + }, + "mcp_url": { + "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" + }, + "revoke_url": { + "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" + }, + "id": { + "type": "integer" + }, + "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" + }, + "soft_limit": { + "description": "SoftLimit is the soft limit of the feature, and is only used for showing\nincluded limits in the dashboard. No license validation or warnings are\ngenerated from this value.", + "type": "integer" + }, + "usage_period": { + "description": "UsagePeriod denotes that the usage is a counter that accumulates over\nthis period (and most likely resets with the issuance of the next\nlicense).\n\nThese dates are determined from the license that this entitlement comes\nfrom, see enterprise/coderd/license/license.go.\n\nOnly certain features set these fields:\n- FeatureManagedAgentLimit", + "allOf": [ + { + "$ref": "#/definitions/codersdk.UsagePeriod" + } + ] + } + } + }, + "codersdk.FriendlyDiagnostic": { + "type": "object", + "properties": { + "detail": { + "type": "string" + }, + "extra": { + "$ref": "#/definitions/codersdk.DiagnosticExtra" + }, + "severity": { + "$ref": "#/definitions/codersdk.DiagnosticSeverityString" + }, + "summary": { + "type": "string" + } + } + }, + "codersdk.GenerateAPIKeyResponse": { + "type": "object", + "properties": { + "key": { + "type": "string" + } + } + }, + "codersdk.GetInboxNotificationResponse": { + "type": "object", + "properties": { + "notification": { + "$ref": "#/definitions/codersdk.InboxNotification" + }, + "unread_count": { + "type": "integer" + } + } + }, + "codersdk.GetUserStatusCountsResponse": { + "type": "object", + "properties": { + "status_counts": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.UserStatusChangeCount" + } + } + } + } + }, + "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": { + "description": "PublicKey is the SSH public key in OpenSSH format.\nExample: \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3OmYJvT7q1cF1azbybYy0OZ9yrXfA+M6Lr4vzX5zlp\\n\"\nNote: The key includes a trailing newline (\\n).", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "user_id": { + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.GithubAuthMethod": { + "type": "object", + "properties": { + "default_provider_configured": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + } + } + }, + "codersdk.Group": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ReducedUser" + } + }, + "name": { + "type": "string" + }, + "organization_display_name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_name": { + "type": "string" + }, + "quota_allowance": { + "type": "integer" + }, + "source": { + "$ref": "#/definitions/codersdk.GroupSource" + }, + "total_member_count": { + "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", + "type": "integer" + } + } + }, + "codersdk.GroupSource": { + "type": "string", + "enum": ["user", "oidc"], + "x-enum-varnames": ["GroupSourceUser", "GroupSourceOIDC"] + }, + "codersdk.GroupSyncSettings": { + "type": "object", + "properties": { + "auto_create_missing_groups": { + "description": "AutoCreateMissing controls whether groups returned by the OIDC provider\nare automatically created in Coder if they are missing.", + "type": "boolean" + }, + "field": { + "description": "Field is the name of the claim field that specifies what groups a user\nshould be in. If empty, no groups will be synced.", + "type": "string" + }, + "legacy_group_name_mapping": { + "description": "LegacyNameMapping is deprecated. It remaps an IDP group name to\na Coder group name. Since configuration is now done at runtime,\ngroup IDs are used to account for group renames.\nFor legacy configurations, this config option has to remain.\nDeprecated: Use Mapping instead.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "mapping": { + "description": "Mapping is a map from OIDC groups to Coder group IDs", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "regex_filter": { + "description": "RegexFilter is a regular expression that filters the groups returned by\nthe OIDC provider. Any group not matched by this regex will be ignored.\nIf the group filter is nil, then no group filtering will occur.", + "allOf": [ + { + "$ref": "#/definitions/regexp.Regexp" + } + ] + } + } + }, + "codersdk.HTTPCookieConfig": { + "type": "object", + "properties": { + "same_site": { + "type": "string" + }, + "secure_auth_cookie": { + "type": "boolean" + } + } + }, + "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.InboxNotification": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.InboxNotificationAction" + } + }, + "content": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "read_at": { + "type": "string" + }, + "targets": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "template_id": { + "type": "string", + "format": "uuid" + }, + "title": { + "type": "string" + }, + "user_id": { + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.InboxNotificationAction": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "codersdk.InsightsReportInterval": { + "type": "string", + "enum": ["day", "week"], + "x-enum-varnames": [ + "InsightsReportIntervalDay", + "InsightsReportIntervalWeek" + ] + }, + "codersdk.InvalidatePresetsResponse": { + "type": "object", + "properties": { + "invalidated": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.InvalidatedPreset" + } + } + } + }, + "codersdk.InvalidatedPreset": { + "type": "object", + "properties": { + "preset_name": { + "type": "string" + }, + "template_name": { + "type": "string" + }, + "template_version_name": { + "type": "string" + } + } + }, + "codersdk.IssueReconnectingPTYSignedTokenRequest": { + "type": "object", + "required": ["agentID", "url"], + "properties": { + "agentID": { + "type": "string", + "format": "uuid" + }, + "url": { + "description": "URL is the URL of the reconnecting-pty endpoint you are connecting to.", + "type": "string" + } + } + }, + "codersdk.IssueReconnectingPTYSignedTokenResponse": { + "type": "object", + "properties": { + "signed_token": { + "type": "string" + } + } + }, + "codersdk.JobErrorCode": { + "type": "string", + "enum": ["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", "star"] + }, + "location": { + "type": "string", + "enum": ["navbar", "dropdown"] + }, + "name": { + "type": "string" + }, + "target": { + "type": "string" + } + } + }, + "codersdk.ListInboxNotificationsResponse": { + "type": "object", + "properties": { + "notifications": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.InboxNotification" + } + }, + "unread_count": { + "type": "integer" + } + } + }, + "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.MatchedProvisioners": { + "type": "object", + "properties": { + "available": { + "description": "Available is the number of provisioner daemons that are available to\ntake jobs. This may be less than the count if some provisioners are\nbusy or have been stopped.", + "type": "integer" + }, + "count": { + "description": "Count is the number of provisioner daemons that matched the given\ntags. If the count is 0, it means no provisioner daemons matched the\nrequested tags.", + "type": "integer" + }, + "most_recently_seen": { + "description": "MostRecentlySeen is the most recently seen time of the set of matched\nprovisioners. If no provisioners matched, this field will be null.", + "type": "string", + "format": "date-time" + } + } + }, + "codersdk.MinimalOrganization": { + "type": "object", + "required": ["id"], + "properties": { + "display_name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + } + }, + "codersdk.MinimalUser": { + "type": "object", + "required": ["id", "username"], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "username": { + "type": "string" + } + } + }, + "codersdk.NotificationMethodsResponse": { + "type": "object", + "properties": { + "available": { + "type": "array", + "items": { + "type": "string" + } + }, + "default": { + "type": "string" + } + } + }, + "codersdk.NotificationPreference": { + "type": "object", + "properties": { + "disabled": { + "type": "boolean" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + } + }, + "codersdk.NotificationTemplate": { + "type": "object", + "properties": { + "actions": { + "type": "string" + }, + "body_template": { + "type": "string" + }, + "enabled_by_default": { + "type": "boolean" + }, + "group": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "kind": { + "type": "string" + }, + "method": { + "type": "string" + }, + "name": { + "type": "string" + }, + "title_template": { + "type": "string" + } + } + }, + "codersdk.NotificationsConfig": { + "type": "object", + "properties": { + "dispatch_timeout": { + "description": "How long to wait while a notification is being sent before giving up.", + "type": "integer" + }, + "email": { + "description": "SMTP settings.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.NotificationsEmailConfig" + } + ] + }, + "fetch_interval": { + "description": "How often to query the database for queued notifications.", + "type": "integer" + }, + "inbox": { + "description": "Inbox settings.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.NotificationsInboxConfig" + } + ] + }, + "lease_count": { + "description": "How many notifications a notifier should lease per fetch interval.", + "type": "integer" + }, + "lease_period": { + "description": "How long a notifier should lease a message. This is effectively how long a notification is 'owned'\nby a notifier, and once this period expires it will be available for lease by another notifier. Leasing\nis important in order for multiple running notifiers to not pick the same messages to deliver concurrently.\nThis lease period will only expire if a notifier shuts down ungracefully; a dispatch of the notification\nreleases the lease.", + "type": "integer" + }, + "max_send_attempts": { + "description": "The upper limit of attempts to send a notification.", + "type": "integer" + }, + "method": { + "description": "Which delivery method to use (available options: 'smtp', 'webhook').", + "type": "string" + }, + "retry_interval": { + "description": "The minimum time between retries.", + "type": "integer" + }, + "sync_buffer_size": { + "description": "The notifications system buffers message updates in memory to ease pressure on the database.\nThis option controls how many updates are kept in memory. The lower this value the\nlower the change of state inconsistency in a non-graceful shutdown - but it also increases load on the\ndatabase. It is recommended to keep this option at its default value.", + "type": "integer" + }, + "sync_interval": { + "description": "The notifications system buffers message updates in memory to ease pressure on the database.\nThis option controls how often it synchronizes its state with the database. The shorter this value the\nlower the change of state inconsistency in a non-graceful shutdown - but it also increases load on the\ndatabase. It is recommended to keep this option at its default value.", + "type": "integer" + }, + "webhook": { + "description": "Webhook settings.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.NotificationsWebhookConfig" + } + ] + } + } + }, + "codersdk.NotificationsEmailAuthConfig": { + "type": "object", + "properties": { + "identity": { + "description": "Identity for PLAIN auth.", + "type": "string" + }, + "password": { + "description": "Password for LOGIN/PLAIN auth.", + "type": "string" + }, + "password_file": { + "description": "File from which to load the password for LOGIN/PLAIN auth.", + "type": "string" + }, + "username": { + "description": "Username for LOGIN/PLAIN auth.", + "type": "string" + } + } + }, + "codersdk.NotificationsEmailConfig": { + "type": "object", + "properties": { + "auth": { + "description": "Authentication details.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.NotificationsEmailAuthConfig" + } + ] + }, + "force_tls": { + "description": "ForceTLS causes a TLS connection to be attempted.", + "type": "boolean" + }, + "from": { + "description": "The sender's address.", + "type": "string" + }, + "hello": { + "description": "The hostname identifying the SMTP server.", + "type": "string" + }, + "smarthost": { + "description": "The intermediary SMTP host through which emails are sent (host:port).", + "type": "string" + }, + "tls": { + "description": "TLS details.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.NotificationsEmailTLSConfig" + } + ] + } + } + }, + "codersdk.NotificationsEmailTLSConfig": { + "type": "object", + "properties": { + "ca_file": { + "description": "CAFile specifies the location of the CA certificate to use.", + "type": "string" + }, + "cert_file": { + "description": "CertFile specifies the location of the certificate to use.", + "type": "string" + }, + "insecure_skip_verify": { + "description": "InsecureSkipVerify skips target certificate validation.", + "type": "boolean" + }, + "key_file": { + "description": "KeyFile specifies the location of the key to use.", + "type": "string" + }, + "server_name": { + "description": "ServerName to verify the hostname for the targets.", + "type": "string" + }, + "start_tls": { + "description": "StartTLS attempts to upgrade plain connections to TLS.", + "type": "boolean" + } + } + }, + "codersdk.NotificationsInboxConfig": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "codersdk.NotificationsSettings": { + "type": "object", + "properties": { + "notifier_paused": { + "type": "boolean" + } + } + }, + "codersdk.NotificationsWebhookConfig": { + "type": "object", + "properties": { + "endpoint": { + "description": "The URL to which the payload will be sent with an HTTP POST request.", + "allOf": [ + { + "$ref": "#/definitions/serpent.URL" + } + ] + } + } + }, + "codersdk.NullHCLString": { + "type": "object", + "properties": { + "valid": { + "type": "boolean" + }, + "value": { + "type": "string" + } + } + }, + "codersdk.OAuth2AppEndpoints": { + "type": "object", + "properties": { + "authorization": { + "type": "string" + }, + "device_authorization": { + "description": "DeviceAuth is optional.", + "type": "string" + }, + "token": { + "type": "string" + }, + "token_revoke": { + "type": "string" + } + } + }, + "codersdk.OAuth2AuthorizationServerMetadata": { + "type": "object", + "properties": { + "authorization_endpoint": { + "type": "string" + }, + "code_challenge_methods_supported": { + "type": "array", + "items": { + "type": "string" + } + }, + "grant_types_supported": { + "type": "array", + "items": { + "type": "string" + } + }, + "issuer": { + "type": "string" + }, + "registration_endpoint": { + "type": "string" + }, + "response_types_supported": { + "type": "array", + "items": { + "type": "string" + } + }, + "revocation_endpoint": { + "type": "string" + }, + "scopes_supported": { + "type": "array", + "items": { + "type": "string" + } + }, + "token_endpoint": { + "type": "string" + }, + "token_endpoint_auth_methods_supported": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "codersdk.OAuth2ClientConfiguration": { + "type": "object", + "properties": { + "client_id": { + "type": "string" + }, + "client_id_issued_at": { + "type": "integer" + }, + "client_name": { + "type": "string" + }, + "client_secret_expires_at": { + "type": "integer" + }, + "client_uri": { + "type": "string" + }, + "contacts": { + "type": "array", + "items": { + "type": "string" + } + }, + "grant_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "jwks": { + "type": "object" + }, + "jwks_uri": { + "type": "string" + }, + "logo_uri": { + "type": "string" + }, + "policy_uri": { + "type": "string" + }, + "redirect_uris": { + "type": "array", + "items": { + "type": "string" + } + }, + "registration_access_token": { + "type": "array", + "items": { + "type": "integer" + } + }, + "registration_client_uri": { + "type": "string" + }, + "response_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string" + }, + "software_id": { + "type": "string" + }, + "software_version": { + "type": "string" + }, + "token_endpoint_auth_method": { + "type": "string" + }, + "tos_uri": { + "type": "string" + } + } + }, + "codersdk.OAuth2ClientRegistrationRequest": { + "type": "object", + "properties": { + "client_name": { + "type": "string" + }, + "client_uri": { + "type": "string" + }, + "contacts": { + "type": "array", + "items": { + "type": "string" + } + }, + "grant_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "jwks": { + "type": "object" + }, + "jwks_uri": { + "type": "string" + }, + "logo_uri": { + "type": "string" + }, + "policy_uri": { + "type": "string" + }, + "redirect_uris": { + "type": "array", + "items": { + "type": "string" + } + }, + "response_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string" + }, + "software_id": { + "type": "string" + }, + "software_statement": { + "type": "string" + }, + "software_version": { + "type": "string" + }, + "token_endpoint_auth_method": { + "type": "string" + }, + "tos_uri": { + "type": "string" + } + } + }, + "codersdk.OAuth2ClientRegistrationResponse": { + "type": "object", + "properties": { + "client_id": { + "type": "string" + }, + "client_id_issued_at": { + "type": "integer" + }, + "client_name": { + "type": "string" + }, + "client_secret": { + "type": "string" + }, + "client_secret_expires_at": { + "type": "integer" + }, + "client_uri": { + "type": "string" + }, + "contacts": { + "type": "array", + "items": { + "type": "string" + } + }, + "grant_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "jwks": { + "type": "object" + }, + "jwks_uri": { + "type": "string" + }, + "logo_uri": { + "type": "string" + }, + "policy_uri": { + "type": "string" + }, + "redirect_uris": { + "type": "array", + "items": { + "type": "string" + } + }, + "registration_access_token": { + "type": "string" + }, + "registration_client_uri": { + "type": "string" + }, + "response_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string" + }, + "software_id": { + "type": "string" + }, + "software_version": { + "type": "string" + }, + "token_endpoint_auth_method": { + "type": "string" + }, + "tos_uri": { + "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" + }, + "default_provider_enable": { + "type": "boolean" + }, + "device_flow": { + "type": "boolean" + }, + "enterprise_base_url": { + "type": "string" + } + } + }, + "codersdk.OAuth2ProtectedResourceMetadata": { + "type": "object", + "properties": { + "authorization_servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "bearer_methods_supported": { + "type": "array", + "items": { + "type": "string" + } + }, + "resource": { + "type": "string" + }, + "scopes_supported": { + "type": "array", + "items": { + "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": { + "description": "IgnoreUserInfo \u0026 UserInfoFromAccessToken are mutually exclusive. Only 1\ncan be set to true. Ideally this would be an enum with 3 states, ['none',\n'userinfo', 'access_token']. However, for backward compatibility,\n`ignore_user_info` must remain. And `access_token` is a niche, non-spec\ncompliant edge case. So it's use is rare, and should not be advised.", + "type": "boolean" + }, + "issuer_url": { + "type": "string" + }, + "name_field": { + "type": "string" + }, + "organization_assign_default": { + "type": "boolean" + }, + "organization_field": { + "type": "string" + }, + "organization_mapping": { + "type": "object" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "sign_in_text": { + "type": "string" + }, + "signups_disabled_text": { + "type": "string" + }, + "skip_issuer_checks": { + "type": "boolean" + }, + "source_user_info_from_access_token": { + "description": "UserInfoFromAccessToken as mentioned above is an edge case. This allows\nsourcing the user_info from the access token itself instead of a user_info\nendpoint. This assumes the access token is a valid JWT with a set of claims to\nbe merged with the id_token.", + "type": "boolean" + }, + "user_role_field": { + "type": "string" + }, + "user_role_mapping": { + "type": "object" + }, + "user_roles_default": { + "type": "array", + "items": { + "type": "string" + } + }, + "username_field": { + "type": "string" + } + } + }, + "codersdk.OptionType": { + "type": "string", + "enum": ["string", "number", "bool", "list(string)"], + "x-enum-varnames": [ + "OptionTypeString", + "OptionTypeNumber", + "OptionTypeBoolean", + "OptionTypeListString" + ] + }, + "codersdk.Organization": { + "type": "object", + "required": ["created_at", "id", "is_default", "updated_at"], + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "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.SlimRole" + } + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "user_id": { + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.OrganizationMemberWithUserData": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string" + }, + "global_roles": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.SlimRole" + } + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.SlimRole" + } + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "user_id": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string" + } + } + }, + "codersdk.OrganizationSyncSettings": { + "type": "object", + "properties": { + "field": { + "description": "Field selects the claim field to be used as the created user's\norganizations. If the field is the empty string, then no organization\nupdates will ever come from the OIDC provider.", + "type": "string" + }, + "mapping": { + "description": "Mapping maps from an OIDC claim --\u003e Coder organization uuid", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "organization_assign_default": { + "description": "AssignDefault will ensure the default org is always included\nfor every user, regardless of their claims. This preserves legacy behavior.", + "type": "boolean" + } + } + }, + "codersdk.PaginatedMembersResponse": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.OrganizationMemberWithUserData" + } + } + } + }, + "codersdk.ParameterFormType": { + "type": "string", + "enum": [ + "", + "radio", + "slider", + "input", + "dropdown", + "checkbox", + "switch", + "multi-select", + "tag-select", + "textarea", + "error" + ], + "x-enum-varnames": [ + "ParameterFormTypeDefault", + "ParameterFormTypeRadio", + "ParameterFormTypeSlider", + "ParameterFormTypeInput", + "ParameterFormTypeDropdown", + "ParameterFormTypeCheckbox", + "ParameterFormTypeSwitch", + "ParameterFormTypeMultiSelect", + "ParameterFormTypeTagSelect", + "ParameterFormTypeTextArea", + "ParameterFormTypeError" + ] + }, + "codersdk.PatchGroupIDPSyncConfigRequest": { + "type": "object", + "properties": { + "auto_create_missing_groups": { + "type": "boolean" + }, + "field": { + "type": "string" + }, + "regex_filter": { + "$ref": "#/definitions/regexp.Regexp" + } + } + }, + "codersdk.PatchGroupIDPSyncMappingRequest": { + "type": "object", + "properties": { + "add": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "type": "string" + } + } + } + }, + "remove": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "type": "string" + } + } + } + } + } + }, + "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.PatchOrganizationIDPSyncConfigRequest": { + "type": "object", + "properties": { + "assign_default": { + "type": "boolean" + }, + "field": { + "type": "string" + } + } + }, + "codersdk.PatchOrganizationIDPSyncMappingRequest": { + "type": "object", + "properties": { + "add": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "type": "string" + } + } + } + }, + "remove": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "type": "string" + } + } + } + } + } + }, + "codersdk.PatchRoleIDPSyncConfigRequest": { + "type": "object", + "properties": { + "field": { + "type": "string" + } + } + }, + "codersdk.PatchRoleIDPSyncMappingRequest": { + "type": "object", + "properties": { + "add": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "type": "string" + } + } + } + }, + "remove": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gets": { + "description": "The ID of the Coder resource the user should be added to", + "type": "string" + }, + "given": { + "description": "The IdP claim the user has", + "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.Permission": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/codersdk.RBACAction" + }, + "negate": { + "description": "Negate makes this a negative permission", + "type": "boolean" + }, + "resource_type": { + "$ref": "#/definitions/codersdk.RBACResource" + } + } + }, + "codersdk.PostOAuth2ProviderAppRequest": { + "type": "object", + "required": ["callback_url", "name"], + "properties": { + "callback_url": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "codersdk.PostWorkspaceUsageRequest": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "format": "uuid" + }, + "app_name": { + "$ref": "#/definitions/codersdk.UsageAppName" + } + } + }, + "codersdk.PprofConfig": { + "type": "object", + "properties": { + "address": { + "$ref": "#/definitions/serpent.HostPort" + }, + "enable": { + "type": "boolean" + } + } + }, + "codersdk.PrebuildsConfig": { + "type": "object", + "properties": { + "failure_hard_limit": { + "description": "FailureHardLimit defines the maximum number of consecutive failed prebuild attempts allowed\nbefore a preset is considered to be in a hard limit state. When a preset hits this limit,\nno new prebuilds will be created until the limit is reset.\nFailureHardLimit is disabled when set to zero.", + "type": "integer" + }, + "reconciliation_backoff_interval": { + "description": "ReconciliationBackoffInterval specifies the amount of time to increase the backoff interval\nwhen errors occur during reconciliation.", + "type": "integer" + }, + "reconciliation_backoff_lookback": { + "description": "ReconciliationBackoffLookback determines the time window to look back when calculating\nthe number of failed prebuilds, which influences the backoff strategy.", + "type": "integer" + }, + "reconciliation_interval": { + "description": "ReconciliationInterval defines how often the workspace prebuilds state should be reconciled.", + "type": "integer" + } + } + }, + "codersdk.PrebuildsSettings": { + "type": "object", + "properties": { + "reconciliation_paused": { + "type": "boolean" + } + } + }, + "codersdk.Preset": { + "type": "object", + "properties": { + "default": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "desiredPrebuildInstances": { + "type": "integer" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.PresetParameter" + } + } + } + }, + "codersdk.PresetParameter": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "codersdk.PreviewParameter": { + "type": "object", + "properties": { + "default_value": { + "$ref": "#/definitions/codersdk.NullHCLString" + }, + "description": { + "type": "string" + }, + "diagnostics": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.FriendlyDiagnostic" + } + }, + "display_name": { + "type": "string" + }, + "ephemeral": { + "type": "boolean" + }, + "form_type": { + "$ref": "#/definitions/codersdk.ParameterFormType" + }, + "icon": { + "type": "string" + }, + "mutable": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.PreviewParameterOption" + } + }, + "order": { + "description": "legacy_variable_name was removed (= 14)", + "type": "integer" + }, + "required": { + "type": "boolean" + }, + "styling": { + "$ref": "#/definitions/codersdk.PreviewParameterStyling" + }, + "type": { + "$ref": "#/definitions/codersdk.OptionType" + }, + "validations": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.PreviewParameterValidation" + } + }, + "value": { + "$ref": "#/definitions/codersdk.NullHCLString" + } + } + }, + "codersdk.PreviewParameterOption": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/codersdk.NullHCLString" + } + } + }, + "codersdk.PreviewParameterStyling": { + "type": "object", + "properties": { + "disabled": { + "type": "boolean" + }, + "label": { + "type": "string" + }, + "mask_input": { + "type": "boolean" + }, + "placeholder": { + "type": "string" + } + } + }, + "codersdk.PreviewParameterValidation": { + "type": "object", + "properties": { + "validation_error": { + "type": "string" + }, + "validation_max": { + "type": "integer" + }, + "validation_min": { + "type": "integer" + }, + "validation_monotonic": { + "type": "string" + }, + "validation_regex": { + "description": "All validation attributes are optional.", + "type": "string" + } + } + }, + "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" + }, + "daemon_types": { + "type": "array", + "items": { + "type": "string" + } + }, + "daemons": { + "description": "Daemons is the number of built-in terraform provisioners.", + "type": "integer" + }, + "force_cancel_interval": { + "type": "integer" + } + } + }, + "codersdk.ProvisionerDaemon": { + "type": "object", + "properties": { + "api_version": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "current_job": { + "$ref": "#/definitions/codersdk.ProvisionerDaemonJob" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "key_id": { + "type": "string", + "format": "uuid" + }, + "key_name": { + "description": "Optional fields.", + "type": "string" + }, + "last_seen_at": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "previous_job": { + "$ref": "#/definitions/codersdk.ProvisionerDaemonJob" + }, + "provisioners": { + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "enum": ["offline", "idle", "busy"], + "allOf": [ + { + "$ref": "#/definitions/codersdk.ProvisionerDaemonStatus" + } + ] + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "version": { + "type": "string" + } + } + }, + "codersdk.ProvisionerDaemonJob": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "status": { + "enum": [ + "pending", + "running", + "succeeded", + "canceling", + "canceled", + "failed" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.ProvisionerJobStatus" + } + ] + }, + "template_display_name": { + "type": "string" + }, + "template_icon": { + "type": "string" + }, + "template_name": { + "type": "string" + } + } + }, + "codersdk.ProvisionerDaemonStatus": { + "type": "string", + "enum": ["offline", "idle", "busy"], + "x-enum-varnames": [ + "ProvisionerDaemonOffline", + "ProvisionerDaemonIdle", + "ProvisionerDaemonBusy" + ] + }, + "codersdk.ProvisionerJob": { + "type": "object", + "properties": { + "available_workers": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "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" + }, + "initiator_id": { + "type": "string", + "format": "uuid" + }, + "input": { + "$ref": "#/definitions/codersdk.ProvisionerJobInput" + }, + "logs_overflowed": { + "type": "boolean" + }, + "metadata": { + "$ref": "#/definitions/codersdk.ProvisionerJobMetadata" + }, + "organization_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" + } + }, + "type": { + "$ref": "#/definitions/codersdk.ProvisionerJobType" + }, + "worker_id": { + "type": "string", + "format": "uuid" + }, + "worker_name": { + "type": "string" + } + } + }, + "codersdk.ProvisionerJobInput": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "template_version_id": { + "type": "string", + "format": "uuid" + }, + "workspace_build_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.ProvisionerJobMetadata": { + "type": "object", + "properties": { + "template_display_name": { + "type": "string" + }, + "template_icon": { + "type": "string" + }, + "template_id": { + "type": "string", + "format": "uuid" + }, + "template_name": { + "type": "string" + }, + "template_version_name": { + "type": "string" + }, + "workspace_id": { + "type": "string", + "format": "uuid" + }, + "workspace_name": { + "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.ProvisionerJobType": { + "type": "string", + "enum": [ + "template_version_import", + "workspace_build", + "template_version_dry_run" + ], + "x-enum-varnames": [ + "ProvisionerJobTypeTemplateVersionImport", + "ProvisionerJobTypeWorkspaceBuild", + "ProvisionerJobTypeTemplateVersionDryRun" + ] + }, + "codersdk.ProvisionerKey": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "organization": { + "type": "string", + "format": "uuid" + }, + "tags": { + "$ref": "#/definitions/codersdk.ProvisionerKeyTags" + } + } + }, + "codersdk.ProvisionerKeyDaemons": { + "type": "object", + "properties": { + "daemons": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ProvisionerDaemon" + } + }, + "key": { + "$ref": "#/definitions/codersdk.ProvisionerKey" + } + } + }, + "codersdk.ProvisionerKeyTags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "codersdk.ProvisionerLogLevel": { + "type": "string", + "enum": ["debug"], + "x-enum-varnames": ["ProvisionerLogLevelDebug"] + }, + "codersdk.ProvisionerStorageMethod": { + "type": "string", + "enum": ["file"], + "x-enum-varnames": ["ProvisionerStorageMethodFile"] + }, + "codersdk.ProvisionerTiming": { + "type": "object", + "properties": { + "action": { + "type": "string" + }, + "ended_at": { + "type": "string", + "format": "date-time" + }, + "job_id": { + "type": "string", + "format": "uuid" + }, + "resource": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stage": { + "$ref": "#/definitions/codersdk.TimingStage" + }, + "started_at": { + "type": "string", + "format": "date-time" + } + } + }, + "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.RBACAction": { + "type": "string", + "enum": [ + "application_connect", + "assign", + "create", + "create_agent", + "delete", + "delete_agent", + "read", + "read_personal", + "ssh", + "share", + "unassign", + "update", + "update_personal", + "use", + "view_insights", + "start", + "stop" + ], + "x-enum-varnames": [ + "ActionApplicationConnect", + "ActionAssign", + "ActionCreate", + "ActionCreateAgent", + "ActionDelete", + "ActionDeleteAgent", + "ActionRead", + "ActionReadPersonal", + "ActionSSH", + "ActionShare", + "ActionUnassign", + "ActionUpdate", + "ActionUpdatePersonal", + "ActionUse", + "ActionViewInsights", + "ActionWorkspaceStart", + "ActionWorkspaceStop" + ] + }, + "codersdk.RBACResource": { + "type": "string", + "enum": [ + "*", + "aibridge_interception", + "api_key", + "assign_org_role", + "assign_role", + "audit_log", + "connection_log", + "crypto_key", + "debug_info", + "deployment_config", + "deployment_stats", + "file", + "group", + "group_member", + "idpsync_settings", + "inbox_notification", + "license", + "notification_message", + "notification_preference", + "notification_template", + "oauth2_app", + "oauth2_app_code_token", + "oauth2_app_secret", + "organization", + "organization_member", + "prebuilt_workspace", + "provisioner_daemon", + "provisioner_jobs", + "replicas", + "system", + "tailnet_coordinator", + "task", + "template", + "usage_event", + "user", + "user_secret", + "webpush_subscription", + "workspace", + "workspace_agent_devcontainers", + "workspace_agent_resource_monitor", + "workspace_dormant", + "workspace_proxy" + ], + "x-enum-varnames": [ + "ResourceWildcard", + "ResourceAibridgeInterception", + "ResourceApiKey", + "ResourceAssignOrgRole", + "ResourceAssignRole", + "ResourceAuditLog", + "ResourceConnectionLog", + "ResourceCryptoKey", + "ResourceDebugInfo", + "ResourceDeploymentConfig", + "ResourceDeploymentStats", + "ResourceFile", + "ResourceGroup", + "ResourceGroupMember", + "ResourceIdpsyncSettings", + "ResourceInboxNotification", + "ResourceLicense", + "ResourceNotificationMessage", + "ResourceNotificationPreference", + "ResourceNotificationTemplate", + "ResourceOauth2App", + "ResourceOauth2AppCodeToken", + "ResourceOauth2AppSecret", + "ResourceOrganization", + "ResourceOrganizationMember", + "ResourcePrebuiltWorkspace", + "ResourceProvisionerDaemon", + "ResourceProvisionerJobs", + "ResourceReplicas", + "ResourceSystem", + "ResourceTailnetCoordinator", + "ResourceTask", + "ResourceTemplate", + "ResourceUsageEvent", + "ResourceUser", + "ResourceUserSecret", + "ResourceWebpushSubscription", + "ResourceWorkspace", + "ResourceWorkspaceAgentDevcontainers", + "ResourceWorkspaceAgentResourceMonitor", + "ResourceWorkspaceDormant", + "ResourceWorkspaceProxy" + ] + }, + "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": { + "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "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.RequestOneTimePasscodeRequest": { + "type": "object", + "required": ["email"], + "properties": { + "email": { + "type": "string", + "format": "email" + } + } + }, + "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", + "notifications_settings", + "prebuilds_settings", + "workspace_proxy", + "organization", + "oauth2_provider_app", + "oauth2_provider_app_secret", + "custom_role", + "organization_member", + "notification_template", + "idp_sync_settings_organization", + "idp_sync_settings_group", + "idp_sync_settings_role", + "workspace_agent", + "workspace_app", + "task" + ], + "x-enum-varnames": [ + "ResourceTypeTemplate", + "ResourceTypeTemplateVersion", + "ResourceTypeUser", + "ResourceTypeWorkspace", + "ResourceTypeWorkspaceBuild", + "ResourceTypeGitSSHKey", + "ResourceTypeAPIKey", + "ResourceTypeGroup", + "ResourceTypeLicense", + "ResourceTypeConvertLogin", + "ResourceTypeHealthSettings", + "ResourceTypeNotificationsSettings", + "ResourceTypePrebuildsSettings", + "ResourceTypeWorkspaceProxy", + "ResourceTypeOrganization", + "ResourceTypeOAuth2ProviderApp", + "ResourceTypeOAuth2ProviderAppSecret", + "ResourceTypeCustomRole", + "ResourceTypeOrganizationMember", + "ResourceTypeNotificationTemplate", + "ResourceTypeIdpSyncSettingsOrganization", + "ResourceTypeIdpSyncSettingsGroup", + "ResourceTypeIdpSyncSettingsRole", + "ResourceTypeWorkspaceAgent", + "ResourceTypeWorkspaceApp", + "ResourceTypeTask" + ] + }, + "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.RetentionConfig": { + "type": "object", + "properties": { + "api_keys": { + "description": "APIKeys controls how long expired API keys are retained before being deleted.\nKeys are only deleted if they have been expired for at least this duration.\nDefaults to 7 days to preserve existing behavior.", + "type": "integer" + }, + "audit_logs": { + "description": "AuditLogs controls how long audit log entries are retained.\nSet to 0 to disable (keep indefinitely).", + "type": "integer" + }, + "connection_logs": { + "description": "ConnectionLogs controls how long connection log entries are retained.\nSet to 0 to disable (keep indefinitely).", + "type": "integer" + }, + "workspace_agent_logs": { + "description": "WorkspaceAgentLogs controls how long workspace agent logs are retained.\nLogs are deleted if the agent hasn't connected within this period.\nLogs from the latest build are always retained regardless of age.\nDefaults to 7 days to preserve existing behavior.", + "type": "integer" + } + } + }, + "codersdk.Role": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_member_permissions": { + "description": "OrganizationMemberPermissions are specific for the organization in the field 'OrganizationID' above.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "organization_permissions": { + "description": "OrganizationPermissions are specific for the organization in the field 'OrganizationID' above.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "site_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + }, + "user_permissions": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Permission" + } + } + } + }, + "codersdk.RoleSyncSettings": { + "type": "object", + "properties": { + "field": { + "description": "Field is the name of the claim field that specifies what organization roles\na user should be given. If empty, no roles will be synced.", + "type": "string" + }, + "mapping": { + "description": "Mapping is a map from OIDC groups to Coder organization roles.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "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": { + "description": "HostnamePrefix is the prefix we append to workspace names for SSH hostnames.\nDeprecated: use HostnameSuffix instead.", + "type": "string" + }, + "hostname_suffix": { + "description": "HostnameSuffix is the suffix to append to workspace names for SSH hostnames.", + "type": "string" + }, + "ssh_config_options": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "codersdk.ServerSentEvent": { + "type": "object", + "properties": { + "data": {}, + "type": { + "$ref": "#/definitions/codersdk.ServerSentEventType" + } + } + }, + "codersdk.ServerSentEventType": { + "type": "string", + "enum": ["ping", "data", "error"], + "x-enum-varnames": [ + "ServerSentEventTypePing", + "ServerSentEventTypeData", + "ServerSentEventTypeError" + ] + }, + "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 only for browser, workspace app and oauth sessions.", + "type": "integer" + }, + "default_token_lifetime": { + "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_admin_token_lifetime": { + "type": "integer" + }, + "max_token_lifetime": { + "type": "integer" + }, + "refresh_default_duration": { + "description": "RefreshDefaultDuration is the default lifetime for OAuth2 refresh tokens.\nThis should generally be longer than access token lifetimes to allow\nrefreshing after access token expiry.", + "type": "integer" + } + } + }, + "codersdk.SlimRole": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string" + } + } + }, + "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.Task": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "current_state": { + "$ref": "#/definitions/codersdk.TaskStateEntry" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "initial_prompt": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "owner_avatar_url": { + "type": "string" + }, + "owner_id": { + "type": "string", + "format": "uuid" + }, + "owner_name": { + "type": "string" + }, + "status": { + "enum": [ + "pending", + "initializing", + "active", + "paused", + "unknown", + "error" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.TaskStatus" + } + ] + }, + "template_display_name": { + "type": "string" + }, + "template_icon": { + "type": "string" + }, + "template_id": { + "type": "string", + "format": "uuid" + }, + "template_name": { + "type": "string" + }, + "template_version_id": { + "type": "string", + "format": "uuid" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "workspace_agent_health": { + "$ref": "#/definitions/codersdk.WorkspaceAgentHealth" + }, + "workspace_agent_id": { + "format": "uuid", + "allOf": [ + { + "$ref": "#/definitions/uuid.NullUUID" + } + ] + }, + "workspace_agent_lifecycle": { + "$ref": "#/definitions/codersdk.WorkspaceAgentLifecycle" + }, + "workspace_app_id": { + "format": "uuid", + "allOf": [ + { + "$ref": "#/definitions/uuid.NullUUID" + } + ] + }, + "workspace_build_number": { + "type": "integer" + }, + "workspace_id": { + "format": "uuid", + "allOf": [ + { + "$ref": "#/definitions/uuid.NullUUID" + } + ] + }, + "workspace_name": { + "type": "string" + }, + "workspace_status": { + "enum": [ + "pending", + "starting", + "running", + "stopping", + "stopped", + "failed", + "canceling", + "canceled", + "deleting", + "deleted" + ], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceStatus" + } + ] + } + } + }, + "codersdk.TaskLogEntry": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "type": { + "$ref": "#/definitions/codersdk.TaskLogType" + } + } + }, + "codersdk.TaskLogType": { + "type": "string", + "enum": ["input", "output"], + "x-enum-varnames": ["TaskLogTypeInput", "TaskLogTypeOutput"] + }, + "codersdk.TaskLogsResponse": { + "type": "object", + "properties": { + "logs": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.TaskLogEntry" + } + } + } + }, + "codersdk.TaskSendRequest": { + "type": "object", + "properties": { + "input": { + "type": "string" + } + } + }, + "codersdk.TaskState": { + "type": "string", + "enum": ["working", "idle", "complete", "failed"], + "x-enum-varnames": [ + "TaskStateWorking", + "TaskStateIdle", + "TaskStateComplete", + "TaskStateFailed" + ] + }, + "codersdk.TaskStateEntry": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "state": { + "$ref": "#/definitions/codersdk.TaskState" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "uri": { + "type": "string" + } + } + }, + "codersdk.TaskStatus": { + "type": "string", + "enum": [ + "pending", + "initializing", + "active", + "paused", + "unknown", + "error" + ], + "x-enum-varnames": [ + "TaskStatusPending", + "TaskStatusInitializing", + "TaskStatusActive", + "TaskStatusPaused", + "TaskStatusUnknown", + "TaskStatusError" + ] + }, + "codersdk.TasksListResponse": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "tasks": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.Task" + } + } + } + }, + "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" + }, + "cors_behavior": { + "$ref": "#/definitions/codersdk.CORSBehavior" + }, + "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_display_name": { + "type": "string" + }, + "organization_icon": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_name": { + "type": "string", + "format": "url" + }, + "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" + }, + "use_classic_parameter_flow": { + "type": "boolean" + }, + "use_terraform_workspace_cache": { + "type": "boolean" + } + } + }, + "codersdk.TemplateACL": { + "type": "object", + "properties": { + "group": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.TemplateGroup" + } + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.TemplateUser" + } + } + } + }, + "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" + } + }, + "times_used": { + "type": "integer", + "example": 2 + }, + "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.TemplateGroup": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ReducedUser" + } + }, + "name": { + "type": "string" + }, + "organization_display_name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_name": { + "type": "string" + }, + "quota_allowance": { + "type": "integer" + }, + "role": { + "enum": ["admin", "use"], + "allOf": [ + { + "$ref": "#/definitions/codersdk.TemplateRole" + } + ] + }, + "source": { + "$ref": "#/definitions/codersdk.GroupSource" + }, + "total_member_count": { + "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", + "type": "integer" + } + } + }, + "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.SlimRole" + } + }, + "status": { + "enum": ["active", "suspended"], + "allOf": [ + { + "$ref": "#/definitions/codersdk.UserStatus" + } + ] + }, + "theme_preference": { + "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + } + }, + "codersdk.TemplateVersion": { + "type": "object", + "properties": { + "archived": { + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "created_by": { + "$ref": "#/definitions/codersdk.MinimalUser" + }, + "has_external_agent": { + "type": "boolean" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "job": { + "$ref": "#/definitions/codersdk.ProvisionerJob" + }, + "matched_provisioners": { + "$ref": "#/definitions/codersdk.MatchedProvisioners" + }, + "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" + }, + "form_type": { + "description": "FormType has an enum value of empty string, `\"\"`.\nKeep the leading comma in the enums struct tag.", + "type": "string", + "enum": [ + "", + "radio", + "dropdown", + "input", + "textarea", + "slider", + "checkbox", + "switch", + "tag-select", + "multi-select", + "error" + ] + }, + "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.TerminalFontName": { + "type": "string", + "enum": [ + "", + "ibm-plex-mono", + "fira-code", + "source-code-pro", + "jetbrains-mono" + ], + "x-enum-varnames": [ + "TerminalFontUnknown", + "TerminalFontIBMPlexMono", + "TerminalFontFiraCode", + "TerminalFontSourceCodePro", + "TerminalFontJetBrainsMono" + ] + }, + "codersdk.TimingStage": { + "type": "string", + "enum": [ + "init", + "plan", + "graph", + "apply", + "start", + "stop", + "cron", + "connect" + ], + "x-enum-varnames": [ + "TimingStageInit", + "TimingStagePlan", + "TimingStageGraph", + "TimingStageApply", + "TimingStageStart", + "TimingStageStop", + "TimingStageCron", + "TimingStageConnect" + ] + }, + "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": { + "announcement_banners": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.BannerConfig" + } + }, + "application_name": { + "type": "string" + }, + "logo_url": { + "type": "string" + }, + "service_banner": { + "description": "Deprecated: ServiceBanner has been replaced by AnnouncementBanners.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.BannerConfig" + } + ] + } + } + }, + "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.UpdateOrganizationRequest": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "codersdk.UpdateRoles": { + "type": "object", + "properties": { + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "codersdk.UpdateTaskInputRequest": { + "type": "object", + "properties": { + "input": { + "type": "string" + } + } + }, + "codersdk.UpdateTemplateACL": { + "type": "object", + "properties": { + "group_perms": { + "description": "GroupPerms is a mapping from valid group UUIDs to the template role they\nshould be granted. To remove a group from the template, use \"\" as the role\n(available as a constant named codersdk.TemplateRoleDeleted)", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/codersdk.TemplateRole" + }, + "example": { + "8bd26b20-f3e8-48be-a903-46bb920cf671": "use", + "\u003cgroup_id\u003e": "admin" + } + }, + "user_perms": { + "description": "UserPerms is a mapping from valid user UUIDs to the template role they\nshould be granted. To remove a user from the template, use \"\" as the role\n(available as a constant named codersdk.TemplateRoleDeleted)", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/codersdk.TemplateRole" + }, + "example": { + "4df59e74-c027-470b-ab4d-cbba8963a5e9": "use", + "\u003cuser_id\u003e": "admin" + } + } + } + }, + "codersdk.UpdateTemplateMeta": { + "type": "object", + "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": { + "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 can only be set if your license\nincludes the advanced template scheduling feature. If you attempt to set this\nvalue while unlicensed, it will be ignored.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.TemplateAutostopRequirement" + } + ] + }, + "cors_behavior": { + "$ref": "#/definitions/codersdk.CORSBehavior" + }, + "default_ttl_ms": { + "type": "integer" + }, + "deprecation_message": { + "description": "DeprecationMessage if set, will mark the template as deprecated and block\nany new workspaces from using this template.\nIf passed an empty string, will remove the deprecated message, making\nthe template usable for new workspaces again.", + "type": "string" + }, + "description": { + "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": { + "type": "string" + }, + "failure_ttl_ms": { + "type": "integer" + }, + "icon": { + "type": "string" + }, + "max_port_share_level": { + "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" + }, + "name": { + "type": "string" + }, + "require_active_version": { + "description": "RequireActiveVersion mandates workspaces built using this template\nuse the active version of the template. This option has no\neffect on template admins.", + "type": "boolean" + }, + "time_til_dormant_autodelete_ms": { + "type": "integer" + }, + "time_til_dormant_ms": { + "type": "integer" + }, + "update_workspace_dormant_at": { + "description": "UpdateWorkspaceDormant updates the dormant_at field of workspaces spawned\nfrom the template. This is useful for preventing dormant workspaces being immediately\ndeleted when updating the dormant_ttl field to a new, shorter value.", + "type": "boolean" + }, + "update_workspace_last_used_at": { + "description": "UpdateWorkspaceLastUsedAt updates the last_used_at field of workspaces\nspawned from the template. This is useful for preventing workspaces being\nimmediately locked when updating the inactivity_ttl field to a new, shorter\nvalue.", + "type": "boolean" + }, + "use_classic_parameter_flow": { + "description": "UseClassicParameterFlow is a flag that switches the default behavior to use the classic\nparameter flow when creating a workspace. This only affects deployments with the experiment\n\"dynamic-parameters\" enabled. This setting will live for a period after the experiment is\nmade the default.\nAn \"opt-out\" is present in case the new feature breaks some existing templates.", + "type": "boolean" + }, + "use_terraform_workspace_cache": { + "description": "UseTerraformWorkspaceCache allows optionally specifying whether to use cached\nterraform directories for workspaces created from this template. This field\nonly applies when the correct experiment is enabled. This field is subject to\nbeing removed in the future.", + "type": "boolean" + } + } + }, + "codersdk.UpdateUserAppearanceSettingsRequest": { + "type": "object", + "required": ["terminal_font", "theme_preference"], + "properties": { + "terminal_font": { + "$ref": "#/definitions/codersdk.TerminalFontName" + }, + "theme_preference": { + "type": "string" + } + } + }, + "codersdk.UpdateUserNotificationPreferences": { + "type": "object", + "properties": { + "template_disabled_map": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + } + }, + "codersdk.UpdateUserPasswordRequest": { + "type": "object", + "required": ["password"], + "properties": { + "old_password": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "codersdk.UpdateUserPreferenceSettingsRequest": { + "type": "object", + "properties": { + "task_notification_alert_dismissed": { + "type": "boolean" + } + } + }, + "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.UpdateWorkspaceACL": { + "type": "object", + "properties": { + "group_roles": { + "description": "GroupRoles is a mapping from valid group UUIDs to the workspace role they\nshould be granted. To remove a group from the workspace, use \"\" as the role\n(available as a constant named codersdk.WorkspaceRoleDeleted)", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/codersdk.WorkspaceRole" + } + }, + "user_roles": { + "description": "UserRoles is a mapping from valid user UUIDs to the workspace role they\nshould be granted. To remove a user from the workspace, use \"\" as the role\n(available as a constant named codersdk.WorkspaceRoleDeleted)", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/codersdk.WorkspaceRole" + } + } + } + }, + "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", "organization", "public"], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" + } + ] + } + } + }, + "codersdk.UsageAppName": { + "type": "string", + "enum": ["vscode", "jetbrains", "reconnecting-pty", "ssh"], + "x-enum-varnames": [ + "UsageAppNameVscode", + "UsageAppNameJetbrains", + "UsageAppNameReconnectingPty", + "UsageAppNameSSH" + ] + }, + "codersdk.UsagePeriod": { + "type": "object", + "properties": { + "end": { + "type": "string", + "format": "date-time" + }, + "issued_at": { + "type": "string", + "format": "date-time" + }, + "start": { + "type": "string", + "format": "date-time" + } + } + }, + "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.SlimRole" + } + }, + "status": { + "enum": ["active", "suspended"], + "allOf": [ + { + "$ref": "#/definitions/codersdk.UserStatus" + } + ] + }, + "theme_preference": { + "description": "Deprecated: this value should be retrieved from\n`codersdk.UserPreferenceSettings` instead.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "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.UserAppearanceSettings": { + "type": "object", + "properties": { + "terminal_font": { + "$ref": "#/definitions/codersdk.TerminalFontName" + }, + "theme_preference": { + "type": "string" + } + } + }, + "codersdk.UserLatency": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "latency_ms": { + "$ref": "#/definitions/codersdk.ConnectionLatency" + }, + "template_ids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "user_id": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string" + } + } + }, + "codersdk.UserLatencyInsightsReport": { + "type": "object", + "properties": { + "end_time": { + "type": "string", + "format": "date-time" + }, + "start_time": { + "type": "string", + "format": "date-time" + }, + "template_ids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.UserLatency" + } + } + } + }, + "codersdk.UserLatencyInsightsResponse": { + "type": "object", + "properties": { + "report": { + "$ref": "#/definitions/codersdk.UserLatencyInsightsReport" + } + } + }, + "codersdk.UserLoginType": { + "type": "object", + "properties": { + "login_type": { + "$ref": "#/definitions/codersdk.LoginType" + } + } + }, + "codersdk.UserParameter": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "codersdk.UserPreferenceSettings": { + "type": "object", + "properties": { + "task_notification_alert_dismissed": { + "type": "boolean" + } + } + }, + "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.UserStatusChangeCount": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 10 + }, + "date": { + "type": "string", + "format": "date-time" + } + } + }, + "codersdk.ValidateUserPasswordRequest": { + "type": "object", + "required": ["password"], + "properties": { + "password": { + "type": "string" + } + } + }, + "codersdk.ValidateUserPasswordResponse": { + "type": "object", + "properties": { + "details": { + "type": "string" + }, + "valid": { + "type": "boolean" + } + } + }, + "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.WebpushSubscription": { + "type": "object", + "properties": { + "auth_key": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "p256dh_key": { + "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" + }, + "is_prebuild": { + "description": "IsPrebuild indicates whether the workspace is a prebuilt workspace.\nPrebuilt workspaces are owned by the prebuilds system user and have specific behavior,\nsuch as being managed differently from regular workspaces.\nOnce a prebuilt workspace is claimed by a user, it transitions to a regular workspace,\nand IsPrebuild returns false.", + "type": "boolean" + }, + "last_used_at": { + "type": "string", + "format": "date-time" + }, + "latest_app_status": { + "$ref": "#/definitions/codersdk.WorkspaceAppStatus" + }, + "latest_build": { + "$ref": "#/definitions/codersdk.WorkspaceBuild" + }, + "name": { + "type": "string" + }, + "next_start_at": { + "type": "string", + "format": "date-time" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_name": { + "type": "string" + }, + "outdated": { + "type": "boolean" + }, + "owner_avatar_url": { + "type": "string" + }, + "owner_id": { + "type": "string", + "format": "uuid" + }, + "owner_name": { + "description": "OwnerName is the username of the owner of the workspace.", + "type": "string" + }, + "task_id": { + "description": "TaskID, if set, indicates that the workspace is relevant to the given codersdk.Task.", + "allOf": [ + { + "$ref": "#/definitions/uuid.NullUUID" + } + ] + }, + "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" + }, + "template_use_classic_parameter_flow": { + "type": "boolean" + }, + "ttl_ms": { + "type": "integer" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + } + }, + "codersdk.WorkspaceACL": { + "type": "object", + "properties": { + "group": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceGroup" + } + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceUser" + } + } + } + }, + "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" + }, + "parent_id": { + "format": "uuid", + "allOf": [ + { + "$ref": "#/definitions/uuid.NullUUID" + } + ] + }, + "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.WorkspaceAgentContainer": { + "type": "object", + "properties": { + "created_at": { + "description": "CreatedAt is the time the container was created.", + "type": "string", + "format": "date-time" + }, + "id": { + "description": "ID is the unique identifier of the container.", + "type": "string" + }, + "image": { + "description": "Image is the name of the container image.", + "type": "string" + }, + "labels": { + "description": "Labels is a map of key-value pairs of container labels.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "name": { + "description": "FriendlyName is the human-readable name of the container.", + "type": "string" + }, + "ports": { + "description": "Ports includes ports exposed by the container.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceAgentContainerPort" + } + }, + "running": { + "description": "Running is true if the container is currently running.", + "type": "boolean" + }, + "status": { + "description": "Status is the current status of the container. This is somewhat\nimplementation-dependent, but should generally be a human-readable\nstring.", + "type": "string" + }, + "volumes": { + "description": "Volumes is a map of \"things\" mounted into the container. Again, this\nis somewhat implementation-dependent.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "codersdk.WorkspaceAgentContainerPort": { + "type": "object", + "properties": { + "host_ip": { + "description": "HostIP is the IP address of the host interface to which the port is\nbound. Note that this can be an IPv4 or IPv6 address.", + "type": "string" + }, + "host_port": { + "description": "HostPort is the port number *outside* the container.", + "type": "integer" + }, + "network": { + "description": "Network is the network protocol used by the port (tcp, udp, etc).", + "type": "string" + }, + "port": { + "description": "Port is the port number *inside* the container.", + "type": "integer" + } + } + }, + "codersdk.WorkspaceAgentDevcontainer": { + "type": "object", + "properties": { + "agent": { + "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainerAgent" + }, + "config_path": { + "type": "string" + }, + "container": { + "$ref": "#/definitions/codersdk.WorkspaceAgentContainer" + }, + "dirty": { + "type": "boolean" + }, + "error": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "status": { + "description": "Additional runtime fields.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainerStatus" + } + ] + }, + "workspace_folder": { + "type": "string" + } + } + }, + "codersdk.WorkspaceAgentDevcontainerAgent": { + "type": "object", + "properties": { + "directory": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + } + }, + "codersdk.WorkspaceAgentDevcontainerStatus": { + "type": "string", + "enum": ["running", "stopped", "starting", "error"], + "x-enum-varnames": [ + "WorkspaceAgentDevcontainerStatusRunning", + "WorkspaceAgentDevcontainerStatusStopped", + "WorkspaceAgentDevcontainerStatusStarting", + "WorkspaceAgentDevcontainerStatusError" + ] + }, + "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.WorkspaceAgentListContainersResponse": { + "type": "object", + "properties": { + "containers": { + "description": "Containers is a list of containers visible to the workspace agent.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceAgentContainer" + } + }, + "devcontainers": { + "description": "Devcontainers is a list of devcontainers visible to the workspace agent.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceAgentDevcontainer" + } + }, + "warnings": { + "description": "Warnings is a list of warnings that may have occurred during the\nprocess of listing containers. This should not include fatal errors.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "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.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", "organization", "public"], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceAgentPortShareLevel" + } + ] + }, + "workspace_id": { + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.WorkspaceAgentPortShareLevel": { + "type": "string", + "enum": ["owner", "authenticated", "organization", "public"], + "x-enum-varnames": [ + "WorkspaceAgentPortShareLevelOwner", + "WorkspaceAgentPortShareLevelAuthenticated", + "WorkspaceAgentPortShareLevelOrganization", + "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" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "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" + }, + "group": { + "type": "string" + }, + "health": { + "$ref": "#/definitions/codersdk.WorkspaceAppHealth" + }, + "healthcheck": { + "description": "Healthcheck specifies the configuration for checking app health.", + "allOf": [ + { + "$ref": "#/definitions/codersdk.Healthcheck" + } + ] + }, + "hidden": { + "type": "boolean" + }, + "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" + }, + "open_in": { + "$ref": "#/definitions/codersdk.WorkspaceAppOpenIn" + }, + "sharing_level": { + "enum": ["owner", "authenticated", "organization", "public"], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceAppSharingLevel" + } + ] + }, + "slug": { + "description": "Slug is a unique identifier within the agent.", + "type": "string" + }, + "statuses": { + "description": "Statuses is a list of statuses for the app.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceAppStatus" + } + }, + "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" + }, + "tooltip": { + "description": "Tooltip is an optional markdown supported field that is displayed\nwhen hovering over workspace apps in the UI.", + "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.WorkspaceAppOpenIn": { + "type": "string", + "enum": ["slim-window", "tab"], + "x-enum-varnames": [ + "WorkspaceAppOpenInSlimWindow", + "WorkspaceAppOpenInTab" + ] + }, + "codersdk.WorkspaceAppSharingLevel": { + "type": "string", + "enum": ["owner", "authenticated", "organization", "public"], + "x-enum-varnames": [ + "WorkspaceAppSharingLevelOwner", + "WorkspaceAppSharingLevelAuthenticated", + "WorkspaceAppSharingLevelOrganization", + "WorkspaceAppSharingLevelPublic" + ] + }, + "codersdk.WorkspaceAppStatus": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "format": "uuid" + }, + "app_id": { + "type": "string", + "format": "uuid" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "icon": { + "description": "Deprecated: This field is unused and will be removed in a future version.\nIcon is an external URL to an icon that will be rendered in the UI.", + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "message": { + "type": "string" + }, + "needs_user_attention": { + "description": "Deprecated: This field is unused and will be removed in a future version.\nNeedsUserAttention specifies whether the status needs user attention.", + "type": "boolean" + }, + "state": { + "$ref": "#/definitions/codersdk.WorkspaceAppStatusState" + }, + "uri": { + "description": "URI is the URI of the resource that the status is for.\ne.g. https://github.com/org/repo/pull/123\ne.g. file:///path/to/file", + "type": "string" + }, + "workspace_id": { + "type": "string", + "format": "uuid" + } + } + }, + "codersdk.WorkspaceAppStatusState": { + "type": "string", + "enum": ["working", "idle", "complete", "failure"], + "x-enum-varnames": [ + "WorkspaceAppStatusStateWorking", + "WorkspaceAppStatusStateIdle", + "WorkspaceAppStatusStateComplete", + "WorkspaceAppStatusStateFailure" + ] + }, + "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" + }, + "has_ai_task": { + "description": "Deprecated: This field has been deprecated in favor of Task WorkspaceID.", + "type": "boolean" + }, + "has_external_agent": { + "type": "boolean" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "initiator_id": { + "type": "string", + "format": "uuid" + }, + "initiator_name": { + "type": "string" + }, + "job": { + "$ref": "#/definitions/codersdk.ProvisionerJob" + }, + "matched_provisioners": { + "$ref": "#/definitions/codersdk.MatchedProvisioners" + }, + "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" + }, + "template_version_preset_id": { + "type": "string", + "format": "uuid" + }, + "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": { + "description": "WorkspaceOwnerName is the username of the owner of the workspace.", + "type": "string" + } + } + }, + "codersdk.WorkspaceBuildParameter": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "codersdk.WorkspaceBuildTimings": { + "type": "object", + "properties": { + "agent_connection_timings": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AgentConnectionTiming" + } + }, + "agent_script_timings": { + "description": "TODO: Consolidate agent-related timing metrics into a single struct when\nupdating the API version", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.AgentScriptTiming" + } + }, + "provisioner_timings": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ProvisionerTiming" + } + } + } + }, + "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.WorkspaceGroup": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.ReducedUser" + } + }, + "name": { + "type": "string" + }, + "organization_display_name": { + "type": "string" + }, + "organization_id": { + "type": "string", + "format": "uuid" + }, + "organization_name": { + "type": "string" + }, + "quota_allowance": { + "type": "integer" + }, + "role": { + "enum": ["admin", "use"], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceRole" + } + ] + }, + "source": { + "$ref": "#/definitions/codersdk.GroupSource" + }, + "total_member_count": { + "description": "How many members are in this group. Shows the total count,\neven if the user is not authorized to read group member details.\nMay be greater than `len(Group.Members)`.", + "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.WorkspaceRole": { + "type": "string", + "enum": ["admin", "use", ""], + "x-enum-varnames": [ + "WorkspaceRoleAdmin", + "WorkspaceRoleUse", + "WorkspaceRoleDeleted" + ] + }, + "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.WorkspaceUser": { + "type": "object", + "required": ["id", "username"], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "role": { + "enum": ["admin", "use"], + "allOf": [ + { + "$ref": "#/definitions/codersdk.WorkspaceRole" + } + ] + }, + "username": { + "type": "string" + } + } + }, + "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" + }, + "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" + }, + "expires_in": { + "description": "ExpiresIn is the OAuth2 wire format \"expires_in\" field,\nwhich specifies how many seconds later the token expires,\nrelative to an unknown time base approximately around \"now\".\nIt is the application's responsibility to populate\n`Expiry` from `ExpiresIn` when required.", + "type": "integer" + }, + "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" + } + } + }, + "regexp.Regexp": { + "type": "object" + }, + "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 (see Hostname and Port methods)", + "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" + }, + "uuid.NullUUID": { + "type": "object", + "properties": { + "uuid": { + "type": "string" + }, + "valid": { + "description": "Valid is true if UUID is not NULL", + "type": "boolean" + } + } + }, + "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" + }, + "hostname_suffix": { + "type": "string" + } + } + }, + "wsproxysdk.CryptoKeysResponse": { + "type": "object", + "properties": { + "crypto_keys": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.CryptoKey" + } + } + } + }, + "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": { + "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": { + "Authorization": { + "type": "apiKey", + "name": "Authorizaiton", + "in": "header" + }, + "CoderSessionToken": { + "type": "apiKey", + "name": "Coder-Session-Token", + "in": "header" + } + } +} From 64e5b410849b4151a5784bc0925e9403a81dc1e1 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Sat, 13 Dec 2025 15:00:18 +0000 Subject: [PATCH 08/22] fix: remove `dbmock.go` from root --- dbmock.go | 8097 ----------------------------------------------------- 1 file changed, 8097 deletions(-) delete mode 100644 dbmock.go diff --git a/dbmock.go b/dbmock.go deleted file mode 100644 index a675d00b82ca5..0000000000000 --- a/dbmock.go +++ /dev/null @@ -1,8097 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: github.com/coder/coder/v2/coderd/database (interfaces: Store) -// -// Generated by this command: -// -// mockgen -destination ./dbmock.go -package dbmock github.com/coder/coder/v2/coderd/database Store -// - -// Package dbmock is a generated GoMock package. -package dbmock - -import ( - context "context" - reflect "reflect" - time "time" - - database "github.com/coder/coder/v2/coderd/database" - rbac "github.com/coder/coder/v2/coderd/rbac" - uuid "github.com/google/uuid" - gomock "go.uber.org/mock/gomock" -) - -// MockStore is a mock of Store interface. -type MockStore struct { - ctrl *gomock.Controller - recorder *MockStoreMockRecorder - isgomock struct{} -} - -// MockStoreMockRecorder is the mock recorder for MockStore. -type MockStoreMockRecorder struct { - mock *MockStore -} - -// NewMockStore creates a new mock instance. -func NewMockStore(ctrl *gomock.Controller) *MockStore { - mock := &MockStore{ctrl: ctrl} - mock.recorder = &MockStoreMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockStore) EXPECT() *MockStoreMockRecorder { - return m.recorder -} - -// AcquireLock mocks base method. -func (m *MockStore) AcquireLock(ctx context.Context, pgAdvisoryXactLock int64) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AcquireLock", ctx, pgAdvisoryXactLock) - ret0, _ := ret[0].(error) - return ret0 -} - -// AcquireLock indicates an expected call of AcquireLock. -func (mr *MockStoreMockRecorder) AcquireLock(ctx, pgAdvisoryXactLock any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AcquireLock", reflect.TypeOf((*MockStore)(nil).AcquireLock), ctx, pgAdvisoryXactLock) -} - -// AcquireNotificationMessages mocks base method. -func (m *MockStore) AcquireNotificationMessages(ctx context.Context, arg database.AcquireNotificationMessagesParams) ([]database.AcquireNotificationMessagesRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AcquireNotificationMessages", ctx, arg) - ret0, _ := ret[0].([]database.AcquireNotificationMessagesRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// AcquireNotificationMessages indicates an expected call of AcquireNotificationMessages. -func (mr *MockStoreMockRecorder) AcquireNotificationMessages(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AcquireNotificationMessages", reflect.TypeOf((*MockStore)(nil).AcquireNotificationMessages), ctx, arg) -} - -// AcquireProvisionerJob mocks base method. -func (m *MockStore) AcquireProvisionerJob(ctx context.Context, arg database.AcquireProvisionerJobParams) (database.ProvisionerJob, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AcquireProvisionerJob", ctx, arg) - ret0, _ := ret[0].(database.ProvisionerJob) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// AcquireProvisionerJob indicates an expected call of AcquireProvisionerJob. -func (mr *MockStoreMockRecorder) AcquireProvisionerJob(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AcquireProvisionerJob", reflect.TypeOf((*MockStore)(nil).AcquireProvisionerJob), ctx, arg) -} - -// ActivityBumpWorkspace mocks base method. -func (m *MockStore) ActivityBumpWorkspace(ctx context.Context, arg database.ActivityBumpWorkspaceParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ActivityBumpWorkspace", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// ActivityBumpWorkspace indicates an expected call of ActivityBumpWorkspace. -func (mr *MockStoreMockRecorder) ActivityBumpWorkspace(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ActivityBumpWorkspace", reflect.TypeOf((*MockStore)(nil).ActivityBumpWorkspace), ctx, arg) -} - -// AllUserIDs mocks base method. -func (m *MockStore) AllUserIDs(ctx context.Context, includeSystem bool) ([]uuid.UUID, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AllUserIDs", ctx, includeSystem) - ret0, _ := ret[0].([]uuid.UUID) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// AllUserIDs indicates an expected call of AllUserIDs. -func (mr *MockStoreMockRecorder) AllUserIDs(ctx, includeSystem any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AllUserIDs", reflect.TypeOf((*MockStore)(nil).AllUserIDs), ctx, includeSystem) -} - -// ArchiveUnusedTemplateVersions mocks base method. -func (m *MockStore) ArchiveUnusedTemplateVersions(ctx context.Context, arg database.ArchiveUnusedTemplateVersionsParams) ([]uuid.UUID, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ArchiveUnusedTemplateVersions", ctx, arg) - ret0, _ := ret[0].([]uuid.UUID) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ArchiveUnusedTemplateVersions indicates an expected call of ArchiveUnusedTemplateVersions. -func (mr *MockStoreMockRecorder) ArchiveUnusedTemplateVersions(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ArchiveUnusedTemplateVersions", reflect.TypeOf((*MockStore)(nil).ArchiveUnusedTemplateVersions), ctx, arg) -} - -// BatchUpdateWorkspaceLastUsedAt mocks base method. -func (m *MockStore) BatchUpdateWorkspaceLastUsedAt(ctx context.Context, arg database.BatchUpdateWorkspaceLastUsedAtParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchUpdateWorkspaceLastUsedAt", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// BatchUpdateWorkspaceLastUsedAt indicates an expected call of BatchUpdateWorkspaceLastUsedAt. -func (mr *MockStoreMockRecorder) BatchUpdateWorkspaceLastUsedAt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchUpdateWorkspaceLastUsedAt", reflect.TypeOf((*MockStore)(nil).BatchUpdateWorkspaceLastUsedAt), ctx, arg) -} - -// BatchUpdateWorkspaceNextStartAt mocks base method. -func (m *MockStore) BatchUpdateWorkspaceNextStartAt(ctx context.Context, arg database.BatchUpdateWorkspaceNextStartAtParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchUpdateWorkspaceNextStartAt", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// BatchUpdateWorkspaceNextStartAt indicates an expected call of BatchUpdateWorkspaceNextStartAt. -func (mr *MockStoreMockRecorder) BatchUpdateWorkspaceNextStartAt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchUpdateWorkspaceNextStartAt", reflect.TypeOf((*MockStore)(nil).BatchUpdateWorkspaceNextStartAt), ctx, arg) -} - -// BulkMarkNotificationMessagesFailed mocks base method. -func (m *MockStore) BulkMarkNotificationMessagesFailed(ctx context.Context, arg database.BulkMarkNotificationMessagesFailedParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BulkMarkNotificationMessagesFailed", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// BulkMarkNotificationMessagesFailed indicates an expected call of BulkMarkNotificationMessagesFailed. -func (mr *MockStoreMockRecorder) BulkMarkNotificationMessagesFailed(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BulkMarkNotificationMessagesFailed", reflect.TypeOf((*MockStore)(nil).BulkMarkNotificationMessagesFailed), ctx, arg) -} - -// BulkMarkNotificationMessagesSent mocks base method. -func (m *MockStore) BulkMarkNotificationMessagesSent(ctx context.Context, arg database.BulkMarkNotificationMessagesSentParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BulkMarkNotificationMessagesSent", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// BulkMarkNotificationMessagesSent indicates an expected call of BulkMarkNotificationMessagesSent. -func (mr *MockStoreMockRecorder) BulkMarkNotificationMessagesSent(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BulkMarkNotificationMessagesSent", reflect.TypeOf((*MockStore)(nil).BulkMarkNotificationMessagesSent), ctx, arg) -} - -// CalculateAIBridgeInterceptionsTelemetrySummary mocks base method. -func (m *MockStore) CalculateAIBridgeInterceptionsTelemetrySummary(ctx context.Context, arg database.CalculateAIBridgeInterceptionsTelemetrySummaryParams) (database.CalculateAIBridgeInterceptionsTelemetrySummaryRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CalculateAIBridgeInterceptionsTelemetrySummary", ctx, arg) - ret0, _ := ret[0].(database.CalculateAIBridgeInterceptionsTelemetrySummaryRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CalculateAIBridgeInterceptionsTelemetrySummary indicates an expected call of CalculateAIBridgeInterceptionsTelemetrySummary. -func (mr *MockStoreMockRecorder) CalculateAIBridgeInterceptionsTelemetrySummary(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CalculateAIBridgeInterceptionsTelemetrySummary", reflect.TypeOf((*MockStore)(nil).CalculateAIBridgeInterceptionsTelemetrySummary), ctx, arg) -} - -// ClaimPrebuiltWorkspace mocks base method. -func (m *MockStore) ClaimPrebuiltWorkspace(ctx context.Context, arg database.ClaimPrebuiltWorkspaceParams) (database.ClaimPrebuiltWorkspaceRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ClaimPrebuiltWorkspace", ctx, arg) - ret0, _ := ret[0].(database.ClaimPrebuiltWorkspaceRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ClaimPrebuiltWorkspace indicates an expected call of ClaimPrebuiltWorkspace. -func (mr *MockStoreMockRecorder) ClaimPrebuiltWorkspace(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ClaimPrebuiltWorkspace", reflect.TypeOf((*MockStore)(nil).ClaimPrebuiltWorkspace), ctx, arg) -} - -// CleanTailnetCoordinators mocks base method. -func (m *MockStore) CleanTailnetCoordinators(ctx context.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CleanTailnetCoordinators", ctx) - ret0, _ := ret[0].(error) - return ret0 -} - -// CleanTailnetCoordinators indicates an expected call of CleanTailnetCoordinators. -func (mr *MockStoreMockRecorder) CleanTailnetCoordinators(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CleanTailnetCoordinators", reflect.TypeOf((*MockStore)(nil).CleanTailnetCoordinators), ctx) -} - -// CleanTailnetLostPeers mocks base method. -func (m *MockStore) CleanTailnetLostPeers(ctx context.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CleanTailnetLostPeers", ctx) - ret0, _ := ret[0].(error) - return ret0 -} - -// CleanTailnetLostPeers indicates an expected call of CleanTailnetLostPeers. -func (mr *MockStoreMockRecorder) CleanTailnetLostPeers(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CleanTailnetLostPeers", reflect.TypeOf((*MockStore)(nil).CleanTailnetLostPeers), ctx) -} - -// CleanTailnetTunnels mocks base method. -func (m *MockStore) CleanTailnetTunnels(ctx context.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CleanTailnetTunnels", ctx) - ret0, _ := ret[0].(error) - return ret0 -} - -// CleanTailnetTunnels indicates an expected call of CleanTailnetTunnels. -func (mr *MockStoreMockRecorder) CleanTailnetTunnels(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CleanTailnetTunnels", reflect.TypeOf((*MockStore)(nil).CleanTailnetTunnels), ctx) -} - -// CountAIBridgeInterceptions mocks base method. -func (m *MockStore) CountAIBridgeInterceptions(ctx context.Context, arg database.CountAIBridgeInterceptionsParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CountAIBridgeInterceptions", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CountAIBridgeInterceptions indicates an expected call of CountAIBridgeInterceptions. -func (mr *MockStoreMockRecorder) CountAIBridgeInterceptions(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountAIBridgeInterceptions", reflect.TypeOf((*MockStore)(nil).CountAIBridgeInterceptions), ctx, arg) -} - -// CountAuditLogs mocks base method. -func (m *MockStore) CountAuditLogs(ctx context.Context, arg database.CountAuditLogsParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CountAuditLogs", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CountAuditLogs indicates an expected call of CountAuditLogs. -func (mr *MockStoreMockRecorder) CountAuditLogs(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountAuditLogs", reflect.TypeOf((*MockStore)(nil).CountAuditLogs), ctx, arg) -} - -// CountAuthorizedAIBridgeInterceptions mocks base method. -func (m *MockStore) CountAuthorizedAIBridgeInterceptions(ctx context.Context, arg database.CountAIBridgeInterceptionsParams, prepared rbac.PreparedAuthorized) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CountAuthorizedAIBridgeInterceptions", ctx, arg, prepared) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CountAuthorizedAIBridgeInterceptions indicates an expected call of CountAuthorizedAIBridgeInterceptions. -func (mr *MockStoreMockRecorder) CountAuthorizedAIBridgeInterceptions(ctx, arg, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountAuthorizedAIBridgeInterceptions", reflect.TypeOf((*MockStore)(nil).CountAuthorizedAIBridgeInterceptions), ctx, arg, prepared) -} - -// CountAuthorizedAuditLogs mocks base method. -func (m *MockStore) CountAuthorizedAuditLogs(ctx context.Context, arg database.CountAuditLogsParams, prepared rbac.PreparedAuthorized) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CountAuthorizedAuditLogs", ctx, arg, prepared) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CountAuthorizedAuditLogs indicates an expected call of CountAuthorizedAuditLogs. -func (mr *MockStoreMockRecorder) CountAuthorizedAuditLogs(ctx, arg, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountAuthorizedAuditLogs", reflect.TypeOf((*MockStore)(nil).CountAuthorizedAuditLogs), ctx, arg, prepared) -} - -// CountAuthorizedConnectionLogs mocks base method. -func (m *MockStore) CountAuthorizedConnectionLogs(ctx context.Context, arg database.CountConnectionLogsParams, prepared rbac.PreparedAuthorized) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CountAuthorizedConnectionLogs", ctx, arg, prepared) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CountAuthorizedConnectionLogs indicates an expected call of CountAuthorizedConnectionLogs. -func (mr *MockStoreMockRecorder) CountAuthorizedConnectionLogs(ctx, arg, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountAuthorizedConnectionLogs", reflect.TypeOf((*MockStore)(nil).CountAuthorizedConnectionLogs), ctx, arg, prepared) -} - -// CountConnectionLogs mocks base method. -func (m *MockStore) CountConnectionLogs(ctx context.Context, arg database.CountConnectionLogsParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CountConnectionLogs", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CountConnectionLogs indicates an expected call of CountConnectionLogs. -func (mr *MockStoreMockRecorder) CountConnectionLogs(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountConnectionLogs", reflect.TypeOf((*MockStore)(nil).CountConnectionLogs), ctx, arg) -} - -// CountInProgressPrebuilds mocks base method. -func (m *MockStore) CountInProgressPrebuilds(ctx context.Context) ([]database.CountInProgressPrebuildsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CountInProgressPrebuilds", ctx) - ret0, _ := ret[0].([]database.CountInProgressPrebuildsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CountInProgressPrebuilds indicates an expected call of CountInProgressPrebuilds. -func (mr *MockStoreMockRecorder) CountInProgressPrebuilds(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountInProgressPrebuilds", reflect.TypeOf((*MockStore)(nil).CountInProgressPrebuilds), ctx) -} - -// CountPendingNonActivePrebuilds mocks base method. -func (m *MockStore) CountPendingNonActivePrebuilds(ctx context.Context) ([]database.CountPendingNonActivePrebuildsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CountPendingNonActivePrebuilds", ctx) - ret0, _ := ret[0].([]database.CountPendingNonActivePrebuildsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CountPendingNonActivePrebuilds indicates an expected call of CountPendingNonActivePrebuilds. -func (mr *MockStoreMockRecorder) CountPendingNonActivePrebuilds(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountPendingNonActivePrebuilds", reflect.TypeOf((*MockStore)(nil).CountPendingNonActivePrebuilds), ctx) -} - -// CountUnreadInboxNotificationsByUserID mocks base method. -func (m *MockStore) CountUnreadInboxNotificationsByUserID(ctx context.Context, userID uuid.UUID) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CountUnreadInboxNotificationsByUserID", ctx, userID) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CountUnreadInboxNotificationsByUserID indicates an expected call of CountUnreadInboxNotificationsByUserID. -func (mr *MockStoreMockRecorder) CountUnreadInboxNotificationsByUserID(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountUnreadInboxNotificationsByUserID", reflect.TypeOf((*MockStore)(nil).CountUnreadInboxNotificationsByUserID), ctx, userID) -} - -// CreateUserSecret mocks base method. -func (m *MockStore) CreateUserSecret(ctx context.Context, arg database.CreateUserSecretParams) (database.UserSecret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateUserSecret", ctx, arg) - ret0, _ := ret[0].(database.UserSecret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateUserSecret indicates an expected call of CreateUserSecret. -func (mr *MockStoreMockRecorder) CreateUserSecret(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateUserSecret", reflect.TypeOf((*MockStore)(nil).CreateUserSecret), ctx, arg) -} - -// CustomRoles mocks base method. -func (m *MockStore) CustomRoles(ctx context.Context, arg database.CustomRolesParams) ([]database.CustomRole, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CustomRoles", ctx, arg) - ret0, _ := ret[0].([]database.CustomRole) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CustomRoles indicates an expected call of CustomRoles. -func (mr *MockStoreMockRecorder) CustomRoles(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CustomRoles", reflect.TypeOf((*MockStore)(nil).CustomRoles), ctx, arg) -} - -// DeleteAPIKeyByID mocks base method. -func (m *MockStore) DeleteAPIKeyByID(ctx context.Context, id string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAPIKeyByID", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteAPIKeyByID indicates an expected call of DeleteAPIKeyByID. -func (mr *MockStoreMockRecorder) DeleteAPIKeyByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAPIKeyByID", reflect.TypeOf((*MockStore)(nil).DeleteAPIKeyByID), ctx, id) -} - -// DeleteAPIKeysByUserID mocks base method. -func (m *MockStore) DeleteAPIKeysByUserID(ctx context.Context, userID uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAPIKeysByUserID", ctx, userID) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteAPIKeysByUserID indicates an expected call of DeleteAPIKeysByUserID. -func (mr *MockStoreMockRecorder) DeleteAPIKeysByUserID(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAPIKeysByUserID", reflect.TypeOf((*MockStore)(nil).DeleteAPIKeysByUserID), ctx, userID) -} - -// DeleteAllTailnetClientSubscriptions mocks base method. -func (m *MockStore) DeleteAllTailnetClientSubscriptions(ctx context.Context, arg database.DeleteAllTailnetClientSubscriptionsParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAllTailnetClientSubscriptions", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteAllTailnetClientSubscriptions indicates an expected call of DeleteAllTailnetClientSubscriptions. -func (mr *MockStoreMockRecorder) DeleteAllTailnetClientSubscriptions(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllTailnetClientSubscriptions", reflect.TypeOf((*MockStore)(nil).DeleteAllTailnetClientSubscriptions), ctx, arg) -} - -// DeleteAllTailnetTunnels mocks base method. -func (m *MockStore) DeleteAllTailnetTunnels(ctx context.Context, arg database.DeleteAllTailnetTunnelsParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAllTailnetTunnels", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteAllTailnetTunnels indicates an expected call of DeleteAllTailnetTunnels. -func (mr *MockStoreMockRecorder) DeleteAllTailnetTunnels(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllTailnetTunnels", reflect.TypeOf((*MockStore)(nil).DeleteAllTailnetTunnels), ctx, arg) -} - -// DeleteAllWebpushSubscriptions mocks base method. -func (m *MockStore) DeleteAllWebpushSubscriptions(ctx context.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAllWebpushSubscriptions", ctx) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteAllWebpushSubscriptions indicates an expected call of DeleteAllWebpushSubscriptions. -func (mr *MockStoreMockRecorder) DeleteAllWebpushSubscriptions(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllWebpushSubscriptions", reflect.TypeOf((*MockStore)(nil).DeleteAllWebpushSubscriptions), ctx) -} - -// DeleteApplicationConnectAPIKeysByUserID mocks base method. -func (m *MockStore) DeleteApplicationConnectAPIKeysByUserID(ctx context.Context, userID uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteApplicationConnectAPIKeysByUserID", ctx, userID) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteApplicationConnectAPIKeysByUserID indicates an expected call of DeleteApplicationConnectAPIKeysByUserID. -func (mr *MockStoreMockRecorder) DeleteApplicationConnectAPIKeysByUserID(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteApplicationConnectAPIKeysByUserID", reflect.TypeOf((*MockStore)(nil).DeleteApplicationConnectAPIKeysByUserID), ctx, userID) -} - -// DeleteCoordinator mocks base method. -func (m *MockStore) DeleteCoordinator(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteCoordinator", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteCoordinator indicates an expected call of DeleteCoordinator. -func (mr *MockStoreMockRecorder) DeleteCoordinator(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCoordinator", reflect.TypeOf((*MockStore)(nil).DeleteCoordinator), ctx, id) -} - -// DeleteCryptoKey mocks base method. -func (m *MockStore) DeleteCryptoKey(ctx context.Context, arg database.DeleteCryptoKeyParams) (database.CryptoKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteCryptoKey", ctx, arg) - ret0, _ := ret[0].(database.CryptoKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteCryptoKey indicates an expected call of DeleteCryptoKey. -func (mr *MockStoreMockRecorder) DeleteCryptoKey(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCryptoKey", reflect.TypeOf((*MockStore)(nil).DeleteCryptoKey), ctx, arg) -} - -// DeleteCustomRole mocks base method. -func (m *MockStore) DeleteCustomRole(ctx context.Context, arg database.DeleteCustomRoleParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteCustomRole", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteCustomRole indicates an expected call of DeleteCustomRole. -func (mr *MockStoreMockRecorder) DeleteCustomRole(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCustomRole", reflect.TypeOf((*MockStore)(nil).DeleteCustomRole), ctx, arg) -} - -// DeleteExpiredAPIKeys mocks base method. -func (m *MockStore) DeleteExpiredAPIKeys(ctx context.Context, arg database.DeleteExpiredAPIKeysParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteExpiredAPIKeys", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteExpiredAPIKeys indicates an expected call of DeleteExpiredAPIKeys. -func (mr *MockStoreMockRecorder) DeleteExpiredAPIKeys(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExpiredAPIKeys", reflect.TypeOf((*MockStore)(nil).DeleteExpiredAPIKeys), ctx, arg) -} - -// DeleteExternalAuthLink mocks base method. -func (m *MockStore) DeleteExternalAuthLink(ctx context.Context, arg database.DeleteExternalAuthLinkParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteExternalAuthLink", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteExternalAuthLink indicates an expected call of DeleteExternalAuthLink. -func (mr *MockStoreMockRecorder) DeleteExternalAuthLink(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExternalAuthLink", reflect.TypeOf((*MockStore)(nil).DeleteExternalAuthLink), ctx, arg) -} - -// DeleteGitSSHKey mocks base method. -func (m *MockStore) DeleteGitSSHKey(ctx context.Context, userID uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteGitSSHKey", ctx, userID) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteGitSSHKey indicates an expected call of DeleteGitSSHKey. -func (mr *MockStoreMockRecorder) DeleteGitSSHKey(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteGitSSHKey", reflect.TypeOf((*MockStore)(nil).DeleteGitSSHKey), ctx, userID) -} - -// DeleteGroupByID mocks base method. -func (m *MockStore) DeleteGroupByID(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteGroupByID", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteGroupByID indicates an expected call of DeleteGroupByID. -func (mr *MockStoreMockRecorder) DeleteGroupByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteGroupByID", reflect.TypeOf((*MockStore)(nil).DeleteGroupByID), ctx, id) -} - -// DeleteGroupMemberFromGroup mocks base method. -func (m *MockStore) DeleteGroupMemberFromGroup(ctx context.Context, arg database.DeleteGroupMemberFromGroupParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteGroupMemberFromGroup", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteGroupMemberFromGroup indicates an expected call of DeleteGroupMemberFromGroup. -func (mr *MockStoreMockRecorder) DeleteGroupMemberFromGroup(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteGroupMemberFromGroup", reflect.TypeOf((*MockStore)(nil).DeleteGroupMemberFromGroup), ctx, arg) -} - -// DeleteLicense mocks base method. -func (m *MockStore) DeleteLicense(ctx context.Context, id int32) (int32, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteLicense", ctx, id) - ret0, _ := ret[0].(int32) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteLicense indicates an expected call of DeleteLicense. -func (mr *MockStoreMockRecorder) DeleteLicense(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLicense", reflect.TypeOf((*MockStore)(nil).DeleteLicense), ctx, id) -} - -// DeleteOAuth2ProviderAppByClientID mocks base method. -func (m *MockStore) DeleteOAuth2ProviderAppByClientID(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppByClientID", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOAuth2ProviderAppByClientID indicates an expected call of DeleteOAuth2ProviderAppByClientID. -func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppByClientID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppByClientID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppByClientID), ctx, id) -} - -// DeleteOAuth2ProviderAppByID mocks base method. -func (m *MockStore) DeleteOAuth2ProviderAppByID(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppByID", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOAuth2ProviderAppByID indicates an expected call of DeleteOAuth2ProviderAppByID. -func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppByID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppByID), ctx, id) -} - -// DeleteOAuth2ProviderAppCodeByID mocks base method. -func (m *MockStore) DeleteOAuth2ProviderAppCodeByID(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppCodeByID", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOAuth2ProviderAppCodeByID indicates an expected call of DeleteOAuth2ProviderAppCodeByID. -func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppCodeByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppCodeByID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppCodeByID), ctx, id) -} - -// DeleteOAuth2ProviderAppCodesByAppAndUserID mocks base method. -func (m *MockStore) DeleteOAuth2ProviderAppCodesByAppAndUserID(ctx context.Context, arg database.DeleteOAuth2ProviderAppCodesByAppAndUserIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppCodesByAppAndUserID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOAuth2ProviderAppCodesByAppAndUserID indicates an expected call of DeleteOAuth2ProviderAppCodesByAppAndUserID. -func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppCodesByAppAndUserID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppCodesByAppAndUserID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppCodesByAppAndUserID), ctx, arg) -} - -// DeleteOAuth2ProviderAppSecretByID mocks base method. -func (m *MockStore) DeleteOAuth2ProviderAppSecretByID(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppSecretByID", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOAuth2ProviderAppSecretByID indicates an expected call of DeleteOAuth2ProviderAppSecretByID. -func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppSecretByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppSecretByID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppSecretByID), ctx, id) -} - -// DeleteOAuth2ProviderAppTokensByAppAndUserID mocks base method. -func (m *MockStore) DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx context.Context, arg database.DeleteOAuth2ProviderAppTokensByAppAndUserIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOAuth2ProviderAppTokensByAppAndUserID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOAuth2ProviderAppTokensByAppAndUserID indicates an expected call of DeleteOAuth2ProviderAppTokensByAppAndUserID. -func (mr *MockStoreMockRecorder) DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOAuth2ProviderAppTokensByAppAndUserID", reflect.TypeOf((*MockStore)(nil).DeleteOAuth2ProviderAppTokensByAppAndUserID), ctx, arg) -} - -// DeleteOldAIBridgeRecords mocks base method. -func (m *MockStore) DeleteOldAIBridgeRecords(ctx context.Context, beforeTime time.Time) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOldAIBridgeRecords", ctx, beforeTime) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteOldAIBridgeRecords indicates an expected call of DeleteOldAIBridgeRecords. -func (mr *MockStoreMockRecorder) DeleteOldAIBridgeRecords(ctx, beforeTime any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldAIBridgeRecords", reflect.TypeOf((*MockStore)(nil).DeleteOldAIBridgeRecords), ctx, beforeTime) -} - -// DeleteOldAuditLogConnectionEvents mocks base method. -func (m *MockStore) DeleteOldAuditLogConnectionEvents(ctx context.Context, arg database.DeleteOldAuditLogConnectionEventsParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOldAuditLogConnectionEvents", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOldAuditLogConnectionEvents indicates an expected call of DeleteOldAuditLogConnectionEvents. -func (mr *MockStoreMockRecorder) DeleteOldAuditLogConnectionEvents(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldAuditLogConnectionEvents", reflect.TypeOf((*MockStore)(nil).DeleteOldAuditLogConnectionEvents), ctx, arg) -} - -// DeleteOldAuditLogs mocks base method. -func (m *MockStore) DeleteOldAuditLogs(ctx context.Context, arg database.DeleteOldAuditLogsParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOldAuditLogs", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteOldAuditLogs indicates an expected call of DeleteOldAuditLogs. -func (mr *MockStoreMockRecorder) DeleteOldAuditLogs(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldAuditLogs", reflect.TypeOf((*MockStore)(nil).DeleteOldAuditLogs), ctx, arg) -} - -// DeleteOldConnectionLogs mocks base method. -func (m *MockStore) DeleteOldConnectionLogs(ctx context.Context, arg database.DeleteOldConnectionLogsParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOldConnectionLogs", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteOldConnectionLogs indicates an expected call of DeleteOldConnectionLogs. -func (mr *MockStoreMockRecorder) DeleteOldConnectionLogs(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldConnectionLogs", reflect.TypeOf((*MockStore)(nil).DeleteOldConnectionLogs), ctx, arg) -} - -// DeleteOldNotificationMessages mocks base method. -func (m *MockStore) DeleteOldNotificationMessages(ctx context.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOldNotificationMessages", ctx) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOldNotificationMessages indicates an expected call of DeleteOldNotificationMessages. -func (mr *MockStoreMockRecorder) DeleteOldNotificationMessages(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldNotificationMessages", reflect.TypeOf((*MockStore)(nil).DeleteOldNotificationMessages), ctx) -} - -// DeleteOldProvisionerDaemons mocks base method. -func (m *MockStore) DeleteOldProvisionerDaemons(ctx context.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOldProvisionerDaemons", ctx) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOldProvisionerDaemons indicates an expected call of DeleteOldProvisionerDaemons. -func (mr *MockStoreMockRecorder) DeleteOldProvisionerDaemons(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldProvisionerDaemons", reflect.TypeOf((*MockStore)(nil).DeleteOldProvisionerDaemons), ctx) -} - -// DeleteOldTelemetryLocks mocks base method. -func (m *MockStore) DeleteOldTelemetryLocks(ctx context.Context, periodEndingAtBefore time.Time) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOldTelemetryLocks", ctx, periodEndingAtBefore) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOldTelemetryLocks indicates an expected call of DeleteOldTelemetryLocks. -func (mr *MockStoreMockRecorder) DeleteOldTelemetryLocks(ctx, periodEndingAtBefore any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldTelemetryLocks", reflect.TypeOf((*MockStore)(nil).DeleteOldTelemetryLocks), ctx, periodEndingAtBefore) -} - -// DeleteOldWorkspaceAgentLogs mocks base method. -func (m *MockStore) DeleteOldWorkspaceAgentLogs(ctx context.Context, threshold time.Time) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOldWorkspaceAgentLogs", ctx, threshold) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteOldWorkspaceAgentLogs indicates an expected call of DeleteOldWorkspaceAgentLogs. -func (mr *MockStoreMockRecorder) DeleteOldWorkspaceAgentLogs(ctx, threshold any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldWorkspaceAgentLogs", reflect.TypeOf((*MockStore)(nil).DeleteOldWorkspaceAgentLogs), ctx, threshold) -} - -// DeleteOldWorkspaceAgentStats mocks base method. -func (m *MockStore) DeleteOldWorkspaceAgentStats(ctx context.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOldWorkspaceAgentStats", ctx) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOldWorkspaceAgentStats indicates an expected call of DeleteOldWorkspaceAgentStats. -func (mr *MockStoreMockRecorder) DeleteOldWorkspaceAgentStats(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldWorkspaceAgentStats", reflect.TypeOf((*MockStore)(nil).DeleteOldWorkspaceAgentStats), ctx) -} - -// DeleteOrganizationMember mocks base method. -func (m *MockStore) DeleteOrganizationMember(ctx context.Context, arg database.DeleteOrganizationMemberParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteOrganizationMember", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteOrganizationMember indicates an expected call of DeleteOrganizationMember. -func (mr *MockStoreMockRecorder) DeleteOrganizationMember(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOrganizationMember", reflect.TypeOf((*MockStore)(nil).DeleteOrganizationMember), ctx, arg) -} - -// DeleteProvisionerKey mocks base method. -func (m *MockStore) DeleteProvisionerKey(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteProvisionerKey", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteProvisionerKey indicates an expected call of DeleteProvisionerKey. -func (mr *MockStoreMockRecorder) DeleteProvisionerKey(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProvisionerKey", reflect.TypeOf((*MockStore)(nil).DeleteProvisionerKey), ctx, id) -} - -// DeleteReplicasUpdatedBefore mocks base method. -func (m *MockStore) DeleteReplicasUpdatedBefore(ctx context.Context, updatedAt time.Time) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteReplicasUpdatedBefore", ctx, updatedAt) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteReplicasUpdatedBefore indicates an expected call of DeleteReplicasUpdatedBefore. -func (mr *MockStoreMockRecorder) DeleteReplicasUpdatedBefore(ctx, updatedAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteReplicasUpdatedBefore", reflect.TypeOf((*MockStore)(nil).DeleteReplicasUpdatedBefore), ctx, updatedAt) -} - -// DeleteRuntimeConfig mocks base method. -func (m *MockStore) DeleteRuntimeConfig(ctx context.Context, key string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteRuntimeConfig", ctx, key) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteRuntimeConfig indicates an expected call of DeleteRuntimeConfig. -func (mr *MockStoreMockRecorder) DeleteRuntimeConfig(ctx, key any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRuntimeConfig", reflect.TypeOf((*MockStore)(nil).DeleteRuntimeConfig), ctx, key) -} - -// DeleteTailnetAgent mocks base method. -func (m *MockStore) DeleteTailnetAgent(ctx context.Context, arg database.DeleteTailnetAgentParams) (database.DeleteTailnetAgentRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteTailnetAgent", ctx, arg) - ret0, _ := ret[0].(database.DeleteTailnetAgentRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteTailnetAgent indicates an expected call of DeleteTailnetAgent. -func (mr *MockStoreMockRecorder) DeleteTailnetAgent(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTailnetAgent", reflect.TypeOf((*MockStore)(nil).DeleteTailnetAgent), ctx, arg) -} - -// DeleteTailnetClient mocks base method. -func (m *MockStore) DeleteTailnetClient(ctx context.Context, arg database.DeleteTailnetClientParams) (database.DeleteTailnetClientRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteTailnetClient", ctx, arg) - ret0, _ := ret[0].(database.DeleteTailnetClientRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteTailnetClient indicates an expected call of DeleteTailnetClient. -func (mr *MockStoreMockRecorder) DeleteTailnetClient(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTailnetClient", reflect.TypeOf((*MockStore)(nil).DeleteTailnetClient), ctx, arg) -} - -// DeleteTailnetClientSubscription mocks base method. -func (m *MockStore) DeleteTailnetClientSubscription(ctx context.Context, arg database.DeleteTailnetClientSubscriptionParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteTailnetClientSubscription", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteTailnetClientSubscription indicates an expected call of DeleteTailnetClientSubscription. -func (mr *MockStoreMockRecorder) DeleteTailnetClientSubscription(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTailnetClientSubscription", reflect.TypeOf((*MockStore)(nil).DeleteTailnetClientSubscription), ctx, arg) -} - -// DeleteTailnetPeer mocks base method. -func (m *MockStore) DeleteTailnetPeer(ctx context.Context, arg database.DeleteTailnetPeerParams) (database.DeleteTailnetPeerRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteTailnetPeer", ctx, arg) - ret0, _ := ret[0].(database.DeleteTailnetPeerRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteTailnetPeer indicates an expected call of DeleteTailnetPeer. -func (mr *MockStoreMockRecorder) DeleteTailnetPeer(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTailnetPeer", reflect.TypeOf((*MockStore)(nil).DeleteTailnetPeer), ctx, arg) -} - -// DeleteTailnetTunnel mocks base method. -func (m *MockStore) DeleteTailnetTunnel(ctx context.Context, arg database.DeleteTailnetTunnelParams) (database.DeleteTailnetTunnelRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteTailnetTunnel", ctx, arg) - ret0, _ := ret[0].(database.DeleteTailnetTunnelRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteTailnetTunnel indicates an expected call of DeleteTailnetTunnel. -func (mr *MockStoreMockRecorder) DeleteTailnetTunnel(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTailnetTunnel", reflect.TypeOf((*MockStore)(nil).DeleteTailnetTunnel), ctx, arg) -} - -// DeleteTask mocks base method. -func (m *MockStore) DeleteTask(ctx context.Context, arg database.DeleteTaskParams) (database.TaskTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteTask", ctx, arg) - ret0, _ := ret[0].(database.TaskTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteTask indicates an expected call of DeleteTask. -func (mr *MockStoreMockRecorder) DeleteTask(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTask", reflect.TypeOf((*MockStore)(nil).DeleteTask), ctx, arg) -} - -// DeleteUserSecret mocks base method. -func (m *MockStore) DeleteUserSecret(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteUserSecret", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteUserSecret indicates an expected call of DeleteUserSecret. -func (mr *MockStoreMockRecorder) DeleteUserSecret(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteUserSecret", reflect.TypeOf((*MockStore)(nil).DeleteUserSecret), ctx, id) -} - -// DeleteWebpushSubscriptionByUserIDAndEndpoint mocks base method. -func (m *MockStore) DeleteWebpushSubscriptionByUserIDAndEndpoint(ctx context.Context, arg database.DeleteWebpushSubscriptionByUserIDAndEndpointParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteWebpushSubscriptionByUserIDAndEndpoint", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteWebpushSubscriptionByUserIDAndEndpoint indicates an expected call of DeleteWebpushSubscriptionByUserIDAndEndpoint. -func (mr *MockStoreMockRecorder) DeleteWebpushSubscriptionByUserIDAndEndpoint(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWebpushSubscriptionByUserIDAndEndpoint", reflect.TypeOf((*MockStore)(nil).DeleteWebpushSubscriptionByUserIDAndEndpoint), ctx, arg) -} - -// DeleteWebpushSubscriptions mocks base method. -func (m *MockStore) DeleteWebpushSubscriptions(ctx context.Context, ids []uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteWebpushSubscriptions", ctx, ids) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteWebpushSubscriptions indicates an expected call of DeleteWebpushSubscriptions. -func (mr *MockStoreMockRecorder) DeleteWebpushSubscriptions(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWebpushSubscriptions", reflect.TypeOf((*MockStore)(nil).DeleteWebpushSubscriptions), ctx, ids) -} - -// DeleteWorkspaceACLByID mocks base method. -func (m *MockStore) DeleteWorkspaceACLByID(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteWorkspaceACLByID", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteWorkspaceACLByID indicates an expected call of DeleteWorkspaceACLByID. -func (mr *MockStoreMockRecorder) DeleteWorkspaceACLByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWorkspaceACLByID", reflect.TypeOf((*MockStore)(nil).DeleteWorkspaceACLByID), ctx, id) -} - -// DeleteWorkspaceAgentPortShare mocks base method. -func (m *MockStore) DeleteWorkspaceAgentPortShare(ctx context.Context, arg database.DeleteWorkspaceAgentPortShareParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteWorkspaceAgentPortShare", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteWorkspaceAgentPortShare indicates an expected call of DeleteWorkspaceAgentPortShare. -func (mr *MockStoreMockRecorder) DeleteWorkspaceAgentPortShare(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWorkspaceAgentPortShare", reflect.TypeOf((*MockStore)(nil).DeleteWorkspaceAgentPortShare), ctx, arg) -} - -// DeleteWorkspaceAgentPortSharesByTemplate mocks base method. -func (m *MockStore) DeleteWorkspaceAgentPortSharesByTemplate(ctx context.Context, templateID uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteWorkspaceAgentPortSharesByTemplate", ctx, templateID) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteWorkspaceAgentPortSharesByTemplate indicates an expected call of DeleteWorkspaceAgentPortSharesByTemplate. -func (mr *MockStoreMockRecorder) DeleteWorkspaceAgentPortSharesByTemplate(ctx, templateID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWorkspaceAgentPortSharesByTemplate", reflect.TypeOf((*MockStore)(nil).DeleteWorkspaceAgentPortSharesByTemplate), ctx, templateID) -} - -// DeleteWorkspaceSubAgentByID mocks base method. -func (m *MockStore) DeleteWorkspaceSubAgentByID(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteWorkspaceSubAgentByID", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteWorkspaceSubAgentByID indicates an expected call of DeleteWorkspaceSubAgentByID. -func (mr *MockStoreMockRecorder) DeleteWorkspaceSubAgentByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWorkspaceSubAgentByID", reflect.TypeOf((*MockStore)(nil).DeleteWorkspaceSubAgentByID), ctx, id) -} - -// DisableForeignKeysAndTriggers mocks base method. -func (m *MockStore) DisableForeignKeysAndTriggers(ctx context.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DisableForeignKeysAndTriggers", ctx) - ret0, _ := ret[0].(error) - return ret0 -} - -// DisableForeignKeysAndTriggers indicates an expected call of DisableForeignKeysAndTriggers. -func (mr *MockStoreMockRecorder) DisableForeignKeysAndTriggers(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableForeignKeysAndTriggers", reflect.TypeOf((*MockStore)(nil).DisableForeignKeysAndTriggers), ctx) -} - -// EnqueueNotificationMessage mocks base method. -func (m *MockStore) EnqueueNotificationMessage(ctx context.Context, arg database.EnqueueNotificationMessageParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "EnqueueNotificationMessage", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// EnqueueNotificationMessage indicates an expected call of EnqueueNotificationMessage. -func (mr *MockStoreMockRecorder) EnqueueNotificationMessage(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnqueueNotificationMessage", reflect.TypeOf((*MockStore)(nil).EnqueueNotificationMessage), ctx, arg) -} - -// ExpirePrebuildsAPIKeys mocks base method. -func (m *MockStore) ExpirePrebuildsAPIKeys(ctx context.Context, now time.Time) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ExpirePrebuildsAPIKeys", ctx, now) - ret0, _ := ret[0].(error) - return ret0 -} - -// ExpirePrebuildsAPIKeys indicates an expected call of ExpirePrebuildsAPIKeys. -func (mr *MockStoreMockRecorder) ExpirePrebuildsAPIKeys(ctx, now any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExpirePrebuildsAPIKeys", reflect.TypeOf((*MockStore)(nil).ExpirePrebuildsAPIKeys), ctx, now) -} - -// FavoriteWorkspace mocks base method. -func (m *MockStore) FavoriteWorkspace(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FavoriteWorkspace", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// FavoriteWorkspace indicates an expected call of FavoriteWorkspace. -func (mr *MockStoreMockRecorder) FavoriteWorkspace(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FavoriteWorkspace", reflect.TypeOf((*MockStore)(nil).FavoriteWorkspace), ctx, id) -} - -// FetchMemoryResourceMonitorsByAgentID mocks base method. -func (m *MockStore) FetchMemoryResourceMonitorsByAgentID(ctx context.Context, agentID uuid.UUID) (database.WorkspaceAgentMemoryResourceMonitor, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FetchMemoryResourceMonitorsByAgentID", ctx, agentID) - ret0, _ := ret[0].(database.WorkspaceAgentMemoryResourceMonitor) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// FetchMemoryResourceMonitorsByAgentID indicates an expected call of FetchMemoryResourceMonitorsByAgentID. -func (mr *MockStoreMockRecorder) FetchMemoryResourceMonitorsByAgentID(ctx, agentID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchMemoryResourceMonitorsByAgentID", reflect.TypeOf((*MockStore)(nil).FetchMemoryResourceMonitorsByAgentID), ctx, agentID) -} - -// FetchMemoryResourceMonitorsUpdatedAfter mocks base method. -func (m *MockStore) FetchMemoryResourceMonitorsUpdatedAfter(ctx context.Context, updatedAt time.Time) ([]database.WorkspaceAgentMemoryResourceMonitor, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FetchMemoryResourceMonitorsUpdatedAfter", ctx, updatedAt) - ret0, _ := ret[0].([]database.WorkspaceAgentMemoryResourceMonitor) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// FetchMemoryResourceMonitorsUpdatedAfter indicates an expected call of FetchMemoryResourceMonitorsUpdatedAfter. -func (mr *MockStoreMockRecorder) FetchMemoryResourceMonitorsUpdatedAfter(ctx, updatedAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchMemoryResourceMonitorsUpdatedAfter", reflect.TypeOf((*MockStore)(nil).FetchMemoryResourceMonitorsUpdatedAfter), ctx, updatedAt) -} - -// FetchNewMessageMetadata mocks base method. -func (m *MockStore) FetchNewMessageMetadata(ctx context.Context, arg database.FetchNewMessageMetadataParams) (database.FetchNewMessageMetadataRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FetchNewMessageMetadata", ctx, arg) - ret0, _ := ret[0].(database.FetchNewMessageMetadataRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// FetchNewMessageMetadata indicates an expected call of FetchNewMessageMetadata. -func (mr *MockStoreMockRecorder) FetchNewMessageMetadata(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchNewMessageMetadata", reflect.TypeOf((*MockStore)(nil).FetchNewMessageMetadata), ctx, arg) -} - -// FetchVolumesResourceMonitorsByAgentID mocks base method. -func (m *MockStore) FetchVolumesResourceMonitorsByAgentID(ctx context.Context, agentID uuid.UUID) ([]database.WorkspaceAgentVolumeResourceMonitor, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FetchVolumesResourceMonitorsByAgentID", ctx, agentID) - ret0, _ := ret[0].([]database.WorkspaceAgentVolumeResourceMonitor) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// FetchVolumesResourceMonitorsByAgentID indicates an expected call of FetchVolumesResourceMonitorsByAgentID. -func (mr *MockStoreMockRecorder) FetchVolumesResourceMonitorsByAgentID(ctx, agentID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchVolumesResourceMonitorsByAgentID", reflect.TypeOf((*MockStore)(nil).FetchVolumesResourceMonitorsByAgentID), ctx, agentID) -} - -// FetchVolumesResourceMonitorsUpdatedAfter mocks base method. -func (m *MockStore) FetchVolumesResourceMonitorsUpdatedAfter(ctx context.Context, updatedAt time.Time) ([]database.WorkspaceAgentVolumeResourceMonitor, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FetchVolumesResourceMonitorsUpdatedAfter", ctx, updatedAt) - ret0, _ := ret[0].([]database.WorkspaceAgentVolumeResourceMonitor) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// FetchVolumesResourceMonitorsUpdatedAfter indicates an expected call of FetchVolumesResourceMonitorsUpdatedAfter. -func (mr *MockStoreMockRecorder) FetchVolumesResourceMonitorsUpdatedAfter(ctx, updatedAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchVolumesResourceMonitorsUpdatedAfter", reflect.TypeOf((*MockStore)(nil).FetchVolumesResourceMonitorsUpdatedAfter), ctx, updatedAt) -} - -// FindMatchingPresetID mocks base method. -func (m *MockStore) FindMatchingPresetID(ctx context.Context, arg database.FindMatchingPresetIDParams) (uuid.UUID, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FindMatchingPresetID", ctx, arg) - ret0, _ := ret[0].(uuid.UUID) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// FindMatchingPresetID indicates an expected call of FindMatchingPresetID. -func (mr *MockStoreMockRecorder) FindMatchingPresetID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindMatchingPresetID", reflect.TypeOf((*MockStore)(nil).FindMatchingPresetID), ctx, arg) -} - -// GetAIBridgeInterceptionByID mocks base method. -func (m *MockStore) GetAIBridgeInterceptionByID(ctx context.Context, id uuid.UUID) (database.AIBridgeInterception, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAIBridgeInterceptionByID", ctx, id) - ret0, _ := ret[0].(database.AIBridgeInterception) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAIBridgeInterceptionByID indicates an expected call of GetAIBridgeInterceptionByID. -func (mr *MockStoreMockRecorder) GetAIBridgeInterceptionByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAIBridgeInterceptionByID", reflect.TypeOf((*MockStore)(nil).GetAIBridgeInterceptionByID), ctx, id) -} - -// GetAIBridgeInterceptions mocks base method. -func (m *MockStore) GetAIBridgeInterceptions(ctx context.Context) ([]database.AIBridgeInterception, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAIBridgeInterceptions", ctx) - ret0, _ := ret[0].([]database.AIBridgeInterception) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAIBridgeInterceptions indicates an expected call of GetAIBridgeInterceptions. -func (mr *MockStoreMockRecorder) GetAIBridgeInterceptions(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAIBridgeInterceptions", reflect.TypeOf((*MockStore)(nil).GetAIBridgeInterceptions), ctx) -} - -// GetAIBridgeTokenUsagesByInterceptionID mocks base method. -func (m *MockStore) GetAIBridgeTokenUsagesByInterceptionID(ctx context.Context, interceptionID uuid.UUID) ([]database.AIBridgeTokenUsage, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAIBridgeTokenUsagesByInterceptionID", ctx, interceptionID) - ret0, _ := ret[0].([]database.AIBridgeTokenUsage) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAIBridgeTokenUsagesByInterceptionID indicates an expected call of GetAIBridgeTokenUsagesByInterceptionID. -func (mr *MockStoreMockRecorder) GetAIBridgeTokenUsagesByInterceptionID(ctx, interceptionID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAIBridgeTokenUsagesByInterceptionID", reflect.TypeOf((*MockStore)(nil).GetAIBridgeTokenUsagesByInterceptionID), ctx, interceptionID) -} - -// GetAIBridgeToolUsagesByInterceptionID mocks base method. -func (m *MockStore) GetAIBridgeToolUsagesByInterceptionID(ctx context.Context, interceptionID uuid.UUID) ([]database.AIBridgeToolUsage, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAIBridgeToolUsagesByInterceptionID", ctx, interceptionID) - ret0, _ := ret[0].([]database.AIBridgeToolUsage) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAIBridgeToolUsagesByInterceptionID indicates an expected call of GetAIBridgeToolUsagesByInterceptionID. -func (mr *MockStoreMockRecorder) GetAIBridgeToolUsagesByInterceptionID(ctx, interceptionID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAIBridgeToolUsagesByInterceptionID", reflect.TypeOf((*MockStore)(nil).GetAIBridgeToolUsagesByInterceptionID), ctx, interceptionID) -} - -// GetAIBridgeUserPromptsByInterceptionID mocks base method. -func (m *MockStore) GetAIBridgeUserPromptsByInterceptionID(ctx context.Context, interceptionID uuid.UUID) ([]database.AIBridgeUserPrompt, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAIBridgeUserPromptsByInterceptionID", ctx, interceptionID) - ret0, _ := ret[0].([]database.AIBridgeUserPrompt) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAIBridgeUserPromptsByInterceptionID indicates an expected call of GetAIBridgeUserPromptsByInterceptionID. -func (mr *MockStoreMockRecorder) GetAIBridgeUserPromptsByInterceptionID(ctx, interceptionID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAIBridgeUserPromptsByInterceptionID", reflect.TypeOf((*MockStore)(nil).GetAIBridgeUserPromptsByInterceptionID), ctx, interceptionID) -} - -// GetAPIKeyByID mocks base method. -func (m *MockStore) GetAPIKeyByID(ctx context.Context, id string) (database.APIKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAPIKeyByID", ctx, id) - ret0, _ := ret[0].(database.APIKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAPIKeyByID indicates an expected call of GetAPIKeyByID. -func (mr *MockStoreMockRecorder) GetAPIKeyByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIKeyByID", reflect.TypeOf((*MockStore)(nil).GetAPIKeyByID), ctx, id) -} - -// GetAPIKeyByName mocks base method. -func (m *MockStore) GetAPIKeyByName(ctx context.Context, arg database.GetAPIKeyByNameParams) (database.APIKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAPIKeyByName", ctx, arg) - ret0, _ := ret[0].(database.APIKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAPIKeyByName indicates an expected call of GetAPIKeyByName. -func (mr *MockStoreMockRecorder) GetAPIKeyByName(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIKeyByName", reflect.TypeOf((*MockStore)(nil).GetAPIKeyByName), ctx, arg) -} - -// GetAPIKeysByLoginType mocks base method. -func (m *MockStore) GetAPIKeysByLoginType(ctx context.Context, loginType database.LoginType) ([]database.APIKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAPIKeysByLoginType", ctx, loginType) - ret0, _ := ret[0].([]database.APIKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAPIKeysByLoginType indicates an expected call of GetAPIKeysByLoginType. -func (mr *MockStoreMockRecorder) GetAPIKeysByLoginType(ctx, loginType any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIKeysByLoginType", reflect.TypeOf((*MockStore)(nil).GetAPIKeysByLoginType), ctx, loginType) -} - -// GetAPIKeysByUserID mocks base method. -func (m *MockStore) GetAPIKeysByUserID(ctx context.Context, arg database.GetAPIKeysByUserIDParams) ([]database.APIKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAPIKeysByUserID", ctx, arg) - ret0, _ := ret[0].([]database.APIKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAPIKeysByUserID indicates an expected call of GetAPIKeysByUserID. -func (mr *MockStoreMockRecorder) GetAPIKeysByUserID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIKeysByUserID", reflect.TypeOf((*MockStore)(nil).GetAPIKeysByUserID), ctx, arg) -} - -// GetAPIKeysLastUsedAfter mocks base method. -func (m *MockStore) GetAPIKeysLastUsedAfter(ctx context.Context, lastUsed time.Time) ([]database.APIKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAPIKeysLastUsedAfter", ctx, lastUsed) - ret0, _ := ret[0].([]database.APIKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAPIKeysLastUsedAfter indicates an expected call of GetAPIKeysLastUsedAfter. -func (mr *MockStoreMockRecorder) GetAPIKeysLastUsedAfter(ctx, lastUsed any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIKeysLastUsedAfter", reflect.TypeOf((*MockStore)(nil).GetAPIKeysLastUsedAfter), ctx, lastUsed) -} - -// GetActivePresetPrebuildSchedules mocks base method. -func (m *MockStore) GetActivePresetPrebuildSchedules(ctx context.Context) ([]database.TemplateVersionPresetPrebuildSchedule, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetActivePresetPrebuildSchedules", ctx) - ret0, _ := ret[0].([]database.TemplateVersionPresetPrebuildSchedule) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetActivePresetPrebuildSchedules indicates an expected call of GetActivePresetPrebuildSchedules. -func (mr *MockStoreMockRecorder) GetActivePresetPrebuildSchedules(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetActivePresetPrebuildSchedules", reflect.TypeOf((*MockStore)(nil).GetActivePresetPrebuildSchedules), ctx) -} - -// GetActiveUserCount mocks base method. -func (m *MockStore) GetActiveUserCount(ctx context.Context, includeSystem bool) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetActiveUserCount", ctx, includeSystem) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetActiveUserCount indicates an expected call of GetActiveUserCount. -func (mr *MockStoreMockRecorder) GetActiveUserCount(ctx, includeSystem any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetActiveUserCount", reflect.TypeOf((*MockStore)(nil).GetActiveUserCount), ctx, includeSystem) -} - -// GetActiveWorkspaceBuildsByTemplateID mocks base method. -func (m *MockStore) GetActiveWorkspaceBuildsByTemplateID(ctx context.Context, templateID uuid.UUID) ([]database.WorkspaceBuild, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetActiveWorkspaceBuildsByTemplateID", ctx, templateID) - ret0, _ := ret[0].([]database.WorkspaceBuild) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetActiveWorkspaceBuildsByTemplateID indicates an expected call of GetActiveWorkspaceBuildsByTemplateID. -func (mr *MockStoreMockRecorder) GetActiveWorkspaceBuildsByTemplateID(ctx, templateID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetActiveWorkspaceBuildsByTemplateID", reflect.TypeOf((*MockStore)(nil).GetActiveWorkspaceBuildsByTemplateID), ctx, templateID) -} - -// GetAllTailnetAgents mocks base method. -func (m *MockStore) GetAllTailnetAgents(ctx context.Context) ([]database.TailnetAgent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAllTailnetAgents", ctx) - ret0, _ := ret[0].([]database.TailnetAgent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAllTailnetAgents indicates an expected call of GetAllTailnetAgents. -func (mr *MockStoreMockRecorder) GetAllTailnetAgents(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllTailnetAgents", reflect.TypeOf((*MockStore)(nil).GetAllTailnetAgents), ctx) -} - -// GetAllTailnetCoordinators mocks base method. -func (m *MockStore) GetAllTailnetCoordinators(ctx context.Context) ([]database.TailnetCoordinator, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAllTailnetCoordinators", ctx) - ret0, _ := ret[0].([]database.TailnetCoordinator) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAllTailnetCoordinators indicates an expected call of GetAllTailnetCoordinators. -func (mr *MockStoreMockRecorder) GetAllTailnetCoordinators(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllTailnetCoordinators", reflect.TypeOf((*MockStore)(nil).GetAllTailnetCoordinators), ctx) -} - -// GetAllTailnetPeers mocks base method. -func (m *MockStore) GetAllTailnetPeers(ctx context.Context) ([]database.TailnetPeer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAllTailnetPeers", ctx) - ret0, _ := ret[0].([]database.TailnetPeer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAllTailnetPeers indicates an expected call of GetAllTailnetPeers. -func (mr *MockStoreMockRecorder) GetAllTailnetPeers(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllTailnetPeers", reflect.TypeOf((*MockStore)(nil).GetAllTailnetPeers), ctx) -} - -// GetAllTailnetTunnels mocks base method. -func (m *MockStore) GetAllTailnetTunnels(ctx context.Context) ([]database.TailnetTunnel, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAllTailnetTunnels", ctx) - ret0, _ := ret[0].([]database.TailnetTunnel) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAllTailnetTunnels indicates an expected call of GetAllTailnetTunnels. -func (mr *MockStoreMockRecorder) GetAllTailnetTunnels(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllTailnetTunnels", reflect.TypeOf((*MockStore)(nil).GetAllTailnetTunnels), ctx) -} - -// GetAnnouncementBanners mocks base method. -func (m *MockStore) GetAnnouncementBanners(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAnnouncementBanners", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAnnouncementBanners indicates an expected call of GetAnnouncementBanners. -func (mr *MockStoreMockRecorder) GetAnnouncementBanners(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAnnouncementBanners", reflect.TypeOf((*MockStore)(nil).GetAnnouncementBanners), ctx) -} - -// GetAppSecurityKey mocks base method. -func (m *MockStore) GetAppSecurityKey(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAppSecurityKey", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAppSecurityKey indicates an expected call of GetAppSecurityKey. -func (mr *MockStoreMockRecorder) GetAppSecurityKey(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAppSecurityKey", reflect.TypeOf((*MockStore)(nil).GetAppSecurityKey), ctx) -} - -// GetApplicationName mocks base method. -func (m *MockStore) GetApplicationName(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetApplicationName", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetApplicationName indicates an expected call of GetApplicationName. -func (mr *MockStoreMockRecorder) GetApplicationName(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetApplicationName", reflect.TypeOf((*MockStore)(nil).GetApplicationName), ctx) -} - -// GetAuditLogsOffset mocks base method. -func (m *MockStore) GetAuditLogsOffset(ctx context.Context, arg database.GetAuditLogsOffsetParams) ([]database.GetAuditLogsOffsetRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAuditLogsOffset", ctx, arg) - ret0, _ := ret[0].([]database.GetAuditLogsOffsetRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAuditLogsOffset indicates an expected call of GetAuditLogsOffset. -func (mr *MockStoreMockRecorder) GetAuditLogsOffset(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuditLogsOffset", reflect.TypeOf((*MockStore)(nil).GetAuditLogsOffset), ctx, arg) -} - -// GetAuthorizationUserRoles mocks base method. -func (m *MockStore) GetAuthorizationUserRoles(ctx context.Context, userID uuid.UUID) (database.GetAuthorizationUserRolesRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAuthorizationUserRoles", ctx, userID) - ret0, _ := ret[0].(database.GetAuthorizationUserRolesRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAuthorizationUserRoles indicates an expected call of GetAuthorizationUserRoles. -func (mr *MockStoreMockRecorder) GetAuthorizationUserRoles(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizationUserRoles", reflect.TypeOf((*MockStore)(nil).GetAuthorizationUserRoles), ctx, userID) -} - -// GetAuthorizedAuditLogsOffset mocks base method. -func (m *MockStore) GetAuthorizedAuditLogsOffset(ctx context.Context, arg database.GetAuditLogsOffsetParams, prepared rbac.PreparedAuthorized) ([]database.GetAuditLogsOffsetRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAuthorizedAuditLogsOffset", ctx, arg, prepared) - ret0, _ := ret[0].([]database.GetAuditLogsOffsetRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAuthorizedAuditLogsOffset indicates an expected call of GetAuthorizedAuditLogsOffset. -func (mr *MockStoreMockRecorder) GetAuthorizedAuditLogsOffset(ctx, arg, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedAuditLogsOffset", reflect.TypeOf((*MockStore)(nil).GetAuthorizedAuditLogsOffset), ctx, arg, prepared) -} - -// GetAuthorizedConnectionLogsOffset mocks base method. -func (m *MockStore) GetAuthorizedConnectionLogsOffset(ctx context.Context, arg database.GetConnectionLogsOffsetParams, prepared rbac.PreparedAuthorized) ([]database.GetConnectionLogsOffsetRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAuthorizedConnectionLogsOffset", ctx, arg, prepared) - ret0, _ := ret[0].([]database.GetConnectionLogsOffsetRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAuthorizedConnectionLogsOffset indicates an expected call of GetAuthorizedConnectionLogsOffset. -func (mr *MockStoreMockRecorder) GetAuthorizedConnectionLogsOffset(ctx, arg, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedConnectionLogsOffset", reflect.TypeOf((*MockStore)(nil).GetAuthorizedConnectionLogsOffset), ctx, arg, prepared) -} - -// GetAuthorizedTemplates mocks base method. -func (m *MockStore) GetAuthorizedTemplates(ctx context.Context, arg database.GetTemplatesWithFilterParams, prepared rbac.PreparedAuthorized) ([]database.Template, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAuthorizedTemplates", ctx, arg, prepared) - ret0, _ := ret[0].([]database.Template) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAuthorizedTemplates indicates an expected call of GetAuthorizedTemplates. -func (mr *MockStoreMockRecorder) GetAuthorizedTemplates(ctx, arg, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedTemplates", reflect.TypeOf((*MockStore)(nil).GetAuthorizedTemplates), ctx, arg, prepared) -} - -// GetAuthorizedUsers mocks base method. -func (m *MockStore) GetAuthorizedUsers(ctx context.Context, arg database.GetUsersParams, prepared rbac.PreparedAuthorized) ([]database.GetUsersRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAuthorizedUsers", ctx, arg, prepared) - ret0, _ := ret[0].([]database.GetUsersRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAuthorizedUsers indicates an expected call of GetAuthorizedUsers. -func (mr *MockStoreMockRecorder) GetAuthorizedUsers(ctx, arg, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedUsers", reflect.TypeOf((*MockStore)(nil).GetAuthorizedUsers), ctx, arg, prepared) -} - -// GetAuthorizedWorkspaceBuildParametersByBuildIDs mocks base method. -func (m *MockStore) GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIDs []uuid.UUID, prepared rbac.PreparedAuthorized) ([]database.WorkspaceBuildParameter, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAuthorizedWorkspaceBuildParametersByBuildIDs", ctx, workspaceBuildIDs, prepared) - ret0, _ := ret[0].([]database.WorkspaceBuildParameter) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAuthorizedWorkspaceBuildParametersByBuildIDs indicates an expected call of GetAuthorizedWorkspaceBuildParametersByBuildIDs. -func (mr *MockStoreMockRecorder) GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx, workspaceBuildIDs, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedWorkspaceBuildParametersByBuildIDs", reflect.TypeOf((*MockStore)(nil).GetAuthorizedWorkspaceBuildParametersByBuildIDs), ctx, workspaceBuildIDs, prepared) -} - -// GetAuthorizedWorkspaces mocks base method. -func (m *MockStore) GetAuthorizedWorkspaces(ctx context.Context, arg database.GetWorkspacesParams, prepared rbac.PreparedAuthorized) ([]database.GetWorkspacesRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAuthorizedWorkspaces", ctx, arg, prepared) - ret0, _ := ret[0].([]database.GetWorkspacesRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAuthorizedWorkspaces indicates an expected call of GetAuthorizedWorkspaces. -func (mr *MockStoreMockRecorder) GetAuthorizedWorkspaces(ctx, arg, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedWorkspaces", reflect.TypeOf((*MockStore)(nil).GetAuthorizedWorkspaces), ctx, arg, prepared) -} - -// GetAuthorizedWorkspacesAndAgentsByOwnerID mocks base method. -func (m *MockStore) GetAuthorizedWorkspacesAndAgentsByOwnerID(ctx context.Context, ownerID uuid.UUID, prepared rbac.PreparedAuthorized) ([]database.GetWorkspacesAndAgentsByOwnerIDRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAuthorizedWorkspacesAndAgentsByOwnerID", ctx, ownerID, prepared) - ret0, _ := ret[0].([]database.GetWorkspacesAndAgentsByOwnerIDRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAuthorizedWorkspacesAndAgentsByOwnerID indicates an expected call of GetAuthorizedWorkspacesAndAgentsByOwnerID. -func (mr *MockStoreMockRecorder) GetAuthorizedWorkspacesAndAgentsByOwnerID(ctx, ownerID, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizedWorkspacesAndAgentsByOwnerID", reflect.TypeOf((*MockStore)(nil).GetAuthorizedWorkspacesAndAgentsByOwnerID), ctx, ownerID, prepared) -} - -// GetConnectionLogsOffset mocks base method. -func (m *MockStore) GetConnectionLogsOffset(ctx context.Context, arg database.GetConnectionLogsOffsetParams) ([]database.GetConnectionLogsOffsetRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetConnectionLogsOffset", ctx, arg) - ret0, _ := ret[0].([]database.GetConnectionLogsOffsetRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetConnectionLogsOffset indicates an expected call of GetConnectionLogsOffset. -func (mr *MockStoreMockRecorder) GetConnectionLogsOffset(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetConnectionLogsOffset", reflect.TypeOf((*MockStore)(nil).GetConnectionLogsOffset), ctx, arg) -} - -// GetCoordinatorResumeTokenSigningKey mocks base method. -func (m *MockStore) GetCoordinatorResumeTokenSigningKey(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCoordinatorResumeTokenSigningKey", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetCoordinatorResumeTokenSigningKey indicates an expected call of GetCoordinatorResumeTokenSigningKey. -func (mr *MockStoreMockRecorder) GetCoordinatorResumeTokenSigningKey(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCoordinatorResumeTokenSigningKey", reflect.TypeOf((*MockStore)(nil).GetCoordinatorResumeTokenSigningKey), ctx) -} - -// GetCryptoKeyByFeatureAndSequence mocks base method. -func (m *MockStore) GetCryptoKeyByFeatureAndSequence(ctx context.Context, arg database.GetCryptoKeyByFeatureAndSequenceParams) (database.CryptoKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCryptoKeyByFeatureAndSequence", ctx, arg) - ret0, _ := ret[0].(database.CryptoKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetCryptoKeyByFeatureAndSequence indicates an expected call of GetCryptoKeyByFeatureAndSequence. -func (mr *MockStoreMockRecorder) GetCryptoKeyByFeatureAndSequence(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCryptoKeyByFeatureAndSequence", reflect.TypeOf((*MockStore)(nil).GetCryptoKeyByFeatureAndSequence), ctx, arg) -} - -// GetCryptoKeys mocks base method. -func (m *MockStore) GetCryptoKeys(ctx context.Context) ([]database.CryptoKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCryptoKeys", ctx) - ret0, _ := ret[0].([]database.CryptoKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetCryptoKeys indicates an expected call of GetCryptoKeys. -func (mr *MockStoreMockRecorder) GetCryptoKeys(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCryptoKeys", reflect.TypeOf((*MockStore)(nil).GetCryptoKeys), ctx) -} - -// GetCryptoKeysByFeature mocks base method. -func (m *MockStore) GetCryptoKeysByFeature(ctx context.Context, feature database.CryptoKeyFeature) ([]database.CryptoKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCryptoKeysByFeature", ctx, feature) - ret0, _ := ret[0].([]database.CryptoKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetCryptoKeysByFeature indicates an expected call of GetCryptoKeysByFeature. -func (mr *MockStoreMockRecorder) GetCryptoKeysByFeature(ctx, feature any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCryptoKeysByFeature", reflect.TypeOf((*MockStore)(nil).GetCryptoKeysByFeature), ctx, feature) -} - -// GetDBCryptKeys mocks base method. -func (m *MockStore) GetDBCryptKeys(ctx context.Context) ([]database.DBCryptKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDBCryptKeys", ctx) - ret0, _ := ret[0].([]database.DBCryptKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDBCryptKeys indicates an expected call of GetDBCryptKeys. -func (mr *MockStoreMockRecorder) GetDBCryptKeys(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDBCryptKeys", reflect.TypeOf((*MockStore)(nil).GetDBCryptKeys), ctx) -} - -// GetDERPMeshKey mocks base method. -func (m *MockStore) GetDERPMeshKey(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDERPMeshKey", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDERPMeshKey indicates an expected call of GetDERPMeshKey. -func (mr *MockStoreMockRecorder) GetDERPMeshKey(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDERPMeshKey", reflect.TypeOf((*MockStore)(nil).GetDERPMeshKey), ctx) -} - -// GetDefaultOrganization mocks base method. -func (m *MockStore) GetDefaultOrganization(ctx context.Context) (database.Organization, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDefaultOrganization", ctx) - ret0, _ := ret[0].(database.Organization) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDefaultOrganization indicates an expected call of GetDefaultOrganization. -func (mr *MockStoreMockRecorder) GetDefaultOrganization(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDefaultOrganization", reflect.TypeOf((*MockStore)(nil).GetDefaultOrganization), ctx) -} - -// GetDefaultProxyConfig mocks base method. -func (m *MockStore) GetDefaultProxyConfig(ctx context.Context) (database.GetDefaultProxyConfigRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDefaultProxyConfig", ctx) - ret0, _ := ret[0].(database.GetDefaultProxyConfigRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDefaultProxyConfig indicates an expected call of GetDefaultProxyConfig. -func (mr *MockStoreMockRecorder) GetDefaultProxyConfig(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDefaultProxyConfig", reflect.TypeOf((*MockStore)(nil).GetDefaultProxyConfig), ctx) -} - -// GetDeploymentDAUs mocks base method. -func (m *MockStore) GetDeploymentDAUs(ctx context.Context, tzOffset int32) ([]database.GetDeploymentDAUsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDeploymentDAUs", ctx, tzOffset) - ret0, _ := ret[0].([]database.GetDeploymentDAUsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDeploymentDAUs indicates an expected call of GetDeploymentDAUs. -func (mr *MockStoreMockRecorder) GetDeploymentDAUs(ctx, tzOffset any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentDAUs", reflect.TypeOf((*MockStore)(nil).GetDeploymentDAUs), ctx, tzOffset) -} - -// GetDeploymentID mocks base method. -func (m *MockStore) GetDeploymentID(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDeploymentID", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDeploymentID indicates an expected call of GetDeploymentID. -func (mr *MockStoreMockRecorder) GetDeploymentID(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentID", reflect.TypeOf((*MockStore)(nil).GetDeploymentID), ctx) -} - -// GetDeploymentWorkspaceAgentStats mocks base method. -func (m *MockStore) GetDeploymentWorkspaceAgentStats(ctx context.Context, createdAt time.Time) (database.GetDeploymentWorkspaceAgentStatsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDeploymentWorkspaceAgentStats", ctx, createdAt) - ret0, _ := ret[0].(database.GetDeploymentWorkspaceAgentStatsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDeploymentWorkspaceAgentStats indicates an expected call of GetDeploymentWorkspaceAgentStats. -func (mr *MockStoreMockRecorder) GetDeploymentWorkspaceAgentStats(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentWorkspaceAgentStats", reflect.TypeOf((*MockStore)(nil).GetDeploymentWorkspaceAgentStats), ctx, createdAt) -} - -// GetDeploymentWorkspaceAgentUsageStats mocks base method. -func (m *MockStore) GetDeploymentWorkspaceAgentUsageStats(ctx context.Context, createdAt time.Time) (database.GetDeploymentWorkspaceAgentUsageStatsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDeploymentWorkspaceAgentUsageStats", ctx, createdAt) - ret0, _ := ret[0].(database.GetDeploymentWorkspaceAgentUsageStatsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDeploymentWorkspaceAgentUsageStats indicates an expected call of GetDeploymentWorkspaceAgentUsageStats. -func (mr *MockStoreMockRecorder) GetDeploymentWorkspaceAgentUsageStats(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentWorkspaceAgentUsageStats", reflect.TypeOf((*MockStore)(nil).GetDeploymentWorkspaceAgentUsageStats), ctx, createdAt) -} - -// GetDeploymentWorkspaceStats mocks base method. -func (m *MockStore) GetDeploymentWorkspaceStats(ctx context.Context) (database.GetDeploymentWorkspaceStatsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDeploymentWorkspaceStats", ctx) - ret0, _ := ret[0].(database.GetDeploymentWorkspaceStatsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDeploymentWorkspaceStats indicates an expected call of GetDeploymentWorkspaceStats. -func (mr *MockStoreMockRecorder) GetDeploymentWorkspaceStats(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentWorkspaceStats", reflect.TypeOf((*MockStore)(nil).GetDeploymentWorkspaceStats), ctx) -} - -// GetEligibleProvisionerDaemonsByProvisionerJobIDs mocks base method. -func (m *MockStore) GetEligibleProvisionerDaemonsByProvisionerJobIDs(ctx context.Context, provisionerJobIds []uuid.UUID) ([]database.GetEligibleProvisionerDaemonsByProvisionerJobIDsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetEligibleProvisionerDaemonsByProvisionerJobIDs", ctx, provisionerJobIds) - ret0, _ := ret[0].([]database.GetEligibleProvisionerDaemonsByProvisionerJobIDsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetEligibleProvisionerDaemonsByProvisionerJobIDs indicates an expected call of GetEligibleProvisionerDaemonsByProvisionerJobIDs. -func (mr *MockStoreMockRecorder) GetEligibleProvisionerDaemonsByProvisionerJobIDs(ctx, provisionerJobIds any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEligibleProvisionerDaemonsByProvisionerJobIDs", reflect.TypeOf((*MockStore)(nil).GetEligibleProvisionerDaemonsByProvisionerJobIDs), ctx, provisionerJobIds) -} - -// GetExternalAuthLink mocks base method. -func (m *MockStore) GetExternalAuthLink(ctx context.Context, arg database.GetExternalAuthLinkParams) (database.ExternalAuthLink, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetExternalAuthLink", ctx, arg) - ret0, _ := ret[0].(database.ExternalAuthLink) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetExternalAuthLink indicates an expected call of GetExternalAuthLink. -func (mr *MockStoreMockRecorder) GetExternalAuthLink(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetExternalAuthLink", reflect.TypeOf((*MockStore)(nil).GetExternalAuthLink), ctx, arg) -} - -// GetExternalAuthLinksByUserID mocks base method. -func (m *MockStore) GetExternalAuthLinksByUserID(ctx context.Context, userID uuid.UUID) ([]database.ExternalAuthLink, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetExternalAuthLinksByUserID", ctx, userID) - ret0, _ := ret[0].([]database.ExternalAuthLink) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetExternalAuthLinksByUserID indicates an expected call of GetExternalAuthLinksByUserID. -func (mr *MockStoreMockRecorder) GetExternalAuthLinksByUserID(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetExternalAuthLinksByUserID", reflect.TypeOf((*MockStore)(nil).GetExternalAuthLinksByUserID), ctx, userID) -} - -// GetFailedWorkspaceBuildsByTemplateID mocks base method. -func (m *MockStore) GetFailedWorkspaceBuildsByTemplateID(ctx context.Context, arg database.GetFailedWorkspaceBuildsByTemplateIDParams) ([]database.GetFailedWorkspaceBuildsByTemplateIDRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetFailedWorkspaceBuildsByTemplateID", ctx, arg) - ret0, _ := ret[0].([]database.GetFailedWorkspaceBuildsByTemplateIDRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetFailedWorkspaceBuildsByTemplateID indicates an expected call of GetFailedWorkspaceBuildsByTemplateID. -func (mr *MockStoreMockRecorder) GetFailedWorkspaceBuildsByTemplateID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFailedWorkspaceBuildsByTemplateID", reflect.TypeOf((*MockStore)(nil).GetFailedWorkspaceBuildsByTemplateID), ctx, arg) -} - -// GetFileByHashAndCreator mocks base method. -func (m *MockStore) GetFileByHashAndCreator(ctx context.Context, arg database.GetFileByHashAndCreatorParams) (database.File, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetFileByHashAndCreator", ctx, arg) - ret0, _ := ret[0].(database.File) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetFileByHashAndCreator indicates an expected call of GetFileByHashAndCreator. -func (mr *MockStoreMockRecorder) GetFileByHashAndCreator(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFileByHashAndCreator", reflect.TypeOf((*MockStore)(nil).GetFileByHashAndCreator), ctx, arg) -} - -// GetFileByID mocks base method. -func (m *MockStore) GetFileByID(ctx context.Context, id uuid.UUID) (database.File, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetFileByID", ctx, id) - ret0, _ := ret[0].(database.File) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetFileByID indicates an expected call of GetFileByID. -func (mr *MockStoreMockRecorder) GetFileByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFileByID", reflect.TypeOf((*MockStore)(nil).GetFileByID), ctx, id) -} - -// GetFileIDByTemplateVersionID mocks base method. -func (m *MockStore) GetFileIDByTemplateVersionID(ctx context.Context, templateVersionID uuid.UUID) (uuid.UUID, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetFileIDByTemplateVersionID", ctx, templateVersionID) - ret0, _ := ret[0].(uuid.UUID) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetFileIDByTemplateVersionID indicates an expected call of GetFileIDByTemplateVersionID. -func (mr *MockStoreMockRecorder) GetFileIDByTemplateVersionID(ctx, templateVersionID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFileIDByTemplateVersionID", reflect.TypeOf((*MockStore)(nil).GetFileIDByTemplateVersionID), ctx, templateVersionID) -} - -// GetFileTemplates mocks base method. -func (m *MockStore) GetFileTemplates(ctx context.Context, fileID uuid.UUID) ([]database.GetFileTemplatesRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetFileTemplates", ctx, fileID) - ret0, _ := ret[0].([]database.GetFileTemplatesRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetFileTemplates indicates an expected call of GetFileTemplates. -func (mr *MockStoreMockRecorder) GetFileTemplates(ctx, fileID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFileTemplates", reflect.TypeOf((*MockStore)(nil).GetFileTemplates), ctx, fileID) -} - -// GetFilteredInboxNotificationsByUserID mocks base method. -func (m *MockStore) GetFilteredInboxNotificationsByUserID(ctx context.Context, arg database.GetFilteredInboxNotificationsByUserIDParams) ([]database.InboxNotification, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetFilteredInboxNotificationsByUserID", ctx, arg) - ret0, _ := ret[0].([]database.InboxNotification) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetFilteredInboxNotificationsByUserID indicates an expected call of GetFilteredInboxNotificationsByUserID. -func (mr *MockStoreMockRecorder) GetFilteredInboxNotificationsByUserID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFilteredInboxNotificationsByUserID", reflect.TypeOf((*MockStore)(nil).GetFilteredInboxNotificationsByUserID), ctx, arg) -} - -// GetGitSSHKey mocks base method. -func (m *MockStore) GetGitSSHKey(ctx context.Context, userID uuid.UUID) (database.GitSSHKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetGitSSHKey", ctx, userID) - ret0, _ := ret[0].(database.GitSSHKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetGitSSHKey indicates an expected call of GetGitSSHKey. -func (mr *MockStoreMockRecorder) GetGitSSHKey(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGitSSHKey", reflect.TypeOf((*MockStore)(nil).GetGitSSHKey), ctx, userID) -} - -// GetGroupByID mocks base method. -func (m *MockStore) GetGroupByID(ctx context.Context, id uuid.UUID) (database.Group, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetGroupByID", ctx, id) - ret0, _ := ret[0].(database.Group) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetGroupByID indicates an expected call of GetGroupByID. -func (mr *MockStoreMockRecorder) GetGroupByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupByID", reflect.TypeOf((*MockStore)(nil).GetGroupByID), ctx, id) -} - -// GetGroupByOrgAndName mocks base method. -func (m *MockStore) GetGroupByOrgAndName(ctx context.Context, arg database.GetGroupByOrgAndNameParams) (database.Group, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetGroupByOrgAndName", ctx, arg) - ret0, _ := ret[0].(database.Group) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetGroupByOrgAndName indicates an expected call of GetGroupByOrgAndName. -func (mr *MockStoreMockRecorder) GetGroupByOrgAndName(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupByOrgAndName", reflect.TypeOf((*MockStore)(nil).GetGroupByOrgAndName), ctx, arg) -} - -// GetGroupMembers mocks base method. -func (m *MockStore) GetGroupMembers(ctx context.Context, includeSystem bool) ([]database.GroupMember, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetGroupMembers", ctx, includeSystem) - ret0, _ := ret[0].([]database.GroupMember) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetGroupMembers indicates an expected call of GetGroupMembers. -func (mr *MockStoreMockRecorder) GetGroupMembers(ctx, includeSystem any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembers", reflect.TypeOf((*MockStore)(nil).GetGroupMembers), ctx, includeSystem) -} - -// GetGroupMembersByGroupID mocks base method. -func (m *MockStore) GetGroupMembersByGroupID(ctx context.Context, arg database.GetGroupMembersByGroupIDParams) ([]database.GroupMember, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetGroupMembersByGroupID", ctx, arg) - ret0, _ := ret[0].([]database.GroupMember) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetGroupMembersByGroupID indicates an expected call of GetGroupMembersByGroupID. -func (mr *MockStoreMockRecorder) GetGroupMembersByGroupID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembersByGroupID", reflect.TypeOf((*MockStore)(nil).GetGroupMembersByGroupID), ctx, arg) -} - -// GetGroupMembersCountByGroupID mocks base method. -func (m *MockStore) GetGroupMembersCountByGroupID(ctx context.Context, arg database.GetGroupMembersCountByGroupIDParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetGroupMembersCountByGroupID", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetGroupMembersCountByGroupID indicates an expected call of GetGroupMembersCountByGroupID. -func (mr *MockStoreMockRecorder) GetGroupMembersCountByGroupID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembersCountByGroupID", reflect.TypeOf((*MockStore)(nil).GetGroupMembersCountByGroupID), ctx, arg) -} - -// GetGroups mocks base method. -func (m *MockStore) GetGroups(ctx context.Context, arg database.GetGroupsParams) ([]database.GetGroupsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetGroups", ctx, arg) - ret0, _ := ret[0].([]database.GetGroupsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetGroups indicates an expected call of GetGroups. -func (mr *MockStoreMockRecorder) GetGroups(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroups", reflect.TypeOf((*MockStore)(nil).GetGroups), ctx, arg) -} - -// GetHealthSettings mocks base method. -func (m *MockStore) GetHealthSettings(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetHealthSettings", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHealthSettings indicates an expected call of GetHealthSettings. -func (mr *MockStoreMockRecorder) GetHealthSettings(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthSettings", reflect.TypeOf((*MockStore)(nil).GetHealthSettings), ctx) -} - -// GetInboxNotificationByID mocks base method. -func (m *MockStore) GetInboxNotificationByID(ctx context.Context, id uuid.UUID) (database.InboxNotification, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetInboxNotificationByID", ctx, id) - ret0, _ := ret[0].(database.InboxNotification) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetInboxNotificationByID indicates an expected call of GetInboxNotificationByID. -func (mr *MockStoreMockRecorder) GetInboxNotificationByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInboxNotificationByID", reflect.TypeOf((*MockStore)(nil).GetInboxNotificationByID), ctx, id) -} - -// GetInboxNotificationsByUserID mocks base method. -func (m *MockStore) GetInboxNotificationsByUserID(ctx context.Context, arg database.GetInboxNotificationsByUserIDParams) ([]database.InboxNotification, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetInboxNotificationsByUserID", ctx, arg) - ret0, _ := ret[0].([]database.InboxNotification) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetInboxNotificationsByUserID indicates an expected call of GetInboxNotificationsByUserID. -func (mr *MockStoreMockRecorder) GetInboxNotificationsByUserID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInboxNotificationsByUserID", reflect.TypeOf((*MockStore)(nil).GetInboxNotificationsByUserID), ctx, arg) -} - -// GetLastUpdateCheck mocks base method. -func (m *MockStore) GetLastUpdateCheck(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLastUpdateCheck", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLastUpdateCheck indicates an expected call of GetLastUpdateCheck. -func (mr *MockStoreMockRecorder) GetLastUpdateCheck(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLastUpdateCheck", reflect.TypeOf((*MockStore)(nil).GetLastUpdateCheck), ctx) -} - -// GetLatestCryptoKeyByFeature mocks base method. -func (m *MockStore) GetLatestCryptoKeyByFeature(ctx context.Context, feature database.CryptoKeyFeature) (database.CryptoKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLatestCryptoKeyByFeature", ctx, feature) - ret0, _ := ret[0].(database.CryptoKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLatestCryptoKeyByFeature indicates an expected call of GetLatestCryptoKeyByFeature. -func (mr *MockStoreMockRecorder) GetLatestCryptoKeyByFeature(ctx, feature any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestCryptoKeyByFeature", reflect.TypeOf((*MockStore)(nil).GetLatestCryptoKeyByFeature), ctx, feature) -} - -// GetLatestWorkspaceAppStatusByAppID mocks base method. -func (m *MockStore) GetLatestWorkspaceAppStatusByAppID(ctx context.Context, appID uuid.UUID) (database.WorkspaceAppStatus, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLatestWorkspaceAppStatusByAppID", ctx, appID) - ret0, _ := ret[0].(database.WorkspaceAppStatus) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLatestWorkspaceAppStatusByAppID indicates an expected call of GetLatestWorkspaceAppStatusByAppID. -func (mr *MockStoreMockRecorder) GetLatestWorkspaceAppStatusByAppID(ctx, appID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestWorkspaceAppStatusByAppID", reflect.TypeOf((*MockStore)(nil).GetLatestWorkspaceAppStatusByAppID), ctx, appID) -} - -// GetLatestWorkspaceAppStatusesByWorkspaceIDs mocks base method. -func (m *MockStore) GetLatestWorkspaceAppStatusesByWorkspaceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAppStatus, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLatestWorkspaceAppStatusesByWorkspaceIDs", ctx, ids) - ret0, _ := ret[0].([]database.WorkspaceAppStatus) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLatestWorkspaceAppStatusesByWorkspaceIDs indicates an expected call of GetLatestWorkspaceAppStatusesByWorkspaceIDs. -func (mr *MockStoreMockRecorder) GetLatestWorkspaceAppStatusesByWorkspaceIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestWorkspaceAppStatusesByWorkspaceIDs", reflect.TypeOf((*MockStore)(nil).GetLatestWorkspaceAppStatusesByWorkspaceIDs), ctx, ids) -} - -// GetLatestWorkspaceBuildByWorkspaceID mocks base method. -func (m *MockStore) GetLatestWorkspaceBuildByWorkspaceID(ctx context.Context, workspaceID uuid.UUID) (database.WorkspaceBuild, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLatestWorkspaceBuildByWorkspaceID", ctx, workspaceID) - ret0, _ := ret[0].(database.WorkspaceBuild) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLatestWorkspaceBuildByWorkspaceID indicates an expected call of GetLatestWorkspaceBuildByWorkspaceID. -func (mr *MockStoreMockRecorder) GetLatestWorkspaceBuildByWorkspaceID(ctx, workspaceID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestWorkspaceBuildByWorkspaceID", reflect.TypeOf((*MockStore)(nil).GetLatestWorkspaceBuildByWorkspaceID), ctx, workspaceID) -} - -// GetLatestWorkspaceBuildsByWorkspaceIDs mocks base method. -func (m *MockStore) GetLatestWorkspaceBuildsByWorkspaceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceBuild, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLatestWorkspaceBuildsByWorkspaceIDs", ctx, ids) - ret0, _ := ret[0].([]database.WorkspaceBuild) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLatestWorkspaceBuildsByWorkspaceIDs indicates an expected call of GetLatestWorkspaceBuildsByWorkspaceIDs. -func (mr *MockStoreMockRecorder) GetLatestWorkspaceBuildsByWorkspaceIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestWorkspaceBuildsByWorkspaceIDs", reflect.TypeOf((*MockStore)(nil).GetLatestWorkspaceBuildsByWorkspaceIDs), ctx, ids) -} - -// GetLicenseByID mocks base method. -func (m *MockStore) GetLicenseByID(ctx context.Context, id int32) (database.License, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLicenseByID", ctx, id) - ret0, _ := ret[0].(database.License) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLicenseByID indicates an expected call of GetLicenseByID. -func (mr *MockStoreMockRecorder) GetLicenseByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLicenseByID", reflect.TypeOf((*MockStore)(nil).GetLicenseByID), ctx, id) -} - -// GetLicenses mocks base method. -func (m *MockStore) GetLicenses(ctx context.Context) ([]database.License, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLicenses", ctx) - ret0, _ := ret[0].([]database.License) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLicenses indicates an expected call of GetLicenses. -func (mr *MockStoreMockRecorder) GetLicenses(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLicenses", reflect.TypeOf((*MockStore)(nil).GetLicenses), ctx) -} - -// GetLogoURL mocks base method. -func (m *MockStore) GetLogoURL(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLogoURL", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLogoURL indicates an expected call of GetLogoURL. -func (mr *MockStoreMockRecorder) GetLogoURL(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLogoURL", reflect.TypeOf((*MockStore)(nil).GetLogoURL), ctx) -} - -// GetNotificationMessagesByStatus mocks base method. -func (m *MockStore) GetNotificationMessagesByStatus(ctx context.Context, arg database.GetNotificationMessagesByStatusParams) ([]database.NotificationMessage, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNotificationMessagesByStatus", ctx, arg) - ret0, _ := ret[0].([]database.NotificationMessage) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetNotificationMessagesByStatus indicates an expected call of GetNotificationMessagesByStatus. -func (mr *MockStoreMockRecorder) GetNotificationMessagesByStatus(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNotificationMessagesByStatus", reflect.TypeOf((*MockStore)(nil).GetNotificationMessagesByStatus), ctx, arg) -} - -// GetNotificationReportGeneratorLogByTemplate mocks base method. -func (m *MockStore) GetNotificationReportGeneratorLogByTemplate(ctx context.Context, templateID uuid.UUID) (database.NotificationReportGeneratorLog, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNotificationReportGeneratorLogByTemplate", ctx, templateID) - ret0, _ := ret[0].(database.NotificationReportGeneratorLog) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetNotificationReportGeneratorLogByTemplate indicates an expected call of GetNotificationReportGeneratorLogByTemplate. -func (mr *MockStoreMockRecorder) GetNotificationReportGeneratorLogByTemplate(ctx, templateID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNotificationReportGeneratorLogByTemplate", reflect.TypeOf((*MockStore)(nil).GetNotificationReportGeneratorLogByTemplate), ctx, templateID) -} - -// GetNotificationTemplateByID mocks base method. -func (m *MockStore) GetNotificationTemplateByID(ctx context.Context, id uuid.UUID) (database.NotificationTemplate, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNotificationTemplateByID", ctx, id) - ret0, _ := ret[0].(database.NotificationTemplate) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetNotificationTemplateByID indicates an expected call of GetNotificationTemplateByID. -func (mr *MockStoreMockRecorder) GetNotificationTemplateByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNotificationTemplateByID", reflect.TypeOf((*MockStore)(nil).GetNotificationTemplateByID), ctx, id) -} - -// GetNotificationTemplatesByKind mocks base method. -func (m *MockStore) GetNotificationTemplatesByKind(ctx context.Context, kind database.NotificationTemplateKind) ([]database.NotificationTemplate, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNotificationTemplatesByKind", ctx, kind) - ret0, _ := ret[0].([]database.NotificationTemplate) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetNotificationTemplatesByKind indicates an expected call of GetNotificationTemplatesByKind. -func (mr *MockStoreMockRecorder) GetNotificationTemplatesByKind(ctx, kind any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNotificationTemplatesByKind", reflect.TypeOf((*MockStore)(nil).GetNotificationTemplatesByKind), ctx, kind) -} - -// GetNotificationsSettings mocks base method. -func (m *MockStore) GetNotificationsSettings(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNotificationsSettings", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetNotificationsSettings indicates an expected call of GetNotificationsSettings. -func (mr *MockStoreMockRecorder) GetNotificationsSettings(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNotificationsSettings", reflect.TypeOf((*MockStore)(nil).GetNotificationsSettings), ctx) -} - -// GetOAuth2GithubDefaultEligible mocks base method. -func (m *MockStore) GetOAuth2GithubDefaultEligible(ctx context.Context) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2GithubDefaultEligible", ctx) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2GithubDefaultEligible indicates an expected call of GetOAuth2GithubDefaultEligible. -func (mr *MockStoreMockRecorder) GetOAuth2GithubDefaultEligible(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2GithubDefaultEligible", reflect.TypeOf((*MockStore)(nil).GetOAuth2GithubDefaultEligible), ctx) -} - -// GetOAuth2ProviderAppByClientID mocks base method. -func (m *MockStore) GetOAuth2ProviderAppByClientID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderAppByClientID", ctx, id) - ret0, _ := ret[0].(database.OAuth2ProviderApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderAppByClientID indicates an expected call of GetOAuth2ProviderAppByClientID. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppByClientID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppByClientID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppByClientID), ctx, id) -} - -// GetOAuth2ProviderAppByID mocks base method. -func (m *MockStore) GetOAuth2ProviderAppByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderAppByID", ctx, id) - ret0, _ := ret[0].(database.OAuth2ProviderApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderAppByID indicates an expected call of GetOAuth2ProviderAppByID. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppByID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppByID), ctx, id) -} - -// GetOAuth2ProviderAppByRegistrationToken mocks base method. -func (m *MockStore) GetOAuth2ProviderAppByRegistrationToken(ctx context.Context, registrationAccessToken []byte) (database.OAuth2ProviderApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderAppByRegistrationToken", ctx, registrationAccessToken) - ret0, _ := ret[0].(database.OAuth2ProviderApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderAppByRegistrationToken indicates an expected call of GetOAuth2ProviderAppByRegistrationToken. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppByRegistrationToken(ctx, registrationAccessToken any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppByRegistrationToken", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppByRegistrationToken), ctx, registrationAccessToken) -} - -// GetOAuth2ProviderAppCodeByID mocks base method. -func (m *MockStore) GetOAuth2ProviderAppCodeByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderAppCode, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderAppCodeByID", ctx, id) - ret0, _ := ret[0].(database.OAuth2ProviderAppCode) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderAppCodeByID indicates an expected call of GetOAuth2ProviderAppCodeByID. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppCodeByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppCodeByID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppCodeByID), ctx, id) -} - -// GetOAuth2ProviderAppCodeByPrefix mocks base method. -func (m *MockStore) GetOAuth2ProviderAppCodeByPrefix(ctx context.Context, secretPrefix []byte) (database.OAuth2ProviderAppCode, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderAppCodeByPrefix", ctx, secretPrefix) - ret0, _ := ret[0].(database.OAuth2ProviderAppCode) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderAppCodeByPrefix indicates an expected call of GetOAuth2ProviderAppCodeByPrefix. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppCodeByPrefix(ctx, secretPrefix any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppCodeByPrefix", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppCodeByPrefix), ctx, secretPrefix) -} - -// GetOAuth2ProviderAppSecretByID mocks base method. -func (m *MockStore) GetOAuth2ProviderAppSecretByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderAppSecret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderAppSecretByID", ctx, id) - ret0, _ := ret[0].(database.OAuth2ProviderAppSecret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderAppSecretByID indicates an expected call of GetOAuth2ProviderAppSecretByID. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppSecretByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppSecretByID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppSecretByID), ctx, id) -} - -// GetOAuth2ProviderAppSecretByPrefix mocks base method. -func (m *MockStore) GetOAuth2ProviderAppSecretByPrefix(ctx context.Context, secretPrefix []byte) (database.OAuth2ProviderAppSecret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderAppSecretByPrefix", ctx, secretPrefix) - ret0, _ := ret[0].(database.OAuth2ProviderAppSecret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderAppSecretByPrefix indicates an expected call of GetOAuth2ProviderAppSecretByPrefix. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppSecretByPrefix(ctx, secretPrefix any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppSecretByPrefix", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppSecretByPrefix), ctx, secretPrefix) -} - -// GetOAuth2ProviderAppSecretsByAppID mocks base method. -func (m *MockStore) GetOAuth2ProviderAppSecretsByAppID(ctx context.Context, appID uuid.UUID) ([]database.OAuth2ProviderAppSecret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderAppSecretsByAppID", ctx, appID) - ret0, _ := ret[0].([]database.OAuth2ProviderAppSecret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderAppSecretsByAppID indicates an expected call of GetOAuth2ProviderAppSecretsByAppID. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppSecretsByAppID(ctx, appID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppSecretsByAppID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppSecretsByAppID), ctx, appID) -} - -// GetOAuth2ProviderAppTokenByAPIKeyID mocks base method. -func (m *MockStore) GetOAuth2ProviderAppTokenByAPIKeyID(ctx context.Context, apiKeyID string) (database.OAuth2ProviderAppToken, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderAppTokenByAPIKeyID", ctx, apiKeyID) - ret0, _ := ret[0].(database.OAuth2ProviderAppToken) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderAppTokenByAPIKeyID indicates an expected call of GetOAuth2ProviderAppTokenByAPIKeyID. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppTokenByAPIKeyID(ctx, apiKeyID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppTokenByAPIKeyID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppTokenByAPIKeyID), ctx, apiKeyID) -} - -// GetOAuth2ProviderAppTokenByPrefix mocks base method. -func (m *MockStore) GetOAuth2ProviderAppTokenByPrefix(ctx context.Context, hashPrefix []byte) (database.OAuth2ProviderAppToken, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderAppTokenByPrefix", ctx, hashPrefix) - ret0, _ := ret[0].(database.OAuth2ProviderAppToken) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderAppTokenByPrefix indicates an expected call of GetOAuth2ProviderAppTokenByPrefix. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppTokenByPrefix(ctx, hashPrefix any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppTokenByPrefix", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppTokenByPrefix), ctx, hashPrefix) -} - -// GetOAuth2ProviderApps mocks base method. -func (m *MockStore) GetOAuth2ProviderApps(ctx context.Context) ([]database.OAuth2ProviderApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderApps", ctx) - ret0, _ := ret[0].([]database.OAuth2ProviderApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderApps indicates an expected call of GetOAuth2ProviderApps. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderApps(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderApps", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderApps), ctx) -} - -// GetOAuth2ProviderAppsByUserID mocks base method. -func (m *MockStore) GetOAuth2ProviderAppsByUserID(ctx context.Context, userID uuid.UUID) ([]database.GetOAuth2ProviderAppsByUserIDRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuth2ProviderAppsByUserID", ctx, userID) - ret0, _ := ret[0].([]database.GetOAuth2ProviderAppsByUserIDRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuth2ProviderAppsByUserID indicates an expected call of GetOAuth2ProviderAppsByUserID. -func (mr *MockStoreMockRecorder) GetOAuth2ProviderAppsByUserID(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuth2ProviderAppsByUserID", reflect.TypeOf((*MockStore)(nil).GetOAuth2ProviderAppsByUserID), ctx, userID) -} - -// GetOAuthSigningKey mocks base method. -func (m *MockStore) GetOAuthSigningKey(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOAuthSigningKey", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOAuthSigningKey indicates an expected call of GetOAuthSigningKey. -func (mr *MockStoreMockRecorder) GetOAuthSigningKey(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOAuthSigningKey", reflect.TypeOf((*MockStore)(nil).GetOAuthSigningKey), ctx) -} - -// GetOrganizationByID mocks base method. -func (m *MockStore) GetOrganizationByID(ctx context.Context, id uuid.UUID) (database.Organization, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOrganizationByID", ctx, id) - ret0, _ := ret[0].(database.Organization) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOrganizationByID indicates an expected call of GetOrganizationByID. -func (mr *MockStoreMockRecorder) GetOrganizationByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationByID", reflect.TypeOf((*MockStore)(nil).GetOrganizationByID), ctx, id) -} - -// GetOrganizationByName mocks base method. -func (m *MockStore) GetOrganizationByName(ctx context.Context, arg database.GetOrganizationByNameParams) (database.Organization, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOrganizationByName", ctx, arg) - ret0, _ := ret[0].(database.Organization) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOrganizationByName indicates an expected call of GetOrganizationByName. -func (mr *MockStoreMockRecorder) GetOrganizationByName(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationByName", reflect.TypeOf((*MockStore)(nil).GetOrganizationByName), ctx, arg) -} - -// GetOrganizationIDsByMemberIDs mocks base method. -func (m *MockStore) GetOrganizationIDsByMemberIDs(ctx context.Context, ids []uuid.UUID) ([]database.GetOrganizationIDsByMemberIDsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOrganizationIDsByMemberIDs", ctx, ids) - ret0, _ := ret[0].([]database.GetOrganizationIDsByMemberIDsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOrganizationIDsByMemberIDs indicates an expected call of GetOrganizationIDsByMemberIDs. -func (mr *MockStoreMockRecorder) GetOrganizationIDsByMemberIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationIDsByMemberIDs", reflect.TypeOf((*MockStore)(nil).GetOrganizationIDsByMemberIDs), ctx, ids) -} - -// GetOrganizationResourceCountByID mocks base method. -func (m *MockStore) GetOrganizationResourceCountByID(ctx context.Context, organizationID uuid.UUID) (database.GetOrganizationResourceCountByIDRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOrganizationResourceCountByID", ctx, organizationID) - ret0, _ := ret[0].(database.GetOrganizationResourceCountByIDRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOrganizationResourceCountByID indicates an expected call of GetOrganizationResourceCountByID. -func (mr *MockStoreMockRecorder) GetOrganizationResourceCountByID(ctx, organizationID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationResourceCountByID", reflect.TypeOf((*MockStore)(nil).GetOrganizationResourceCountByID), ctx, organizationID) -} - -// GetOrganizations mocks base method. -func (m *MockStore) GetOrganizations(ctx context.Context, arg database.GetOrganizationsParams) ([]database.Organization, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOrganizations", ctx, arg) - ret0, _ := ret[0].([]database.Organization) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOrganizations indicates an expected call of GetOrganizations. -func (mr *MockStoreMockRecorder) GetOrganizations(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizations", reflect.TypeOf((*MockStore)(nil).GetOrganizations), ctx, arg) -} - -// GetOrganizationsByUserID mocks base method. -func (m *MockStore) GetOrganizationsByUserID(ctx context.Context, arg database.GetOrganizationsByUserIDParams) ([]database.Organization, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOrganizationsByUserID", ctx, arg) - ret0, _ := ret[0].([]database.Organization) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOrganizationsByUserID indicates an expected call of GetOrganizationsByUserID. -func (mr *MockStoreMockRecorder) GetOrganizationsByUserID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationsByUserID", reflect.TypeOf((*MockStore)(nil).GetOrganizationsByUserID), ctx, arg) -} - -// GetOrganizationsWithPrebuildStatus mocks base method. -func (m *MockStore) GetOrganizationsWithPrebuildStatus(ctx context.Context, arg database.GetOrganizationsWithPrebuildStatusParams) ([]database.GetOrganizationsWithPrebuildStatusRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOrganizationsWithPrebuildStatus", ctx, arg) - ret0, _ := ret[0].([]database.GetOrganizationsWithPrebuildStatusRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOrganizationsWithPrebuildStatus indicates an expected call of GetOrganizationsWithPrebuildStatus. -func (mr *MockStoreMockRecorder) GetOrganizationsWithPrebuildStatus(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationsWithPrebuildStatus", reflect.TypeOf((*MockStore)(nil).GetOrganizationsWithPrebuildStatus), ctx, arg) -} - -// GetParameterSchemasByJobID mocks base method. -func (m *MockStore) GetParameterSchemasByJobID(ctx context.Context, jobID uuid.UUID) ([]database.ParameterSchema, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetParameterSchemasByJobID", ctx, jobID) - ret0, _ := ret[0].([]database.ParameterSchema) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetParameterSchemasByJobID indicates an expected call of GetParameterSchemasByJobID. -func (mr *MockStoreMockRecorder) GetParameterSchemasByJobID(ctx, jobID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetParameterSchemasByJobID", reflect.TypeOf((*MockStore)(nil).GetParameterSchemasByJobID), ctx, jobID) -} - -// GetPrebuildMetrics mocks base method. -func (m *MockStore) GetPrebuildMetrics(ctx context.Context) ([]database.GetPrebuildMetricsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPrebuildMetrics", ctx) - ret0, _ := ret[0].([]database.GetPrebuildMetricsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPrebuildMetrics indicates an expected call of GetPrebuildMetrics. -func (mr *MockStoreMockRecorder) GetPrebuildMetrics(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPrebuildMetrics", reflect.TypeOf((*MockStore)(nil).GetPrebuildMetrics), ctx) -} - -// GetPrebuildsSettings mocks base method. -func (m *MockStore) GetPrebuildsSettings(ctx context.Context) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPrebuildsSettings", ctx) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPrebuildsSettings indicates an expected call of GetPrebuildsSettings. -func (mr *MockStoreMockRecorder) GetPrebuildsSettings(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPrebuildsSettings", reflect.TypeOf((*MockStore)(nil).GetPrebuildsSettings), ctx) -} - -// GetPresetByID mocks base method. -func (m *MockStore) GetPresetByID(ctx context.Context, presetID uuid.UUID) (database.GetPresetByIDRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPresetByID", ctx, presetID) - ret0, _ := ret[0].(database.GetPresetByIDRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPresetByID indicates an expected call of GetPresetByID. -func (mr *MockStoreMockRecorder) GetPresetByID(ctx, presetID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetByID", reflect.TypeOf((*MockStore)(nil).GetPresetByID), ctx, presetID) -} - -// GetPresetByWorkspaceBuildID mocks base method. -func (m *MockStore) GetPresetByWorkspaceBuildID(ctx context.Context, workspaceBuildID uuid.UUID) (database.TemplateVersionPreset, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPresetByWorkspaceBuildID", ctx, workspaceBuildID) - ret0, _ := ret[0].(database.TemplateVersionPreset) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPresetByWorkspaceBuildID indicates an expected call of GetPresetByWorkspaceBuildID. -func (mr *MockStoreMockRecorder) GetPresetByWorkspaceBuildID(ctx, workspaceBuildID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetByWorkspaceBuildID", reflect.TypeOf((*MockStore)(nil).GetPresetByWorkspaceBuildID), ctx, workspaceBuildID) -} - -// GetPresetParametersByPresetID mocks base method. -func (m *MockStore) GetPresetParametersByPresetID(ctx context.Context, presetID uuid.UUID) ([]database.TemplateVersionPresetParameter, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPresetParametersByPresetID", ctx, presetID) - ret0, _ := ret[0].([]database.TemplateVersionPresetParameter) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPresetParametersByPresetID indicates an expected call of GetPresetParametersByPresetID. -func (mr *MockStoreMockRecorder) GetPresetParametersByPresetID(ctx, presetID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetParametersByPresetID", reflect.TypeOf((*MockStore)(nil).GetPresetParametersByPresetID), ctx, presetID) -} - -// GetPresetParametersByTemplateVersionID mocks base method. -func (m *MockStore) GetPresetParametersByTemplateVersionID(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionPresetParameter, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPresetParametersByTemplateVersionID", ctx, templateVersionID) - ret0, _ := ret[0].([]database.TemplateVersionPresetParameter) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPresetParametersByTemplateVersionID indicates an expected call of GetPresetParametersByTemplateVersionID. -func (mr *MockStoreMockRecorder) GetPresetParametersByTemplateVersionID(ctx, templateVersionID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetParametersByTemplateVersionID", reflect.TypeOf((*MockStore)(nil).GetPresetParametersByTemplateVersionID), ctx, templateVersionID) -} - -// GetPresetsAtFailureLimit mocks base method. -func (m *MockStore) GetPresetsAtFailureLimit(ctx context.Context, hardLimit int64) ([]database.GetPresetsAtFailureLimitRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPresetsAtFailureLimit", ctx, hardLimit) - ret0, _ := ret[0].([]database.GetPresetsAtFailureLimitRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPresetsAtFailureLimit indicates an expected call of GetPresetsAtFailureLimit. -func (mr *MockStoreMockRecorder) GetPresetsAtFailureLimit(ctx, hardLimit any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetsAtFailureLimit", reflect.TypeOf((*MockStore)(nil).GetPresetsAtFailureLimit), ctx, hardLimit) -} - -// GetPresetsBackoff mocks base method. -func (m *MockStore) GetPresetsBackoff(ctx context.Context, lookback time.Time) ([]database.GetPresetsBackoffRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPresetsBackoff", ctx, lookback) - ret0, _ := ret[0].([]database.GetPresetsBackoffRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPresetsBackoff indicates an expected call of GetPresetsBackoff. -func (mr *MockStoreMockRecorder) GetPresetsBackoff(ctx, lookback any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetsBackoff", reflect.TypeOf((*MockStore)(nil).GetPresetsBackoff), ctx, lookback) -} - -// GetPresetsByTemplateVersionID mocks base method. -func (m *MockStore) GetPresetsByTemplateVersionID(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionPreset, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPresetsByTemplateVersionID", ctx, templateVersionID) - ret0, _ := ret[0].([]database.TemplateVersionPreset) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPresetsByTemplateVersionID indicates an expected call of GetPresetsByTemplateVersionID. -func (mr *MockStoreMockRecorder) GetPresetsByTemplateVersionID(ctx, templateVersionID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPresetsByTemplateVersionID", reflect.TypeOf((*MockStore)(nil).GetPresetsByTemplateVersionID), ctx, templateVersionID) -} - -// GetPreviousTemplateVersion mocks base method. -func (m *MockStore) GetPreviousTemplateVersion(ctx context.Context, arg database.GetPreviousTemplateVersionParams) (database.TemplateVersion, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPreviousTemplateVersion", ctx, arg) - ret0, _ := ret[0].(database.TemplateVersion) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPreviousTemplateVersion indicates an expected call of GetPreviousTemplateVersion. -func (mr *MockStoreMockRecorder) GetPreviousTemplateVersion(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPreviousTemplateVersion", reflect.TypeOf((*MockStore)(nil).GetPreviousTemplateVersion), ctx, arg) -} - -// GetProvisionerDaemons mocks base method. -func (m *MockStore) GetProvisionerDaemons(ctx context.Context) ([]database.ProvisionerDaemon, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerDaemons", ctx) - ret0, _ := ret[0].([]database.ProvisionerDaemon) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerDaemons indicates an expected call of GetProvisionerDaemons. -func (mr *MockStoreMockRecorder) GetProvisionerDaemons(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerDaemons", reflect.TypeOf((*MockStore)(nil).GetProvisionerDaemons), ctx) -} - -// GetProvisionerDaemonsByOrganization mocks base method. -func (m *MockStore) GetProvisionerDaemonsByOrganization(ctx context.Context, arg database.GetProvisionerDaemonsByOrganizationParams) ([]database.ProvisionerDaemon, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerDaemonsByOrganization", ctx, arg) - ret0, _ := ret[0].([]database.ProvisionerDaemon) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerDaemonsByOrganization indicates an expected call of GetProvisionerDaemonsByOrganization. -func (mr *MockStoreMockRecorder) GetProvisionerDaemonsByOrganization(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerDaemonsByOrganization", reflect.TypeOf((*MockStore)(nil).GetProvisionerDaemonsByOrganization), ctx, arg) -} - -// GetProvisionerDaemonsWithStatusByOrganization mocks base method. -func (m *MockStore) GetProvisionerDaemonsWithStatusByOrganization(ctx context.Context, arg database.GetProvisionerDaemonsWithStatusByOrganizationParams) ([]database.GetProvisionerDaemonsWithStatusByOrganizationRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerDaemonsWithStatusByOrganization", ctx, arg) - ret0, _ := ret[0].([]database.GetProvisionerDaemonsWithStatusByOrganizationRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerDaemonsWithStatusByOrganization indicates an expected call of GetProvisionerDaemonsWithStatusByOrganization. -func (mr *MockStoreMockRecorder) GetProvisionerDaemonsWithStatusByOrganization(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerDaemonsWithStatusByOrganization", reflect.TypeOf((*MockStore)(nil).GetProvisionerDaemonsWithStatusByOrganization), ctx, arg) -} - -// GetProvisionerJobByID mocks base method. -func (m *MockStore) GetProvisionerJobByID(ctx context.Context, id uuid.UUID) (database.ProvisionerJob, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerJobByID", ctx, id) - ret0, _ := ret[0].(database.ProvisionerJob) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerJobByID indicates an expected call of GetProvisionerJobByID. -func (mr *MockStoreMockRecorder) GetProvisionerJobByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobByID", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobByID), ctx, id) -} - -// GetProvisionerJobByIDForUpdate mocks base method. -func (m *MockStore) GetProvisionerJobByIDForUpdate(ctx context.Context, id uuid.UUID) (database.ProvisionerJob, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerJobByIDForUpdate", ctx, id) - ret0, _ := ret[0].(database.ProvisionerJob) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerJobByIDForUpdate indicates an expected call of GetProvisionerJobByIDForUpdate. -func (mr *MockStoreMockRecorder) GetProvisionerJobByIDForUpdate(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobByIDForUpdate", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobByIDForUpdate), ctx, id) -} - -// GetProvisionerJobByIDWithLock mocks base method. -func (m *MockStore) GetProvisionerJobByIDWithLock(ctx context.Context, id uuid.UUID) (database.ProvisionerJob, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerJobByIDWithLock", ctx, id) - ret0, _ := ret[0].(database.ProvisionerJob) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerJobByIDWithLock indicates an expected call of GetProvisionerJobByIDWithLock. -func (mr *MockStoreMockRecorder) GetProvisionerJobByIDWithLock(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobByIDWithLock", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobByIDWithLock), ctx, id) -} - -// GetProvisionerJobTimingsByJobID mocks base method. -func (m *MockStore) GetProvisionerJobTimingsByJobID(ctx context.Context, jobID uuid.UUID) ([]database.ProvisionerJobTiming, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerJobTimingsByJobID", ctx, jobID) - ret0, _ := ret[0].([]database.ProvisionerJobTiming) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerJobTimingsByJobID indicates an expected call of GetProvisionerJobTimingsByJobID. -func (mr *MockStoreMockRecorder) GetProvisionerJobTimingsByJobID(ctx, jobID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobTimingsByJobID", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobTimingsByJobID), ctx, jobID) -} - -// GetProvisionerJobsByIDs mocks base method. -func (m *MockStore) GetProvisionerJobsByIDs(ctx context.Context, ids []uuid.UUID) ([]database.ProvisionerJob, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerJobsByIDs", ctx, ids) - ret0, _ := ret[0].([]database.ProvisionerJob) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerJobsByIDs indicates an expected call of GetProvisionerJobsByIDs. -func (mr *MockStoreMockRecorder) GetProvisionerJobsByIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobsByIDs", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobsByIDs), ctx, ids) -} - -// GetProvisionerJobsByIDsWithQueuePosition mocks base method. -func (m *MockStore) GetProvisionerJobsByIDsWithQueuePosition(ctx context.Context, arg database.GetProvisionerJobsByIDsWithQueuePositionParams) ([]database.GetProvisionerJobsByIDsWithQueuePositionRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerJobsByIDsWithQueuePosition", ctx, arg) - ret0, _ := ret[0].([]database.GetProvisionerJobsByIDsWithQueuePositionRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerJobsByIDsWithQueuePosition indicates an expected call of GetProvisionerJobsByIDsWithQueuePosition. -func (mr *MockStoreMockRecorder) GetProvisionerJobsByIDsWithQueuePosition(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobsByIDsWithQueuePosition", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobsByIDsWithQueuePosition), ctx, arg) -} - -// GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner mocks base method. -func (m *MockStore) GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner(ctx context.Context, arg database.GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisionerParams) ([]database.GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisionerRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner", ctx, arg) - ret0, _ := ret[0].([]database.GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisionerRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner indicates an expected call of GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner. -func (mr *MockStoreMockRecorder) GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner), ctx, arg) -} - -// GetProvisionerJobsCreatedAfter mocks base method. -func (m *MockStore) GetProvisionerJobsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.ProvisionerJob, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerJobsCreatedAfter", ctx, createdAt) - ret0, _ := ret[0].([]database.ProvisionerJob) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerJobsCreatedAfter indicates an expected call of GetProvisionerJobsCreatedAfter. -func (mr *MockStoreMockRecorder) GetProvisionerJobsCreatedAfter(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobsCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobsCreatedAfter), ctx, createdAt) -} - -// GetProvisionerJobsToBeReaped mocks base method. -func (m *MockStore) GetProvisionerJobsToBeReaped(ctx context.Context, arg database.GetProvisionerJobsToBeReapedParams) ([]database.ProvisionerJob, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerJobsToBeReaped", ctx, arg) - ret0, _ := ret[0].([]database.ProvisionerJob) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerJobsToBeReaped indicates an expected call of GetProvisionerJobsToBeReaped. -func (mr *MockStoreMockRecorder) GetProvisionerJobsToBeReaped(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerJobsToBeReaped", reflect.TypeOf((*MockStore)(nil).GetProvisionerJobsToBeReaped), ctx, arg) -} - -// GetProvisionerKeyByHashedSecret mocks base method. -func (m *MockStore) GetProvisionerKeyByHashedSecret(ctx context.Context, hashedSecret []byte) (database.ProvisionerKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerKeyByHashedSecret", ctx, hashedSecret) - ret0, _ := ret[0].(database.ProvisionerKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerKeyByHashedSecret indicates an expected call of GetProvisionerKeyByHashedSecret. -func (mr *MockStoreMockRecorder) GetProvisionerKeyByHashedSecret(ctx, hashedSecret any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerKeyByHashedSecret", reflect.TypeOf((*MockStore)(nil).GetProvisionerKeyByHashedSecret), ctx, hashedSecret) -} - -// GetProvisionerKeyByID mocks base method. -func (m *MockStore) GetProvisionerKeyByID(ctx context.Context, id uuid.UUID) (database.ProvisionerKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerKeyByID", ctx, id) - ret0, _ := ret[0].(database.ProvisionerKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerKeyByID indicates an expected call of GetProvisionerKeyByID. -func (mr *MockStoreMockRecorder) GetProvisionerKeyByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerKeyByID", reflect.TypeOf((*MockStore)(nil).GetProvisionerKeyByID), ctx, id) -} - -// GetProvisionerKeyByName mocks base method. -func (m *MockStore) GetProvisionerKeyByName(ctx context.Context, arg database.GetProvisionerKeyByNameParams) (database.ProvisionerKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerKeyByName", ctx, arg) - ret0, _ := ret[0].(database.ProvisionerKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerKeyByName indicates an expected call of GetProvisionerKeyByName. -func (mr *MockStoreMockRecorder) GetProvisionerKeyByName(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerKeyByName", reflect.TypeOf((*MockStore)(nil).GetProvisionerKeyByName), ctx, arg) -} - -// GetProvisionerLogsAfterID mocks base method. -func (m *MockStore) GetProvisionerLogsAfterID(ctx context.Context, arg database.GetProvisionerLogsAfterIDParams) ([]database.ProvisionerJobLog, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProvisionerLogsAfterID", ctx, arg) - ret0, _ := ret[0].([]database.ProvisionerJobLog) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProvisionerLogsAfterID indicates an expected call of GetProvisionerLogsAfterID. -func (mr *MockStoreMockRecorder) GetProvisionerLogsAfterID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProvisionerLogsAfterID", reflect.TypeOf((*MockStore)(nil).GetProvisionerLogsAfterID), ctx, arg) -} - -// GetQuotaAllowanceForUser mocks base method. -func (m *MockStore) GetQuotaAllowanceForUser(ctx context.Context, arg database.GetQuotaAllowanceForUserParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetQuotaAllowanceForUser", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetQuotaAllowanceForUser indicates an expected call of GetQuotaAllowanceForUser. -func (mr *MockStoreMockRecorder) GetQuotaAllowanceForUser(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQuotaAllowanceForUser", reflect.TypeOf((*MockStore)(nil).GetQuotaAllowanceForUser), ctx, arg) -} - -// GetQuotaConsumedForUser mocks base method. -func (m *MockStore) GetQuotaConsumedForUser(ctx context.Context, arg database.GetQuotaConsumedForUserParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetQuotaConsumedForUser", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetQuotaConsumedForUser indicates an expected call of GetQuotaConsumedForUser. -func (mr *MockStoreMockRecorder) GetQuotaConsumedForUser(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQuotaConsumedForUser", reflect.TypeOf((*MockStore)(nil).GetQuotaConsumedForUser), ctx, arg) -} - -// GetRegularWorkspaceCreateMetrics mocks base method. -func (m *MockStore) GetRegularWorkspaceCreateMetrics(ctx context.Context) ([]database.GetRegularWorkspaceCreateMetricsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetRegularWorkspaceCreateMetrics", ctx) - ret0, _ := ret[0].([]database.GetRegularWorkspaceCreateMetricsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetRegularWorkspaceCreateMetrics indicates an expected call of GetRegularWorkspaceCreateMetrics. -func (mr *MockStoreMockRecorder) GetRegularWorkspaceCreateMetrics(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRegularWorkspaceCreateMetrics", reflect.TypeOf((*MockStore)(nil).GetRegularWorkspaceCreateMetrics), ctx) -} - -// GetReplicaByID mocks base method. -func (m *MockStore) GetReplicaByID(ctx context.Context, id uuid.UUID) (database.Replica, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetReplicaByID", ctx, id) - ret0, _ := ret[0].(database.Replica) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetReplicaByID indicates an expected call of GetReplicaByID. -func (mr *MockStoreMockRecorder) GetReplicaByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReplicaByID", reflect.TypeOf((*MockStore)(nil).GetReplicaByID), ctx, id) -} - -// GetReplicasUpdatedAfter mocks base method. -func (m *MockStore) GetReplicasUpdatedAfter(ctx context.Context, updatedAt time.Time) ([]database.Replica, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetReplicasUpdatedAfter", ctx, updatedAt) - ret0, _ := ret[0].([]database.Replica) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetReplicasUpdatedAfter indicates an expected call of GetReplicasUpdatedAfter. -func (mr *MockStoreMockRecorder) GetReplicasUpdatedAfter(ctx, updatedAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReplicasUpdatedAfter", reflect.TypeOf((*MockStore)(nil).GetReplicasUpdatedAfter), ctx, updatedAt) -} - -// GetRunningPrebuiltWorkspaces mocks base method. -func (m *MockStore) GetRunningPrebuiltWorkspaces(ctx context.Context) ([]database.GetRunningPrebuiltWorkspacesRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetRunningPrebuiltWorkspaces", ctx) - ret0, _ := ret[0].([]database.GetRunningPrebuiltWorkspacesRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetRunningPrebuiltWorkspaces indicates an expected call of GetRunningPrebuiltWorkspaces. -func (mr *MockStoreMockRecorder) GetRunningPrebuiltWorkspaces(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRunningPrebuiltWorkspaces", reflect.TypeOf((*MockStore)(nil).GetRunningPrebuiltWorkspaces), ctx) -} - -// GetRuntimeConfig mocks base method. -func (m *MockStore) GetRuntimeConfig(ctx context.Context, key string) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetRuntimeConfig", ctx, key) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetRuntimeConfig indicates an expected call of GetRuntimeConfig. -func (mr *MockStoreMockRecorder) GetRuntimeConfig(ctx, key any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRuntimeConfig", reflect.TypeOf((*MockStore)(nil).GetRuntimeConfig), ctx, key) -} - -// GetTailnetAgents mocks base method. -func (m *MockStore) GetTailnetAgents(ctx context.Context, id uuid.UUID) ([]database.TailnetAgent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTailnetAgents", ctx, id) - ret0, _ := ret[0].([]database.TailnetAgent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTailnetAgents indicates an expected call of GetTailnetAgents. -func (mr *MockStoreMockRecorder) GetTailnetAgents(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTailnetAgents", reflect.TypeOf((*MockStore)(nil).GetTailnetAgents), ctx, id) -} - -// GetTailnetClientsForAgent mocks base method. -func (m *MockStore) GetTailnetClientsForAgent(ctx context.Context, agentID uuid.UUID) ([]database.TailnetClient, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTailnetClientsForAgent", ctx, agentID) - ret0, _ := ret[0].([]database.TailnetClient) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTailnetClientsForAgent indicates an expected call of GetTailnetClientsForAgent. -func (mr *MockStoreMockRecorder) GetTailnetClientsForAgent(ctx, agentID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTailnetClientsForAgent", reflect.TypeOf((*MockStore)(nil).GetTailnetClientsForAgent), ctx, agentID) -} - -// GetTailnetPeers mocks base method. -func (m *MockStore) GetTailnetPeers(ctx context.Context, id uuid.UUID) ([]database.TailnetPeer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTailnetPeers", ctx, id) - ret0, _ := ret[0].([]database.TailnetPeer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTailnetPeers indicates an expected call of GetTailnetPeers. -func (mr *MockStoreMockRecorder) GetTailnetPeers(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTailnetPeers", reflect.TypeOf((*MockStore)(nil).GetTailnetPeers), ctx, id) -} - -// GetTailnetTunnelPeerBindings mocks base method. -func (m *MockStore) GetTailnetTunnelPeerBindings(ctx context.Context, srcID uuid.UUID) ([]database.GetTailnetTunnelPeerBindingsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTailnetTunnelPeerBindings", ctx, srcID) - ret0, _ := ret[0].([]database.GetTailnetTunnelPeerBindingsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTailnetTunnelPeerBindings indicates an expected call of GetTailnetTunnelPeerBindings. -func (mr *MockStoreMockRecorder) GetTailnetTunnelPeerBindings(ctx, srcID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTailnetTunnelPeerBindings", reflect.TypeOf((*MockStore)(nil).GetTailnetTunnelPeerBindings), ctx, srcID) -} - -// GetTailnetTunnelPeerIDs mocks base method. -func (m *MockStore) GetTailnetTunnelPeerIDs(ctx context.Context, srcID uuid.UUID) ([]database.GetTailnetTunnelPeerIDsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTailnetTunnelPeerIDs", ctx, srcID) - ret0, _ := ret[0].([]database.GetTailnetTunnelPeerIDsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTailnetTunnelPeerIDs indicates an expected call of GetTailnetTunnelPeerIDs. -func (mr *MockStoreMockRecorder) GetTailnetTunnelPeerIDs(ctx, srcID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTailnetTunnelPeerIDs", reflect.TypeOf((*MockStore)(nil).GetTailnetTunnelPeerIDs), ctx, srcID) -} - -// GetTaskByID mocks base method. -func (m *MockStore) GetTaskByID(ctx context.Context, id uuid.UUID) (database.Task, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTaskByID", ctx, id) - ret0, _ := ret[0].(database.Task) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTaskByID indicates an expected call of GetTaskByID. -func (mr *MockStoreMockRecorder) GetTaskByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTaskByID", reflect.TypeOf((*MockStore)(nil).GetTaskByID), ctx, id) -} - -// GetTaskByOwnerIDAndName mocks base method. -func (m *MockStore) GetTaskByOwnerIDAndName(ctx context.Context, arg database.GetTaskByOwnerIDAndNameParams) (database.Task, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTaskByOwnerIDAndName", ctx, arg) - ret0, _ := ret[0].(database.Task) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTaskByOwnerIDAndName indicates an expected call of GetTaskByOwnerIDAndName. -func (mr *MockStoreMockRecorder) GetTaskByOwnerIDAndName(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTaskByOwnerIDAndName", reflect.TypeOf((*MockStore)(nil).GetTaskByOwnerIDAndName), ctx, arg) -} - -// GetTaskByWorkspaceID mocks base method. -func (m *MockStore) GetTaskByWorkspaceID(ctx context.Context, workspaceID uuid.UUID) (database.Task, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTaskByWorkspaceID", ctx, workspaceID) - ret0, _ := ret[0].(database.Task) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTaskByWorkspaceID indicates an expected call of GetTaskByWorkspaceID. -func (mr *MockStoreMockRecorder) GetTaskByWorkspaceID(ctx, workspaceID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTaskByWorkspaceID", reflect.TypeOf((*MockStore)(nil).GetTaskByWorkspaceID), ctx, workspaceID) -} - -// GetTelemetryItem mocks base method. -func (m *MockStore) GetTelemetryItem(ctx context.Context, key string) (database.TelemetryItem, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTelemetryItem", ctx, key) - ret0, _ := ret[0].(database.TelemetryItem) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTelemetryItem indicates an expected call of GetTelemetryItem. -func (mr *MockStoreMockRecorder) GetTelemetryItem(ctx, key any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTelemetryItem", reflect.TypeOf((*MockStore)(nil).GetTelemetryItem), ctx, key) -} - -// GetTelemetryItems mocks base method. -func (m *MockStore) GetTelemetryItems(ctx context.Context) ([]database.TelemetryItem, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTelemetryItems", ctx) - ret0, _ := ret[0].([]database.TelemetryItem) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTelemetryItems indicates an expected call of GetTelemetryItems. -func (mr *MockStoreMockRecorder) GetTelemetryItems(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTelemetryItems", reflect.TypeOf((*MockStore)(nil).GetTelemetryItems), ctx) -} - -// GetTemplateAppInsights mocks base method. -func (m *MockStore) GetTemplateAppInsights(ctx context.Context, arg database.GetTemplateAppInsightsParams) ([]database.GetTemplateAppInsightsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateAppInsights", ctx, arg) - ret0, _ := ret[0].([]database.GetTemplateAppInsightsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateAppInsights indicates an expected call of GetTemplateAppInsights. -func (mr *MockStoreMockRecorder) GetTemplateAppInsights(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateAppInsights", reflect.TypeOf((*MockStore)(nil).GetTemplateAppInsights), ctx, arg) -} - -// GetTemplateAppInsightsByTemplate mocks base method. -func (m *MockStore) GetTemplateAppInsightsByTemplate(ctx context.Context, arg database.GetTemplateAppInsightsByTemplateParams) ([]database.GetTemplateAppInsightsByTemplateRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateAppInsightsByTemplate", ctx, arg) - ret0, _ := ret[0].([]database.GetTemplateAppInsightsByTemplateRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateAppInsightsByTemplate indicates an expected call of GetTemplateAppInsightsByTemplate. -func (mr *MockStoreMockRecorder) GetTemplateAppInsightsByTemplate(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateAppInsightsByTemplate", reflect.TypeOf((*MockStore)(nil).GetTemplateAppInsightsByTemplate), ctx, arg) -} - -// GetTemplateAverageBuildTime mocks base method. -func (m *MockStore) GetTemplateAverageBuildTime(ctx context.Context, templateID uuid.NullUUID) (database.GetTemplateAverageBuildTimeRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateAverageBuildTime", ctx, templateID) - ret0, _ := ret[0].(database.GetTemplateAverageBuildTimeRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateAverageBuildTime indicates an expected call of GetTemplateAverageBuildTime. -func (mr *MockStoreMockRecorder) GetTemplateAverageBuildTime(ctx, templateID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateAverageBuildTime", reflect.TypeOf((*MockStore)(nil).GetTemplateAverageBuildTime), ctx, templateID) -} - -// GetTemplateByID mocks base method. -func (m *MockStore) GetTemplateByID(ctx context.Context, id uuid.UUID) (database.Template, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateByID", ctx, id) - ret0, _ := ret[0].(database.Template) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateByID indicates an expected call of GetTemplateByID. -func (mr *MockStoreMockRecorder) GetTemplateByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateByID", reflect.TypeOf((*MockStore)(nil).GetTemplateByID), ctx, id) -} - -// GetTemplateByOrganizationAndName mocks base method. -func (m *MockStore) GetTemplateByOrganizationAndName(ctx context.Context, arg database.GetTemplateByOrganizationAndNameParams) (database.Template, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateByOrganizationAndName", ctx, arg) - ret0, _ := ret[0].(database.Template) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateByOrganizationAndName indicates an expected call of GetTemplateByOrganizationAndName. -func (mr *MockStoreMockRecorder) GetTemplateByOrganizationAndName(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateByOrganizationAndName", reflect.TypeOf((*MockStore)(nil).GetTemplateByOrganizationAndName), ctx, arg) -} - -// GetTemplateDAUs mocks base method. -func (m *MockStore) GetTemplateDAUs(ctx context.Context, arg database.GetTemplateDAUsParams) ([]database.GetTemplateDAUsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateDAUs", ctx, arg) - ret0, _ := ret[0].([]database.GetTemplateDAUsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateDAUs indicates an expected call of GetTemplateDAUs. -func (mr *MockStoreMockRecorder) GetTemplateDAUs(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateDAUs", reflect.TypeOf((*MockStore)(nil).GetTemplateDAUs), ctx, arg) -} - -// GetTemplateGroupRoles mocks base method. -func (m *MockStore) GetTemplateGroupRoles(ctx context.Context, id uuid.UUID) ([]database.TemplateGroup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateGroupRoles", ctx, id) - ret0, _ := ret[0].([]database.TemplateGroup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateGroupRoles indicates an expected call of GetTemplateGroupRoles. -func (mr *MockStoreMockRecorder) GetTemplateGroupRoles(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateGroupRoles", reflect.TypeOf((*MockStore)(nil).GetTemplateGroupRoles), ctx, id) -} - -// GetTemplateInsights mocks base method. -func (m *MockStore) GetTemplateInsights(ctx context.Context, arg database.GetTemplateInsightsParams) (database.GetTemplateInsightsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateInsights", ctx, arg) - ret0, _ := ret[0].(database.GetTemplateInsightsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateInsights indicates an expected call of GetTemplateInsights. -func (mr *MockStoreMockRecorder) GetTemplateInsights(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateInsights", reflect.TypeOf((*MockStore)(nil).GetTemplateInsights), ctx, arg) -} - -// GetTemplateInsightsByInterval mocks base method. -func (m *MockStore) GetTemplateInsightsByInterval(ctx context.Context, arg database.GetTemplateInsightsByIntervalParams) ([]database.GetTemplateInsightsByIntervalRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateInsightsByInterval", ctx, arg) - ret0, _ := ret[0].([]database.GetTemplateInsightsByIntervalRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateInsightsByInterval indicates an expected call of GetTemplateInsightsByInterval. -func (mr *MockStoreMockRecorder) GetTemplateInsightsByInterval(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateInsightsByInterval", reflect.TypeOf((*MockStore)(nil).GetTemplateInsightsByInterval), ctx, arg) -} - -// GetTemplateInsightsByTemplate mocks base method. -func (m *MockStore) GetTemplateInsightsByTemplate(ctx context.Context, arg database.GetTemplateInsightsByTemplateParams) ([]database.GetTemplateInsightsByTemplateRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateInsightsByTemplate", ctx, arg) - ret0, _ := ret[0].([]database.GetTemplateInsightsByTemplateRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateInsightsByTemplate indicates an expected call of GetTemplateInsightsByTemplate. -func (mr *MockStoreMockRecorder) GetTemplateInsightsByTemplate(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateInsightsByTemplate", reflect.TypeOf((*MockStore)(nil).GetTemplateInsightsByTemplate), ctx, arg) -} - -// GetTemplateParameterInsights mocks base method. -func (m *MockStore) GetTemplateParameterInsights(ctx context.Context, arg database.GetTemplateParameterInsightsParams) ([]database.GetTemplateParameterInsightsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateParameterInsights", ctx, arg) - ret0, _ := ret[0].([]database.GetTemplateParameterInsightsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateParameterInsights indicates an expected call of GetTemplateParameterInsights. -func (mr *MockStoreMockRecorder) GetTemplateParameterInsights(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateParameterInsights", reflect.TypeOf((*MockStore)(nil).GetTemplateParameterInsights), ctx, arg) -} - -// GetTemplatePresetsWithPrebuilds mocks base method. -func (m *MockStore) GetTemplatePresetsWithPrebuilds(ctx context.Context, templateID uuid.NullUUID) ([]database.GetTemplatePresetsWithPrebuildsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplatePresetsWithPrebuilds", ctx, templateID) - ret0, _ := ret[0].([]database.GetTemplatePresetsWithPrebuildsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplatePresetsWithPrebuilds indicates an expected call of GetTemplatePresetsWithPrebuilds. -func (mr *MockStoreMockRecorder) GetTemplatePresetsWithPrebuilds(ctx, templateID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplatePresetsWithPrebuilds", reflect.TypeOf((*MockStore)(nil).GetTemplatePresetsWithPrebuilds), ctx, templateID) -} - -// GetTemplateUsageStats mocks base method. -func (m *MockStore) GetTemplateUsageStats(ctx context.Context, arg database.GetTemplateUsageStatsParams) ([]database.TemplateUsageStat, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateUsageStats", ctx, arg) - ret0, _ := ret[0].([]database.TemplateUsageStat) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateUsageStats indicates an expected call of GetTemplateUsageStats. -func (mr *MockStoreMockRecorder) GetTemplateUsageStats(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateUsageStats", reflect.TypeOf((*MockStore)(nil).GetTemplateUsageStats), ctx, arg) -} - -// GetTemplateUserRoles mocks base method. -func (m *MockStore) GetTemplateUserRoles(ctx context.Context, id uuid.UUID) ([]database.TemplateUser, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateUserRoles", ctx, id) - ret0, _ := ret[0].([]database.TemplateUser) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateUserRoles indicates an expected call of GetTemplateUserRoles. -func (mr *MockStoreMockRecorder) GetTemplateUserRoles(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateUserRoles", reflect.TypeOf((*MockStore)(nil).GetTemplateUserRoles), ctx, id) -} - -// GetTemplateVersionByID mocks base method. -func (m *MockStore) GetTemplateVersionByID(ctx context.Context, id uuid.UUID) (database.TemplateVersion, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateVersionByID", ctx, id) - ret0, _ := ret[0].(database.TemplateVersion) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateVersionByID indicates an expected call of GetTemplateVersionByID. -func (mr *MockStoreMockRecorder) GetTemplateVersionByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionByID", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionByID), ctx, id) -} - -// GetTemplateVersionByJobID mocks base method. -func (m *MockStore) GetTemplateVersionByJobID(ctx context.Context, jobID uuid.UUID) (database.TemplateVersion, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateVersionByJobID", ctx, jobID) - ret0, _ := ret[0].(database.TemplateVersion) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateVersionByJobID indicates an expected call of GetTemplateVersionByJobID. -func (mr *MockStoreMockRecorder) GetTemplateVersionByJobID(ctx, jobID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionByJobID", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionByJobID), ctx, jobID) -} - -// GetTemplateVersionByTemplateIDAndName mocks base method. -func (m *MockStore) GetTemplateVersionByTemplateIDAndName(ctx context.Context, arg database.GetTemplateVersionByTemplateIDAndNameParams) (database.TemplateVersion, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateVersionByTemplateIDAndName", ctx, arg) - ret0, _ := ret[0].(database.TemplateVersion) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateVersionByTemplateIDAndName indicates an expected call of GetTemplateVersionByTemplateIDAndName. -func (mr *MockStoreMockRecorder) GetTemplateVersionByTemplateIDAndName(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionByTemplateIDAndName", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionByTemplateIDAndName), ctx, arg) -} - -// GetTemplateVersionHasAITask mocks base method. -func (m *MockStore) GetTemplateVersionHasAITask(ctx context.Context, id uuid.UUID) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateVersionHasAITask", ctx, id) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateVersionHasAITask indicates an expected call of GetTemplateVersionHasAITask. -func (mr *MockStoreMockRecorder) GetTemplateVersionHasAITask(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionHasAITask", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionHasAITask), ctx, id) -} - -// GetTemplateVersionParameters mocks base method. -func (m *MockStore) GetTemplateVersionParameters(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionParameter, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateVersionParameters", ctx, templateVersionID) - ret0, _ := ret[0].([]database.TemplateVersionParameter) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateVersionParameters indicates an expected call of GetTemplateVersionParameters. -func (mr *MockStoreMockRecorder) GetTemplateVersionParameters(ctx, templateVersionID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionParameters", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionParameters), ctx, templateVersionID) -} - -// GetTemplateVersionTerraformValues mocks base method. -func (m *MockStore) GetTemplateVersionTerraformValues(ctx context.Context, templateVersionID uuid.UUID) (database.TemplateVersionTerraformValue, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateVersionTerraformValues", ctx, templateVersionID) - ret0, _ := ret[0].(database.TemplateVersionTerraformValue) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateVersionTerraformValues indicates an expected call of GetTemplateVersionTerraformValues. -func (mr *MockStoreMockRecorder) GetTemplateVersionTerraformValues(ctx, templateVersionID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionTerraformValues", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionTerraformValues), ctx, templateVersionID) -} - -// GetTemplateVersionVariables mocks base method. -func (m *MockStore) GetTemplateVersionVariables(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionVariable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateVersionVariables", ctx, templateVersionID) - ret0, _ := ret[0].([]database.TemplateVersionVariable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateVersionVariables indicates an expected call of GetTemplateVersionVariables. -func (mr *MockStoreMockRecorder) GetTemplateVersionVariables(ctx, templateVersionID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionVariables", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionVariables), ctx, templateVersionID) -} - -// GetTemplateVersionWorkspaceTags mocks base method. -func (m *MockStore) GetTemplateVersionWorkspaceTags(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionWorkspaceTag, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateVersionWorkspaceTags", ctx, templateVersionID) - ret0, _ := ret[0].([]database.TemplateVersionWorkspaceTag) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateVersionWorkspaceTags indicates an expected call of GetTemplateVersionWorkspaceTags. -func (mr *MockStoreMockRecorder) GetTemplateVersionWorkspaceTags(ctx, templateVersionID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionWorkspaceTags", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionWorkspaceTags), ctx, templateVersionID) -} - -// GetTemplateVersionsByIDs mocks base method. -func (m *MockStore) GetTemplateVersionsByIDs(ctx context.Context, ids []uuid.UUID) ([]database.TemplateVersion, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateVersionsByIDs", ctx, ids) - ret0, _ := ret[0].([]database.TemplateVersion) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateVersionsByIDs indicates an expected call of GetTemplateVersionsByIDs. -func (mr *MockStoreMockRecorder) GetTemplateVersionsByIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionsByIDs", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionsByIDs), ctx, ids) -} - -// GetTemplateVersionsByTemplateID mocks base method. -func (m *MockStore) GetTemplateVersionsByTemplateID(ctx context.Context, arg database.GetTemplateVersionsByTemplateIDParams) ([]database.TemplateVersion, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateVersionsByTemplateID", ctx, arg) - ret0, _ := ret[0].([]database.TemplateVersion) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateVersionsByTemplateID indicates an expected call of GetTemplateVersionsByTemplateID. -func (mr *MockStoreMockRecorder) GetTemplateVersionsByTemplateID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionsByTemplateID", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionsByTemplateID), ctx, arg) -} - -// GetTemplateVersionsCreatedAfter mocks base method. -func (m *MockStore) GetTemplateVersionsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.TemplateVersion, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplateVersionsCreatedAfter", ctx, createdAt) - ret0, _ := ret[0].([]database.TemplateVersion) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplateVersionsCreatedAfter indicates an expected call of GetTemplateVersionsCreatedAfter. -func (mr *MockStoreMockRecorder) GetTemplateVersionsCreatedAfter(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateVersionsCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetTemplateVersionsCreatedAfter), ctx, createdAt) -} - -// GetTemplates mocks base method. -func (m *MockStore) GetTemplates(ctx context.Context) ([]database.Template, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplates", ctx) - ret0, _ := ret[0].([]database.Template) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplates indicates an expected call of GetTemplates. -func (mr *MockStoreMockRecorder) GetTemplates(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplates", reflect.TypeOf((*MockStore)(nil).GetTemplates), ctx) -} - -// GetTemplatesWithFilter mocks base method. -func (m *MockStore) GetTemplatesWithFilter(ctx context.Context, arg database.GetTemplatesWithFilterParams) ([]database.Template, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTemplatesWithFilter", ctx, arg) - ret0, _ := ret[0].([]database.Template) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTemplatesWithFilter indicates an expected call of GetTemplatesWithFilter. -func (mr *MockStoreMockRecorder) GetTemplatesWithFilter(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplatesWithFilter", reflect.TypeOf((*MockStore)(nil).GetTemplatesWithFilter), ctx, arg) -} - -// GetTotalUsageDCManagedAgentsV1 mocks base method. -func (m *MockStore) GetTotalUsageDCManagedAgentsV1(ctx context.Context, arg database.GetTotalUsageDCManagedAgentsV1Params) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTotalUsageDCManagedAgentsV1", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTotalUsageDCManagedAgentsV1 indicates an expected call of GetTotalUsageDCManagedAgentsV1. -func (mr *MockStoreMockRecorder) GetTotalUsageDCManagedAgentsV1(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTotalUsageDCManagedAgentsV1", reflect.TypeOf((*MockStore)(nil).GetTotalUsageDCManagedAgentsV1), ctx, arg) -} - -// GetUnexpiredLicenses mocks base method. -func (m *MockStore) GetUnexpiredLicenses(ctx context.Context) ([]database.License, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUnexpiredLicenses", ctx) - ret0, _ := ret[0].([]database.License) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUnexpiredLicenses indicates an expected call of GetUnexpiredLicenses. -func (mr *MockStoreMockRecorder) GetUnexpiredLicenses(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUnexpiredLicenses", reflect.TypeOf((*MockStore)(nil).GetUnexpiredLicenses), ctx) -} - -// GetUserActivityInsights mocks base method. -func (m *MockStore) GetUserActivityInsights(ctx context.Context, arg database.GetUserActivityInsightsParams) ([]database.GetUserActivityInsightsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserActivityInsights", ctx, arg) - ret0, _ := ret[0].([]database.GetUserActivityInsightsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserActivityInsights indicates an expected call of GetUserActivityInsights. -func (mr *MockStoreMockRecorder) GetUserActivityInsights(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserActivityInsights", reflect.TypeOf((*MockStore)(nil).GetUserActivityInsights), ctx, arg) -} - -// GetUserByEmailOrUsername mocks base method. -func (m *MockStore) GetUserByEmailOrUsername(ctx context.Context, arg database.GetUserByEmailOrUsernameParams) (database.User, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserByEmailOrUsername", ctx, arg) - ret0, _ := ret[0].(database.User) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserByEmailOrUsername indicates an expected call of GetUserByEmailOrUsername. -func (mr *MockStoreMockRecorder) GetUserByEmailOrUsername(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserByEmailOrUsername", reflect.TypeOf((*MockStore)(nil).GetUserByEmailOrUsername), ctx, arg) -} - -// GetUserByID mocks base method. -func (m *MockStore) GetUserByID(ctx context.Context, id uuid.UUID) (database.User, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserByID", ctx, id) - ret0, _ := ret[0].(database.User) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserByID indicates an expected call of GetUserByID. -func (mr *MockStoreMockRecorder) GetUserByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserByID", reflect.TypeOf((*MockStore)(nil).GetUserByID), ctx, id) -} - -// GetUserCount mocks base method. -func (m *MockStore) GetUserCount(ctx context.Context, includeSystem bool) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserCount", ctx, includeSystem) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserCount indicates an expected call of GetUserCount. -func (mr *MockStoreMockRecorder) GetUserCount(ctx, includeSystem any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserCount", reflect.TypeOf((*MockStore)(nil).GetUserCount), ctx, includeSystem) -} - -// GetUserLatencyInsights mocks base method. -func (m *MockStore) GetUserLatencyInsights(ctx context.Context, arg database.GetUserLatencyInsightsParams) ([]database.GetUserLatencyInsightsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserLatencyInsights", ctx, arg) - ret0, _ := ret[0].([]database.GetUserLatencyInsightsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserLatencyInsights indicates an expected call of GetUserLatencyInsights. -func (mr *MockStoreMockRecorder) GetUserLatencyInsights(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserLatencyInsights", reflect.TypeOf((*MockStore)(nil).GetUserLatencyInsights), ctx, arg) -} - -// GetUserLinkByLinkedID mocks base method. -func (m *MockStore) GetUserLinkByLinkedID(ctx context.Context, linkedID string) (database.UserLink, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserLinkByLinkedID", ctx, linkedID) - ret0, _ := ret[0].(database.UserLink) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserLinkByLinkedID indicates an expected call of GetUserLinkByLinkedID. -func (mr *MockStoreMockRecorder) GetUserLinkByLinkedID(ctx, linkedID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserLinkByLinkedID", reflect.TypeOf((*MockStore)(nil).GetUserLinkByLinkedID), ctx, linkedID) -} - -// GetUserLinkByUserIDLoginType mocks base method. -func (m *MockStore) GetUserLinkByUserIDLoginType(ctx context.Context, arg database.GetUserLinkByUserIDLoginTypeParams) (database.UserLink, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserLinkByUserIDLoginType", ctx, arg) - ret0, _ := ret[0].(database.UserLink) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserLinkByUserIDLoginType indicates an expected call of GetUserLinkByUserIDLoginType. -func (mr *MockStoreMockRecorder) GetUserLinkByUserIDLoginType(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserLinkByUserIDLoginType", reflect.TypeOf((*MockStore)(nil).GetUserLinkByUserIDLoginType), ctx, arg) -} - -// GetUserLinksByUserID mocks base method. -func (m *MockStore) GetUserLinksByUserID(ctx context.Context, userID uuid.UUID) ([]database.UserLink, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserLinksByUserID", ctx, userID) - ret0, _ := ret[0].([]database.UserLink) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserLinksByUserID indicates an expected call of GetUserLinksByUserID. -func (mr *MockStoreMockRecorder) GetUserLinksByUserID(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserLinksByUserID", reflect.TypeOf((*MockStore)(nil).GetUserLinksByUserID), ctx, userID) -} - -// GetUserNotificationPreferences mocks base method. -func (m *MockStore) GetUserNotificationPreferences(ctx context.Context, userID uuid.UUID) ([]database.NotificationPreference, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserNotificationPreferences", ctx, userID) - ret0, _ := ret[0].([]database.NotificationPreference) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserNotificationPreferences indicates an expected call of GetUserNotificationPreferences. -func (mr *MockStoreMockRecorder) GetUserNotificationPreferences(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserNotificationPreferences", reflect.TypeOf((*MockStore)(nil).GetUserNotificationPreferences), ctx, userID) -} - -// GetUserSecret mocks base method. -func (m *MockStore) GetUserSecret(ctx context.Context, id uuid.UUID) (database.UserSecret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserSecret", ctx, id) - ret0, _ := ret[0].(database.UserSecret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserSecret indicates an expected call of GetUserSecret. -func (mr *MockStoreMockRecorder) GetUserSecret(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserSecret", reflect.TypeOf((*MockStore)(nil).GetUserSecret), ctx, id) -} - -// GetUserSecretByUserIDAndName mocks base method. -func (m *MockStore) GetUserSecretByUserIDAndName(ctx context.Context, arg database.GetUserSecretByUserIDAndNameParams) (database.UserSecret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserSecretByUserIDAndName", ctx, arg) - ret0, _ := ret[0].(database.UserSecret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserSecretByUserIDAndName indicates an expected call of GetUserSecretByUserIDAndName. -func (mr *MockStoreMockRecorder) GetUserSecretByUserIDAndName(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserSecretByUserIDAndName", reflect.TypeOf((*MockStore)(nil).GetUserSecretByUserIDAndName), ctx, arg) -} - -// GetUserStatusCounts mocks base method. -func (m *MockStore) GetUserStatusCounts(ctx context.Context, arg database.GetUserStatusCountsParams) ([]database.GetUserStatusCountsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserStatusCounts", ctx, arg) - ret0, _ := ret[0].([]database.GetUserStatusCountsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserStatusCounts indicates an expected call of GetUserStatusCounts. -func (mr *MockStoreMockRecorder) GetUserStatusCounts(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserStatusCounts", reflect.TypeOf((*MockStore)(nil).GetUserStatusCounts), ctx, arg) -} - -// GetUserTaskNotificationAlertDismissed mocks base method. -func (m *MockStore) GetUserTaskNotificationAlertDismissed(ctx context.Context, userID uuid.UUID) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserTaskNotificationAlertDismissed", ctx, userID) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserTaskNotificationAlertDismissed indicates an expected call of GetUserTaskNotificationAlertDismissed. -func (mr *MockStoreMockRecorder) GetUserTaskNotificationAlertDismissed(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserTaskNotificationAlertDismissed", reflect.TypeOf((*MockStore)(nil).GetUserTaskNotificationAlertDismissed), ctx, userID) -} - -// GetUserTerminalFont mocks base method. -func (m *MockStore) GetUserTerminalFont(ctx context.Context, userID uuid.UUID) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserTerminalFont", ctx, userID) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserTerminalFont indicates an expected call of GetUserTerminalFont. -func (mr *MockStoreMockRecorder) GetUserTerminalFont(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserTerminalFont", reflect.TypeOf((*MockStore)(nil).GetUserTerminalFont), ctx, userID) -} - -// GetUserThemePreference mocks base method. -func (m *MockStore) GetUserThemePreference(ctx context.Context, userID uuid.UUID) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserThemePreference", ctx, userID) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserThemePreference indicates an expected call of GetUserThemePreference. -func (mr *MockStoreMockRecorder) GetUserThemePreference(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserThemePreference", reflect.TypeOf((*MockStore)(nil).GetUserThemePreference), ctx, userID) -} - -// GetUserWorkspaceBuildParameters mocks base method. -func (m *MockStore) GetUserWorkspaceBuildParameters(ctx context.Context, arg database.GetUserWorkspaceBuildParametersParams) ([]database.GetUserWorkspaceBuildParametersRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUserWorkspaceBuildParameters", ctx, arg) - ret0, _ := ret[0].([]database.GetUserWorkspaceBuildParametersRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUserWorkspaceBuildParameters indicates an expected call of GetUserWorkspaceBuildParameters. -func (mr *MockStoreMockRecorder) GetUserWorkspaceBuildParameters(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserWorkspaceBuildParameters", reflect.TypeOf((*MockStore)(nil).GetUserWorkspaceBuildParameters), ctx, arg) -} - -// GetUsers mocks base method. -func (m *MockStore) GetUsers(ctx context.Context, arg database.GetUsersParams) ([]database.GetUsersRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUsers", ctx, arg) - ret0, _ := ret[0].([]database.GetUsersRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUsers indicates an expected call of GetUsers. -func (mr *MockStoreMockRecorder) GetUsers(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUsers", reflect.TypeOf((*MockStore)(nil).GetUsers), ctx, arg) -} - -// GetUsersByIDs mocks base method. -func (m *MockStore) GetUsersByIDs(ctx context.Context, ids []uuid.UUID) ([]database.User, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUsersByIDs", ctx, ids) - ret0, _ := ret[0].([]database.User) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetUsersByIDs indicates an expected call of GetUsersByIDs. -func (mr *MockStoreMockRecorder) GetUsersByIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUsersByIDs", reflect.TypeOf((*MockStore)(nil).GetUsersByIDs), ctx, ids) -} - -// GetWebpushSubscriptionsByUserID mocks base method. -func (m *MockStore) GetWebpushSubscriptionsByUserID(ctx context.Context, userID uuid.UUID) ([]database.WebpushSubscription, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWebpushSubscriptionsByUserID", ctx, userID) - ret0, _ := ret[0].([]database.WebpushSubscription) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWebpushSubscriptionsByUserID indicates an expected call of GetWebpushSubscriptionsByUserID. -func (mr *MockStoreMockRecorder) GetWebpushSubscriptionsByUserID(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWebpushSubscriptionsByUserID", reflect.TypeOf((*MockStore)(nil).GetWebpushSubscriptionsByUserID), ctx, userID) -} - -// GetWebpushVAPIDKeys mocks base method. -func (m *MockStore) GetWebpushVAPIDKeys(ctx context.Context) (database.GetWebpushVAPIDKeysRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWebpushVAPIDKeys", ctx) - ret0, _ := ret[0].(database.GetWebpushVAPIDKeysRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWebpushVAPIDKeys indicates an expected call of GetWebpushVAPIDKeys. -func (mr *MockStoreMockRecorder) GetWebpushVAPIDKeys(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWebpushVAPIDKeys", reflect.TypeOf((*MockStore)(nil).GetWebpushVAPIDKeys), ctx) -} - -// GetWorkspaceACLByID mocks base method. -func (m *MockStore) GetWorkspaceACLByID(ctx context.Context, id uuid.UUID) (database.GetWorkspaceACLByIDRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceACLByID", ctx, id) - ret0, _ := ret[0].(database.GetWorkspaceACLByIDRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceACLByID indicates an expected call of GetWorkspaceACLByID. -func (mr *MockStoreMockRecorder) GetWorkspaceACLByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceACLByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceACLByID), ctx, id) -} - -// GetWorkspaceAgentAndLatestBuildByAuthToken mocks base method. -func (m *MockStore) GetWorkspaceAgentAndLatestBuildByAuthToken(ctx context.Context, authToken uuid.UUID) (database.GetWorkspaceAgentAndLatestBuildByAuthTokenRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentAndLatestBuildByAuthToken", ctx, authToken) - ret0, _ := ret[0].(database.GetWorkspaceAgentAndLatestBuildByAuthTokenRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentAndLatestBuildByAuthToken indicates an expected call of GetWorkspaceAgentAndLatestBuildByAuthToken. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentAndLatestBuildByAuthToken(ctx, authToken any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentAndLatestBuildByAuthToken", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentAndLatestBuildByAuthToken), ctx, authToken) -} - -// GetWorkspaceAgentByID mocks base method. -func (m *MockStore) GetWorkspaceAgentByID(ctx context.Context, id uuid.UUID) (database.WorkspaceAgent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentByID", ctx, id) - ret0, _ := ret[0].(database.WorkspaceAgent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentByID indicates an expected call of GetWorkspaceAgentByID. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentByID), ctx, id) -} - -// GetWorkspaceAgentByInstanceID mocks base method. -func (m *MockStore) GetWorkspaceAgentByInstanceID(ctx context.Context, authInstanceID string) (database.WorkspaceAgent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentByInstanceID", ctx, authInstanceID) - ret0, _ := ret[0].(database.WorkspaceAgent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentByInstanceID indicates an expected call of GetWorkspaceAgentByInstanceID. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentByInstanceID(ctx, authInstanceID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentByInstanceID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentByInstanceID), ctx, authInstanceID) -} - -// GetWorkspaceAgentDevcontainersByAgentID mocks base method. -func (m *MockStore) GetWorkspaceAgentDevcontainersByAgentID(ctx context.Context, workspaceAgentID uuid.UUID) ([]database.WorkspaceAgentDevcontainer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentDevcontainersByAgentID", ctx, workspaceAgentID) - ret0, _ := ret[0].([]database.WorkspaceAgentDevcontainer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentDevcontainersByAgentID indicates an expected call of GetWorkspaceAgentDevcontainersByAgentID. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentDevcontainersByAgentID(ctx, workspaceAgentID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentDevcontainersByAgentID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentDevcontainersByAgentID), ctx, workspaceAgentID) -} - -// GetWorkspaceAgentLifecycleStateByID mocks base method. -func (m *MockStore) GetWorkspaceAgentLifecycleStateByID(ctx context.Context, id uuid.UUID) (database.GetWorkspaceAgentLifecycleStateByIDRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentLifecycleStateByID", ctx, id) - ret0, _ := ret[0].(database.GetWorkspaceAgentLifecycleStateByIDRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentLifecycleStateByID indicates an expected call of GetWorkspaceAgentLifecycleStateByID. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentLifecycleStateByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentLifecycleStateByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentLifecycleStateByID), ctx, id) -} - -// GetWorkspaceAgentLogSourcesByAgentIDs mocks base method. -func (m *MockStore) GetWorkspaceAgentLogSourcesByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgentLogSource, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentLogSourcesByAgentIDs", ctx, ids) - ret0, _ := ret[0].([]database.WorkspaceAgentLogSource) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentLogSourcesByAgentIDs indicates an expected call of GetWorkspaceAgentLogSourcesByAgentIDs. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentLogSourcesByAgentIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentLogSourcesByAgentIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentLogSourcesByAgentIDs), ctx, ids) -} - -// GetWorkspaceAgentLogsAfter mocks base method. -func (m *MockStore) GetWorkspaceAgentLogsAfter(ctx context.Context, arg database.GetWorkspaceAgentLogsAfterParams) ([]database.WorkspaceAgentLog, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentLogsAfter", ctx, arg) - ret0, _ := ret[0].([]database.WorkspaceAgentLog) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentLogsAfter indicates an expected call of GetWorkspaceAgentLogsAfter. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentLogsAfter(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentLogsAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentLogsAfter), ctx, arg) -} - -// GetWorkspaceAgentMetadata mocks base method. -func (m *MockStore) GetWorkspaceAgentMetadata(ctx context.Context, arg database.GetWorkspaceAgentMetadataParams) ([]database.WorkspaceAgentMetadatum, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentMetadata", ctx, arg) - ret0, _ := ret[0].([]database.WorkspaceAgentMetadatum) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentMetadata indicates an expected call of GetWorkspaceAgentMetadata. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentMetadata(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentMetadata", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentMetadata), ctx, arg) -} - -// GetWorkspaceAgentPortShare mocks base method. -func (m *MockStore) GetWorkspaceAgentPortShare(ctx context.Context, arg database.GetWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortShare, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentPortShare", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceAgentPortShare) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentPortShare indicates an expected call of GetWorkspaceAgentPortShare. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentPortShare(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentPortShare", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentPortShare), ctx, arg) -} - -// GetWorkspaceAgentScriptTimingsByBuildID mocks base method. -func (m *MockStore) GetWorkspaceAgentScriptTimingsByBuildID(ctx context.Context, id uuid.UUID) ([]database.GetWorkspaceAgentScriptTimingsByBuildIDRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentScriptTimingsByBuildID", ctx, id) - ret0, _ := ret[0].([]database.GetWorkspaceAgentScriptTimingsByBuildIDRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentScriptTimingsByBuildID indicates an expected call of GetWorkspaceAgentScriptTimingsByBuildID. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentScriptTimingsByBuildID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentScriptTimingsByBuildID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentScriptTimingsByBuildID), ctx, id) -} - -// GetWorkspaceAgentScriptsByAgentIDs mocks base method. -func (m *MockStore) GetWorkspaceAgentScriptsByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgentScript, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentScriptsByAgentIDs", ctx, ids) - ret0, _ := ret[0].([]database.WorkspaceAgentScript) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentScriptsByAgentIDs indicates an expected call of GetWorkspaceAgentScriptsByAgentIDs. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentScriptsByAgentIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentScriptsByAgentIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentScriptsByAgentIDs), ctx, ids) -} - -// GetWorkspaceAgentStats mocks base method. -func (m *MockStore) GetWorkspaceAgentStats(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentStatsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentStats", ctx, createdAt) - ret0, _ := ret[0].([]database.GetWorkspaceAgentStatsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentStats indicates an expected call of GetWorkspaceAgentStats. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentStats(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentStats", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentStats), ctx, createdAt) -} - -// GetWorkspaceAgentStatsAndLabels mocks base method. -func (m *MockStore) GetWorkspaceAgentStatsAndLabels(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentStatsAndLabelsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentStatsAndLabels", ctx, createdAt) - ret0, _ := ret[0].([]database.GetWorkspaceAgentStatsAndLabelsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentStatsAndLabels indicates an expected call of GetWorkspaceAgentStatsAndLabels. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentStatsAndLabels(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentStatsAndLabels", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentStatsAndLabels), ctx, createdAt) -} - -// GetWorkspaceAgentUsageStats mocks base method. -func (m *MockStore) GetWorkspaceAgentUsageStats(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentUsageStatsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentUsageStats", ctx, createdAt) - ret0, _ := ret[0].([]database.GetWorkspaceAgentUsageStatsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentUsageStats indicates an expected call of GetWorkspaceAgentUsageStats. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentUsageStats(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentUsageStats", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentUsageStats), ctx, createdAt) -} - -// GetWorkspaceAgentUsageStatsAndLabels mocks base method. -func (m *MockStore) GetWorkspaceAgentUsageStatsAndLabels(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentUsageStatsAndLabelsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentUsageStatsAndLabels", ctx, createdAt) - ret0, _ := ret[0].([]database.GetWorkspaceAgentUsageStatsAndLabelsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentUsageStatsAndLabels indicates an expected call of GetWorkspaceAgentUsageStatsAndLabels. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentUsageStatsAndLabels(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentUsageStatsAndLabels", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentUsageStatsAndLabels), ctx, createdAt) -} - -// GetWorkspaceAgentsByParentID mocks base method. -func (m *MockStore) GetWorkspaceAgentsByParentID(ctx context.Context, parentID uuid.UUID) ([]database.WorkspaceAgent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentsByParentID", ctx, parentID) - ret0, _ := ret[0].([]database.WorkspaceAgent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentsByParentID indicates an expected call of GetWorkspaceAgentsByParentID. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentsByParentID(ctx, parentID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsByParentID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsByParentID), ctx, parentID) -} - -// GetWorkspaceAgentsByResourceIDs mocks base method. -func (m *MockStore) GetWorkspaceAgentsByResourceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentsByResourceIDs", ctx, ids) - ret0, _ := ret[0].([]database.WorkspaceAgent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentsByResourceIDs indicates an expected call of GetWorkspaceAgentsByResourceIDs. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentsByResourceIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsByResourceIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsByResourceIDs), ctx, ids) -} - -// GetWorkspaceAgentsByWorkspaceAndBuildNumber mocks base method. -func (m *MockStore) GetWorkspaceAgentsByWorkspaceAndBuildNumber(ctx context.Context, arg database.GetWorkspaceAgentsByWorkspaceAndBuildNumberParams) ([]database.WorkspaceAgent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentsByWorkspaceAndBuildNumber", ctx, arg) - ret0, _ := ret[0].([]database.WorkspaceAgent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentsByWorkspaceAndBuildNumber indicates an expected call of GetWorkspaceAgentsByWorkspaceAndBuildNumber. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentsByWorkspaceAndBuildNumber(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsByWorkspaceAndBuildNumber", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsByWorkspaceAndBuildNumber), ctx, arg) -} - -// GetWorkspaceAgentsCreatedAfter mocks base method. -func (m *MockStore) GetWorkspaceAgentsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceAgent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentsCreatedAfter", ctx, createdAt) - ret0, _ := ret[0].([]database.WorkspaceAgent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentsCreatedAfter indicates an expected call of GetWorkspaceAgentsCreatedAfter. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentsCreatedAfter(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsCreatedAfter), ctx, createdAt) -} - -// GetWorkspaceAgentsForMetrics mocks base method. -func (m *MockStore) GetWorkspaceAgentsForMetrics(ctx context.Context) ([]database.GetWorkspaceAgentsForMetricsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentsForMetrics", ctx) - ret0, _ := ret[0].([]database.GetWorkspaceAgentsForMetricsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentsForMetrics indicates an expected call of GetWorkspaceAgentsForMetrics. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentsForMetrics(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsForMetrics", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsForMetrics), ctx) -} - -// GetWorkspaceAgentsInLatestBuildByWorkspaceID mocks base method. -func (m *MockStore) GetWorkspaceAgentsInLatestBuildByWorkspaceID(ctx context.Context, workspaceID uuid.UUID) ([]database.WorkspaceAgent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAgentsInLatestBuildByWorkspaceID", ctx, workspaceID) - ret0, _ := ret[0].([]database.WorkspaceAgent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAgentsInLatestBuildByWorkspaceID indicates an expected call of GetWorkspaceAgentsInLatestBuildByWorkspaceID. -func (mr *MockStoreMockRecorder) GetWorkspaceAgentsInLatestBuildByWorkspaceID(ctx, workspaceID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAgentsInLatestBuildByWorkspaceID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAgentsInLatestBuildByWorkspaceID), ctx, workspaceID) -} - -// GetWorkspaceAppByAgentIDAndSlug mocks base method. -func (m *MockStore) GetWorkspaceAppByAgentIDAndSlug(ctx context.Context, arg database.GetWorkspaceAppByAgentIDAndSlugParams) (database.WorkspaceApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAppByAgentIDAndSlug", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAppByAgentIDAndSlug indicates an expected call of GetWorkspaceAppByAgentIDAndSlug. -func (mr *MockStoreMockRecorder) GetWorkspaceAppByAgentIDAndSlug(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAppByAgentIDAndSlug", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAppByAgentIDAndSlug), ctx, arg) -} - -// GetWorkspaceAppStatusesByAppIDs mocks base method. -func (m *MockStore) GetWorkspaceAppStatusesByAppIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAppStatus, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAppStatusesByAppIDs", ctx, ids) - ret0, _ := ret[0].([]database.WorkspaceAppStatus) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAppStatusesByAppIDs indicates an expected call of GetWorkspaceAppStatusesByAppIDs. -func (mr *MockStoreMockRecorder) GetWorkspaceAppStatusesByAppIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAppStatusesByAppIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAppStatusesByAppIDs), ctx, ids) -} - -// GetWorkspaceAppsByAgentID mocks base method. -func (m *MockStore) GetWorkspaceAppsByAgentID(ctx context.Context, agentID uuid.UUID) ([]database.WorkspaceApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAppsByAgentID", ctx, agentID) - ret0, _ := ret[0].([]database.WorkspaceApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAppsByAgentID indicates an expected call of GetWorkspaceAppsByAgentID. -func (mr *MockStoreMockRecorder) GetWorkspaceAppsByAgentID(ctx, agentID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAppsByAgentID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAppsByAgentID), ctx, agentID) -} - -// GetWorkspaceAppsByAgentIDs mocks base method. -func (m *MockStore) GetWorkspaceAppsByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAppsByAgentIDs", ctx, ids) - ret0, _ := ret[0].([]database.WorkspaceApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAppsByAgentIDs indicates an expected call of GetWorkspaceAppsByAgentIDs. -func (mr *MockStoreMockRecorder) GetWorkspaceAppsByAgentIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAppsByAgentIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAppsByAgentIDs), ctx, ids) -} - -// GetWorkspaceAppsCreatedAfter mocks base method. -func (m *MockStore) GetWorkspaceAppsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceAppsCreatedAfter", ctx, createdAt) - ret0, _ := ret[0].([]database.WorkspaceApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceAppsCreatedAfter indicates an expected call of GetWorkspaceAppsCreatedAfter. -func (mr *MockStoreMockRecorder) GetWorkspaceAppsCreatedAfter(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceAppsCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceAppsCreatedAfter), ctx, createdAt) -} - -// GetWorkspaceBuildByID mocks base method. -func (m *MockStore) GetWorkspaceBuildByID(ctx context.Context, id uuid.UUID) (database.WorkspaceBuild, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceBuildByID", ctx, id) - ret0, _ := ret[0].(database.WorkspaceBuild) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceBuildByID indicates an expected call of GetWorkspaceBuildByID. -func (mr *MockStoreMockRecorder) GetWorkspaceBuildByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildByID), ctx, id) -} - -// GetWorkspaceBuildByJobID mocks base method. -func (m *MockStore) GetWorkspaceBuildByJobID(ctx context.Context, jobID uuid.UUID) (database.WorkspaceBuild, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceBuildByJobID", ctx, jobID) - ret0, _ := ret[0].(database.WorkspaceBuild) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceBuildByJobID indicates an expected call of GetWorkspaceBuildByJobID. -func (mr *MockStoreMockRecorder) GetWorkspaceBuildByJobID(ctx, jobID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildByJobID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildByJobID), ctx, jobID) -} - -// GetWorkspaceBuildByWorkspaceIDAndBuildNumber mocks base method. -func (m *MockStore) GetWorkspaceBuildByWorkspaceIDAndBuildNumber(ctx context.Context, arg database.GetWorkspaceBuildByWorkspaceIDAndBuildNumberParams) (database.WorkspaceBuild, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceBuildByWorkspaceIDAndBuildNumber", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceBuild) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceBuildByWorkspaceIDAndBuildNumber indicates an expected call of GetWorkspaceBuildByWorkspaceIDAndBuildNumber. -func (mr *MockStoreMockRecorder) GetWorkspaceBuildByWorkspaceIDAndBuildNumber(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildByWorkspaceIDAndBuildNumber", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildByWorkspaceIDAndBuildNumber), ctx, arg) -} - -// GetWorkspaceBuildParameters mocks base method. -func (m *MockStore) GetWorkspaceBuildParameters(ctx context.Context, workspaceBuildID uuid.UUID) ([]database.WorkspaceBuildParameter, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceBuildParameters", ctx, workspaceBuildID) - ret0, _ := ret[0].([]database.WorkspaceBuildParameter) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceBuildParameters indicates an expected call of GetWorkspaceBuildParameters. -func (mr *MockStoreMockRecorder) GetWorkspaceBuildParameters(ctx, workspaceBuildID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildParameters", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildParameters), ctx, workspaceBuildID) -} - -// GetWorkspaceBuildParametersByBuildIDs mocks base method. -func (m *MockStore) GetWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIds []uuid.UUID) ([]database.WorkspaceBuildParameter, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceBuildParametersByBuildIDs", ctx, workspaceBuildIds) - ret0, _ := ret[0].([]database.WorkspaceBuildParameter) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceBuildParametersByBuildIDs indicates an expected call of GetWorkspaceBuildParametersByBuildIDs. -func (mr *MockStoreMockRecorder) GetWorkspaceBuildParametersByBuildIDs(ctx, workspaceBuildIds any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildParametersByBuildIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildParametersByBuildIDs), ctx, workspaceBuildIds) -} - -// GetWorkspaceBuildStatsByTemplates mocks base method. -func (m *MockStore) GetWorkspaceBuildStatsByTemplates(ctx context.Context, since time.Time) ([]database.GetWorkspaceBuildStatsByTemplatesRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceBuildStatsByTemplates", ctx, since) - ret0, _ := ret[0].([]database.GetWorkspaceBuildStatsByTemplatesRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceBuildStatsByTemplates indicates an expected call of GetWorkspaceBuildStatsByTemplates. -func (mr *MockStoreMockRecorder) GetWorkspaceBuildStatsByTemplates(ctx, since any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildStatsByTemplates", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildStatsByTemplates), ctx, since) -} - -// GetWorkspaceBuildsByWorkspaceID mocks base method. -func (m *MockStore) GetWorkspaceBuildsByWorkspaceID(ctx context.Context, arg database.GetWorkspaceBuildsByWorkspaceIDParams) ([]database.WorkspaceBuild, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceBuildsByWorkspaceID", ctx, arg) - ret0, _ := ret[0].([]database.WorkspaceBuild) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceBuildsByWorkspaceID indicates an expected call of GetWorkspaceBuildsByWorkspaceID. -func (mr *MockStoreMockRecorder) GetWorkspaceBuildsByWorkspaceID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildsByWorkspaceID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildsByWorkspaceID), ctx, arg) -} - -// GetWorkspaceBuildsCreatedAfter mocks base method. -func (m *MockStore) GetWorkspaceBuildsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceBuild, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceBuildsCreatedAfter", ctx, createdAt) - ret0, _ := ret[0].([]database.WorkspaceBuild) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceBuildsCreatedAfter indicates an expected call of GetWorkspaceBuildsCreatedAfter. -func (mr *MockStoreMockRecorder) GetWorkspaceBuildsCreatedAfter(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceBuildsCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceBuildsCreatedAfter), ctx, createdAt) -} - -// GetWorkspaceByAgentID mocks base method. -func (m *MockStore) GetWorkspaceByAgentID(ctx context.Context, agentID uuid.UUID) (database.Workspace, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceByAgentID", ctx, agentID) - ret0, _ := ret[0].(database.Workspace) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceByAgentID indicates an expected call of GetWorkspaceByAgentID. -func (mr *MockStoreMockRecorder) GetWorkspaceByAgentID(ctx, agentID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceByAgentID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceByAgentID), ctx, agentID) -} - -// GetWorkspaceByID mocks base method. -func (m *MockStore) GetWorkspaceByID(ctx context.Context, id uuid.UUID) (database.Workspace, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceByID", ctx, id) - ret0, _ := ret[0].(database.Workspace) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceByID indicates an expected call of GetWorkspaceByID. -func (mr *MockStoreMockRecorder) GetWorkspaceByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceByID), ctx, id) -} - -// GetWorkspaceByOwnerIDAndName mocks base method. -func (m *MockStore) GetWorkspaceByOwnerIDAndName(ctx context.Context, arg database.GetWorkspaceByOwnerIDAndNameParams) (database.Workspace, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceByOwnerIDAndName", ctx, arg) - ret0, _ := ret[0].(database.Workspace) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceByOwnerIDAndName indicates an expected call of GetWorkspaceByOwnerIDAndName. -func (mr *MockStoreMockRecorder) GetWorkspaceByOwnerIDAndName(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceByOwnerIDAndName", reflect.TypeOf((*MockStore)(nil).GetWorkspaceByOwnerIDAndName), ctx, arg) -} - -// GetWorkspaceByResourceID mocks base method. -func (m *MockStore) GetWorkspaceByResourceID(ctx context.Context, resourceID uuid.UUID) (database.Workspace, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceByResourceID", ctx, resourceID) - ret0, _ := ret[0].(database.Workspace) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceByResourceID indicates an expected call of GetWorkspaceByResourceID. -func (mr *MockStoreMockRecorder) GetWorkspaceByResourceID(ctx, resourceID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceByResourceID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceByResourceID), ctx, resourceID) -} - -// GetWorkspaceByWorkspaceAppID mocks base method. -func (m *MockStore) GetWorkspaceByWorkspaceAppID(ctx context.Context, workspaceAppID uuid.UUID) (database.Workspace, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceByWorkspaceAppID", ctx, workspaceAppID) - ret0, _ := ret[0].(database.Workspace) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceByWorkspaceAppID indicates an expected call of GetWorkspaceByWorkspaceAppID. -func (mr *MockStoreMockRecorder) GetWorkspaceByWorkspaceAppID(ctx, workspaceAppID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceByWorkspaceAppID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceByWorkspaceAppID), ctx, workspaceAppID) -} - -// GetWorkspaceModulesByJobID mocks base method. -func (m *MockStore) GetWorkspaceModulesByJobID(ctx context.Context, jobID uuid.UUID) ([]database.WorkspaceModule, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceModulesByJobID", ctx, jobID) - ret0, _ := ret[0].([]database.WorkspaceModule) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceModulesByJobID indicates an expected call of GetWorkspaceModulesByJobID. -func (mr *MockStoreMockRecorder) GetWorkspaceModulesByJobID(ctx, jobID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceModulesByJobID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceModulesByJobID), ctx, jobID) -} - -// GetWorkspaceModulesCreatedAfter mocks base method. -func (m *MockStore) GetWorkspaceModulesCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceModule, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceModulesCreatedAfter", ctx, createdAt) - ret0, _ := ret[0].([]database.WorkspaceModule) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceModulesCreatedAfter indicates an expected call of GetWorkspaceModulesCreatedAfter. -func (mr *MockStoreMockRecorder) GetWorkspaceModulesCreatedAfter(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceModulesCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceModulesCreatedAfter), ctx, createdAt) -} - -// GetWorkspaceProxies mocks base method. -func (m *MockStore) GetWorkspaceProxies(ctx context.Context) ([]database.WorkspaceProxy, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceProxies", ctx) - ret0, _ := ret[0].([]database.WorkspaceProxy) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceProxies indicates an expected call of GetWorkspaceProxies. -func (mr *MockStoreMockRecorder) GetWorkspaceProxies(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceProxies", reflect.TypeOf((*MockStore)(nil).GetWorkspaceProxies), ctx) -} - -// GetWorkspaceProxyByHostname mocks base method. -func (m *MockStore) GetWorkspaceProxyByHostname(ctx context.Context, arg database.GetWorkspaceProxyByHostnameParams) (database.WorkspaceProxy, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceProxyByHostname", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceProxy) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceProxyByHostname indicates an expected call of GetWorkspaceProxyByHostname. -func (mr *MockStoreMockRecorder) GetWorkspaceProxyByHostname(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceProxyByHostname", reflect.TypeOf((*MockStore)(nil).GetWorkspaceProxyByHostname), ctx, arg) -} - -// GetWorkspaceProxyByID mocks base method. -func (m *MockStore) GetWorkspaceProxyByID(ctx context.Context, id uuid.UUID) (database.WorkspaceProxy, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceProxyByID", ctx, id) - ret0, _ := ret[0].(database.WorkspaceProxy) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceProxyByID indicates an expected call of GetWorkspaceProxyByID. -func (mr *MockStoreMockRecorder) GetWorkspaceProxyByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceProxyByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceProxyByID), ctx, id) -} - -// GetWorkspaceProxyByName mocks base method. -func (m *MockStore) GetWorkspaceProxyByName(ctx context.Context, name string) (database.WorkspaceProxy, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceProxyByName", ctx, name) - ret0, _ := ret[0].(database.WorkspaceProxy) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceProxyByName indicates an expected call of GetWorkspaceProxyByName. -func (mr *MockStoreMockRecorder) GetWorkspaceProxyByName(ctx, name any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceProxyByName", reflect.TypeOf((*MockStore)(nil).GetWorkspaceProxyByName), ctx, name) -} - -// GetWorkspaceResourceByID mocks base method. -func (m *MockStore) GetWorkspaceResourceByID(ctx context.Context, id uuid.UUID) (database.WorkspaceResource, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceResourceByID", ctx, id) - ret0, _ := ret[0].(database.WorkspaceResource) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceResourceByID indicates an expected call of GetWorkspaceResourceByID. -func (mr *MockStoreMockRecorder) GetWorkspaceResourceByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourceByID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourceByID), ctx, id) -} - -// GetWorkspaceResourceMetadataByResourceIDs mocks base method. -func (m *MockStore) GetWorkspaceResourceMetadataByResourceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceResourceMetadatum, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceResourceMetadataByResourceIDs", ctx, ids) - ret0, _ := ret[0].([]database.WorkspaceResourceMetadatum) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceResourceMetadataByResourceIDs indicates an expected call of GetWorkspaceResourceMetadataByResourceIDs. -func (mr *MockStoreMockRecorder) GetWorkspaceResourceMetadataByResourceIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourceMetadataByResourceIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourceMetadataByResourceIDs), ctx, ids) -} - -// GetWorkspaceResourceMetadataCreatedAfter mocks base method. -func (m *MockStore) GetWorkspaceResourceMetadataCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceResourceMetadatum, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceResourceMetadataCreatedAfter", ctx, createdAt) - ret0, _ := ret[0].([]database.WorkspaceResourceMetadatum) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceResourceMetadataCreatedAfter indicates an expected call of GetWorkspaceResourceMetadataCreatedAfter. -func (mr *MockStoreMockRecorder) GetWorkspaceResourceMetadataCreatedAfter(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourceMetadataCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourceMetadataCreatedAfter), ctx, createdAt) -} - -// GetWorkspaceResourcesByJobID mocks base method. -func (m *MockStore) GetWorkspaceResourcesByJobID(ctx context.Context, jobID uuid.UUID) ([]database.WorkspaceResource, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceResourcesByJobID", ctx, jobID) - ret0, _ := ret[0].([]database.WorkspaceResource) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceResourcesByJobID indicates an expected call of GetWorkspaceResourcesByJobID. -func (mr *MockStoreMockRecorder) GetWorkspaceResourcesByJobID(ctx, jobID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourcesByJobID", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourcesByJobID), ctx, jobID) -} - -// GetWorkspaceResourcesByJobIDs mocks base method. -func (m *MockStore) GetWorkspaceResourcesByJobIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceResource, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceResourcesByJobIDs", ctx, ids) - ret0, _ := ret[0].([]database.WorkspaceResource) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceResourcesByJobIDs indicates an expected call of GetWorkspaceResourcesByJobIDs. -func (mr *MockStoreMockRecorder) GetWorkspaceResourcesByJobIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourcesByJobIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourcesByJobIDs), ctx, ids) -} - -// GetWorkspaceResourcesCreatedAfter mocks base method. -func (m *MockStore) GetWorkspaceResourcesCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceResource, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceResourcesCreatedAfter", ctx, createdAt) - ret0, _ := ret[0].([]database.WorkspaceResource) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceResourcesCreatedAfter indicates an expected call of GetWorkspaceResourcesCreatedAfter. -func (mr *MockStoreMockRecorder) GetWorkspaceResourcesCreatedAfter(ctx, createdAt any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceResourcesCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetWorkspaceResourcesCreatedAfter), ctx, createdAt) -} - -// GetWorkspaceUniqueOwnerCountByTemplateIDs mocks base method. -func (m *MockStore) GetWorkspaceUniqueOwnerCountByTemplateIDs(ctx context.Context, templateIds []uuid.UUID) ([]database.GetWorkspaceUniqueOwnerCountByTemplateIDsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaceUniqueOwnerCountByTemplateIDs", ctx, templateIds) - ret0, _ := ret[0].([]database.GetWorkspaceUniqueOwnerCountByTemplateIDsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaceUniqueOwnerCountByTemplateIDs indicates an expected call of GetWorkspaceUniqueOwnerCountByTemplateIDs. -func (mr *MockStoreMockRecorder) GetWorkspaceUniqueOwnerCountByTemplateIDs(ctx, templateIds any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaceUniqueOwnerCountByTemplateIDs", reflect.TypeOf((*MockStore)(nil).GetWorkspaceUniqueOwnerCountByTemplateIDs), ctx, templateIds) -} - -// GetWorkspaces mocks base method. -func (m *MockStore) GetWorkspaces(ctx context.Context, arg database.GetWorkspacesParams) ([]database.GetWorkspacesRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspaces", ctx, arg) - ret0, _ := ret[0].([]database.GetWorkspacesRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspaces indicates an expected call of GetWorkspaces. -func (mr *MockStoreMockRecorder) GetWorkspaces(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspaces", reflect.TypeOf((*MockStore)(nil).GetWorkspaces), ctx, arg) -} - -// GetWorkspacesAndAgentsByOwnerID mocks base method. -func (m *MockStore) GetWorkspacesAndAgentsByOwnerID(ctx context.Context, ownerID uuid.UUID) ([]database.GetWorkspacesAndAgentsByOwnerIDRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspacesAndAgentsByOwnerID", ctx, ownerID) - ret0, _ := ret[0].([]database.GetWorkspacesAndAgentsByOwnerIDRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspacesAndAgentsByOwnerID indicates an expected call of GetWorkspacesAndAgentsByOwnerID. -func (mr *MockStoreMockRecorder) GetWorkspacesAndAgentsByOwnerID(ctx, ownerID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspacesAndAgentsByOwnerID", reflect.TypeOf((*MockStore)(nil).GetWorkspacesAndAgentsByOwnerID), ctx, ownerID) -} - -// GetWorkspacesByTemplateID mocks base method. -func (m *MockStore) GetWorkspacesByTemplateID(ctx context.Context, templateID uuid.UUID) ([]database.WorkspaceTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspacesByTemplateID", ctx, templateID) - ret0, _ := ret[0].([]database.WorkspaceTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspacesByTemplateID indicates an expected call of GetWorkspacesByTemplateID. -func (mr *MockStoreMockRecorder) GetWorkspacesByTemplateID(ctx, templateID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspacesByTemplateID", reflect.TypeOf((*MockStore)(nil).GetWorkspacesByTemplateID), ctx, templateID) -} - -// GetWorkspacesEligibleForTransition mocks base method. -func (m *MockStore) GetWorkspacesEligibleForTransition(ctx context.Context, now time.Time) ([]database.GetWorkspacesEligibleForTransitionRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspacesEligibleForTransition", ctx, now) - ret0, _ := ret[0].([]database.GetWorkspacesEligibleForTransitionRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspacesEligibleForTransition indicates an expected call of GetWorkspacesEligibleForTransition. -func (mr *MockStoreMockRecorder) GetWorkspacesEligibleForTransition(ctx, now any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspacesEligibleForTransition", reflect.TypeOf((*MockStore)(nil).GetWorkspacesEligibleForTransition), ctx, now) -} - -// GetWorkspacesForWorkspaceMetrics mocks base method. -func (m *MockStore) GetWorkspacesForWorkspaceMetrics(ctx context.Context) ([]database.GetWorkspacesForWorkspaceMetricsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetWorkspacesForWorkspaceMetrics", ctx) - ret0, _ := ret[0].([]database.GetWorkspacesForWorkspaceMetricsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetWorkspacesForWorkspaceMetrics indicates an expected call of GetWorkspacesForWorkspaceMetrics. -func (mr *MockStoreMockRecorder) GetWorkspacesForWorkspaceMetrics(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkspacesForWorkspaceMetrics", reflect.TypeOf((*MockStore)(nil).GetWorkspacesForWorkspaceMetrics), ctx) -} - -// InTx mocks base method. -func (m *MockStore) InTx(arg0 func(database.Store) error, arg1 *database.TxOptions) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InTx", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 -} - -// InTx indicates an expected call of InTx. -func (mr *MockStoreMockRecorder) InTx(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InTx", reflect.TypeOf((*MockStore)(nil).InTx), arg0, arg1) -} - -// InsertAIBridgeInterception mocks base method. -func (m *MockStore) InsertAIBridgeInterception(ctx context.Context, arg database.InsertAIBridgeInterceptionParams) (database.AIBridgeInterception, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertAIBridgeInterception", ctx, arg) - ret0, _ := ret[0].(database.AIBridgeInterception) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertAIBridgeInterception indicates an expected call of InsertAIBridgeInterception. -func (mr *MockStoreMockRecorder) InsertAIBridgeInterception(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAIBridgeInterception", reflect.TypeOf((*MockStore)(nil).InsertAIBridgeInterception), ctx, arg) -} - -// InsertAIBridgeTokenUsage mocks base method. -func (m *MockStore) InsertAIBridgeTokenUsage(ctx context.Context, arg database.InsertAIBridgeTokenUsageParams) (database.AIBridgeTokenUsage, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertAIBridgeTokenUsage", ctx, arg) - ret0, _ := ret[0].(database.AIBridgeTokenUsage) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertAIBridgeTokenUsage indicates an expected call of InsertAIBridgeTokenUsage. -func (mr *MockStoreMockRecorder) InsertAIBridgeTokenUsage(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAIBridgeTokenUsage", reflect.TypeOf((*MockStore)(nil).InsertAIBridgeTokenUsage), ctx, arg) -} - -// InsertAIBridgeToolUsage mocks base method. -func (m *MockStore) InsertAIBridgeToolUsage(ctx context.Context, arg database.InsertAIBridgeToolUsageParams) (database.AIBridgeToolUsage, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertAIBridgeToolUsage", ctx, arg) - ret0, _ := ret[0].(database.AIBridgeToolUsage) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertAIBridgeToolUsage indicates an expected call of InsertAIBridgeToolUsage. -func (mr *MockStoreMockRecorder) InsertAIBridgeToolUsage(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAIBridgeToolUsage", reflect.TypeOf((*MockStore)(nil).InsertAIBridgeToolUsage), ctx, arg) -} - -// InsertAIBridgeUserPrompt mocks base method. -func (m *MockStore) InsertAIBridgeUserPrompt(ctx context.Context, arg database.InsertAIBridgeUserPromptParams) (database.AIBridgeUserPrompt, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertAIBridgeUserPrompt", ctx, arg) - ret0, _ := ret[0].(database.AIBridgeUserPrompt) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertAIBridgeUserPrompt indicates an expected call of InsertAIBridgeUserPrompt. -func (mr *MockStoreMockRecorder) InsertAIBridgeUserPrompt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAIBridgeUserPrompt", reflect.TypeOf((*MockStore)(nil).InsertAIBridgeUserPrompt), ctx, arg) -} - -// InsertAPIKey mocks base method. -func (m *MockStore) InsertAPIKey(ctx context.Context, arg database.InsertAPIKeyParams) (database.APIKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertAPIKey", ctx, arg) - ret0, _ := ret[0].(database.APIKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertAPIKey indicates an expected call of InsertAPIKey. -func (mr *MockStoreMockRecorder) InsertAPIKey(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAPIKey", reflect.TypeOf((*MockStore)(nil).InsertAPIKey), ctx, arg) -} - -// InsertAllUsersGroup mocks base method. -func (m *MockStore) InsertAllUsersGroup(ctx context.Context, organizationID uuid.UUID) (database.Group, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertAllUsersGroup", ctx, organizationID) - ret0, _ := ret[0].(database.Group) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertAllUsersGroup indicates an expected call of InsertAllUsersGroup. -func (mr *MockStoreMockRecorder) InsertAllUsersGroup(ctx, organizationID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAllUsersGroup", reflect.TypeOf((*MockStore)(nil).InsertAllUsersGroup), ctx, organizationID) -} - -// InsertAuditLog mocks base method. -func (m *MockStore) InsertAuditLog(ctx context.Context, arg database.InsertAuditLogParams) (database.AuditLog, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertAuditLog", ctx, arg) - ret0, _ := ret[0].(database.AuditLog) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertAuditLog indicates an expected call of InsertAuditLog. -func (mr *MockStoreMockRecorder) InsertAuditLog(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAuditLog", reflect.TypeOf((*MockStore)(nil).InsertAuditLog), ctx, arg) -} - -// InsertCryptoKey mocks base method. -func (m *MockStore) InsertCryptoKey(ctx context.Context, arg database.InsertCryptoKeyParams) (database.CryptoKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertCryptoKey", ctx, arg) - ret0, _ := ret[0].(database.CryptoKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertCryptoKey indicates an expected call of InsertCryptoKey. -func (mr *MockStoreMockRecorder) InsertCryptoKey(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertCryptoKey", reflect.TypeOf((*MockStore)(nil).InsertCryptoKey), ctx, arg) -} - -// InsertCustomRole mocks base method. -func (m *MockStore) InsertCustomRole(ctx context.Context, arg database.InsertCustomRoleParams) (database.CustomRole, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertCustomRole", ctx, arg) - ret0, _ := ret[0].(database.CustomRole) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertCustomRole indicates an expected call of InsertCustomRole. -func (mr *MockStoreMockRecorder) InsertCustomRole(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertCustomRole", reflect.TypeOf((*MockStore)(nil).InsertCustomRole), ctx, arg) -} - -// InsertDBCryptKey mocks base method. -func (m *MockStore) InsertDBCryptKey(ctx context.Context, arg database.InsertDBCryptKeyParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertDBCryptKey", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertDBCryptKey indicates an expected call of InsertDBCryptKey. -func (mr *MockStoreMockRecorder) InsertDBCryptKey(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertDBCryptKey", reflect.TypeOf((*MockStore)(nil).InsertDBCryptKey), ctx, arg) -} - -// InsertDERPMeshKey mocks base method. -func (m *MockStore) InsertDERPMeshKey(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertDERPMeshKey", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertDERPMeshKey indicates an expected call of InsertDERPMeshKey. -func (mr *MockStoreMockRecorder) InsertDERPMeshKey(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertDERPMeshKey", reflect.TypeOf((*MockStore)(nil).InsertDERPMeshKey), ctx, value) -} - -// InsertDeploymentID mocks base method. -func (m *MockStore) InsertDeploymentID(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertDeploymentID", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertDeploymentID indicates an expected call of InsertDeploymentID. -func (mr *MockStoreMockRecorder) InsertDeploymentID(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertDeploymentID", reflect.TypeOf((*MockStore)(nil).InsertDeploymentID), ctx, value) -} - -// InsertExternalAuthLink mocks base method. -func (m *MockStore) InsertExternalAuthLink(ctx context.Context, arg database.InsertExternalAuthLinkParams) (database.ExternalAuthLink, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertExternalAuthLink", ctx, arg) - ret0, _ := ret[0].(database.ExternalAuthLink) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertExternalAuthLink indicates an expected call of InsertExternalAuthLink. -func (mr *MockStoreMockRecorder) InsertExternalAuthLink(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertExternalAuthLink", reflect.TypeOf((*MockStore)(nil).InsertExternalAuthLink), ctx, arg) -} - -// InsertFile mocks base method. -func (m *MockStore) InsertFile(ctx context.Context, arg database.InsertFileParams) (database.File, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertFile", ctx, arg) - ret0, _ := ret[0].(database.File) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertFile indicates an expected call of InsertFile. -func (mr *MockStoreMockRecorder) InsertFile(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertFile", reflect.TypeOf((*MockStore)(nil).InsertFile), ctx, arg) -} - -// InsertGitSSHKey mocks base method. -func (m *MockStore) InsertGitSSHKey(ctx context.Context, arg database.InsertGitSSHKeyParams) (database.GitSSHKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertGitSSHKey", ctx, arg) - ret0, _ := ret[0].(database.GitSSHKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertGitSSHKey indicates an expected call of InsertGitSSHKey. -func (mr *MockStoreMockRecorder) InsertGitSSHKey(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertGitSSHKey", reflect.TypeOf((*MockStore)(nil).InsertGitSSHKey), ctx, arg) -} - -// InsertGroup mocks base method. -func (m *MockStore) InsertGroup(ctx context.Context, arg database.InsertGroupParams) (database.Group, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertGroup", ctx, arg) - ret0, _ := ret[0].(database.Group) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertGroup indicates an expected call of InsertGroup. -func (mr *MockStoreMockRecorder) InsertGroup(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertGroup", reflect.TypeOf((*MockStore)(nil).InsertGroup), ctx, arg) -} - -// InsertGroupMember mocks base method. -func (m *MockStore) InsertGroupMember(ctx context.Context, arg database.InsertGroupMemberParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertGroupMember", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertGroupMember indicates an expected call of InsertGroupMember. -func (mr *MockStoreMockRecorder) InsertGroupMember(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertGroupMember", reflect.TypeOf((*MockStore)(nil).InsertGroupMember), ctx, arg) -} - -// InsertInboxNotification mocks base method. -func (m *MockStore) InsertInboxNotification(ctx context.Context, arg database.InsertInboxNotificationParams) (database.InboxNotification, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertInboxNotification", ctx, arg) - ret0, _ := ret[0].(database.InboxNotification) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertInboxNotification indicates an expected call of InsertInboxNotification. -func (mr *MockStoreMockRecorder) InsertInboxNotification(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertInboxNotification", reflect.TypeOf((*MockStore)(nil).InsertInboxNotification), ctx, arg) -} - -// InsertLicense mocks base method. -func (m *MockStore) InsertLicense(ctx context.Context, arg database.InsertLicenseParams) (database.License, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertLicense", ctx, arg) - ret0, _ := ret[0].(database.License) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertLicense indicates an expected call of InsertLicense. -func (mr *MockStoreMockRecorder) InsertLicense(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertLicense", reflect.TypeOf((*MockStore)(nil).InsertLicense), ctx, arg) -} - -// InsertMemoryResourceMonitor mocks base method. -func (m *MockStore) InsertMemoryResourceMonitor(ctx context.Context, arg database.InsertMemoryResourceMonitorParams) (database.WorkspaceAgentMemoryResourceMonitor, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertMemoryResourceMonitor", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceAgentMemoryResourceMonitor) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertMemoryResourceMonitor indicates an expected call of InsertMemoryResourceMonitor. -func (mr *MockStoreMockRecorder) InsertMemoryResourceMonitor(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertMemoryResourceMonitor", reflect.TypeOf((*MockStore)(nil).InsertMemoryResourceMonitor), ctx, arg) -} - -// InsertMissingGroups mocks base method. -func (m *MockStore) InsertMissingGroups(ctx context.Context, arg database.InsertMissingGroupsParams) ([]database.Group, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertMissingGroups", ctx, arg) - ret0, _ := ret[0].([]database.Group) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertMissingGroups indicates an expected call of InsertMissingGroups. -func (mr *MockStoreMockRecorder) InsertMissingGroups(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertMissingGroups", reflect.TypeOf((*MockStore)(nil).InsertMissingGroups), ctx, arg) -} - -// InsertOAuth2ProviderApp mocks base method. -func (m *MockStore) InsertOAuth2ProviderApp(ctx context.Context, arg database.InsertOAuth2ProviderAppParams) (database.OAuth2ProviderApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertOAuth2ProviderApp", ctx, arg) - ret0, _ := ret[0].(database.OAuth2ProviderApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertOAuth2ProviderApp indicates an expected call of InsertOAuth2ProviderApp. -func (mr *MockStoreMockRecorder) InsertOAuth2ProviderApp(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOAuth2ProviderApp", reflect.TypeOf((*MockStore)(nil).InsertOAuth2ProviderApp), ctx, arg) -} - -// InsertOAuth2ProviderAppCode mocks base method. -func (m *MockStore) InsertOAuth2ProviderAppCode(ctx context.Context, arg database.InsertOAuth2ProviderAppCodeParams) (database.OAuth2ProviderAppCode, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertOAuth2ProviderAppCode", ctx, arg) - ret0, _ := ret[0].(database.OAuth2ProviderAppCode) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertOAuth2ProviderAppCode indicates an expected call of InsertOAuth2ProviderAppCode. -func (mr *MockStoreMockRecorder) InsertOAuth2ProviderAppCode(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOAuth2ProviderAppCode", reflect.TypeOf((*MockStore)(nil).InsertOAuth2ProviderAppCode), ctx, arg) -} - -// InsertOAuth2ProviderAppSecret mocks base method. -func (m *MockStore) InsertOAuth2ProviderAppSecret(ctx context.Context, arg database.InsertOAuth2ProviderAppSecretParams) (database.OAuth2ProviderAppSecret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertOAuth2ProviderAppSecret", ctx, arg) - ret0, _ := ret[0].(database.OAuth2ProviderAppSecret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertOAuth2ProviderAppSecret indicates an expected call of InsertOAuth2ProviderAppSecret. -func (mr *MockStoreMockRecorder) InsertOAuth2ProviderAppSecret(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOAuth2ProviderAppSecret", reflect.TypeOf((*MockStore)(nil).InsertOAuth2ProviderAppSecret), ctx, arg) -} - -// InsertOAuth2ProviderAppToken mocks base method. -func (m *MockStore) InsertOAuth2ProviderAppToken(ctx context.Context, arg database.InsertOAuth2ProviderAppTokenParams) (database.OAuth2ProviderAppToken, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertOAuth2ProviderAppToken", ctx, arg) - ret0, _ := ret[0].(database.OAuth2ProviderAppToken) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertOAuth2ProviderAppToken indicates an expected call of InsertOAuth2ProviderAppToken. -func (mr *MockStoreMockRecorder) InsertOAuth2ProviderAppToken(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOAuth2ProviderAppToken", reflect.TypeOf((*MockStore)(nil).InsertOAuth2ProviderAppToken), ctx, arg) -} - -// InsertOrganization mocks base method. -func (m *MockStore) InsertOrganization(ctx context.Context, arg database.InsertOrganizationParams) (database.Organization, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertOrganization", ctx, arg) - ret0, _ := ret[0].(database.Organization) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertOrganization indicates an expected call of InsertOrganization. -func (mr *MockStoreMockRecorder) InsertOrganization(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOrganization", reflect.TypeOf((*MockStore)(nil).InsertOrganization), ctx, arg) -} - -// InsertOrganizationMember mocks base method. -func (m *MockStore) InsertOrganizationMember(ctx context.Context, arg database.InsertOrganizationMemberParams) (database.OrganizationMember, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertOrganizationMember", ctx, arg) - ret0, _ := ret[0].(database.OrganizationMember) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertOrganizationMember indicates an expected call of InsertOrganizationMember. -func (mr *MockStoreMockRecorder) InsertOrganizationMember(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOrganizationMember", reflect.TypeOf((*MockStore)(nil).InsertOrganizationMember), ctx, arg) -} - -// InsertPreset mocks base method. -func (m *MockStore) InsertPreset(ctx context.Context, arg database.InsertPresetParams) (database.TemplateVersionPreset, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertPreset", ctx, arg) - ret0, _ := ret[0].(database.TemplateVersionPreset) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertPreset indicates an expected call of InsertPreset. -func (mr *MockStoreMockRecorder) InsertPreset(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertPreset", reflect.TypeOf((*MockStore)(nil).InsertPreset), ctx, arg) -} - -// InsertPresetParameters mocks base method. -func (m *MockStore) InsertPresetParameters(ctx context.Context, arg database.InsertPresetParametersParams) ([]database.TemplateVersionPresetParameter, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertPresetParameters", ctx, arg) - ret0, _ := ret[0].([]database.TemplateVersionPresetParameter) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertPresetParameters indicates an expected call of InsertPresetParameters. -func (mr *MockStoreMockRecorder) InsertPresetParameters(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertPresetParameters", reflect.TypeOf((*MockStore)(nil).InsertPresetParameters), ctx, arg) -} - -// InsertPresetPrebuildSchedule mocks base method. -func (m *MockStore) InsertPresetPrebuildSchedule(ctx context.Context, arg database.InsertPresetPrebuildScheduleParams) (database.TemplateVersionPresetPrebuildSchedule, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertPresetPrebuildSchedule", ctx, arg) - ret0, _ := ret[0].(database.TemplateVersionPresetPrebuildSchedule) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertPresetPrebuildSchedule indicates an expected call of InsertPresetPrebuildSchedule. -func (mr *MockStoreMockRecorder) InsertPresetPrebuildSchedule(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertPresetPrebuildSchedule", reflect.TypeOf((*MockStore)(nil).InsertPresetPrebuildSchedule), ctx, arg) -} - -// InsertProvisionerJob mocks base method. -func (m *MockStore) InsertProvisionerJob(ctx context.Context, arg database.InsertProvisionerJobParams) (database.ProvisionerJob, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertProvisionerJob", ctx, arg) - ret0, _ := ret[0].(database.ProvisionerJob) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertProvisionerJob indicates an expected call of InsertProvisionerJob. -func (mr *MockStoreMockRecorder) InsertProvisionerJob(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertProvisionerJob", reflect.TypeOf((*MockStore)(nil).InsertProvisionerJob), ctx, arg) -} - -// InsertProvisionerJobLogs mocks base method. -func (m *MockStore) InsertProvisionerJobLogs(ctx context.Context, arg database.InsertProvisionerJobLogsParams) ([]database.ProvisionerJobLog, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertProvisionerJobLogs", ctx, arg) - ret0, _ := ret[0].([]database.ProvisionerJobLog) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertProvisionerJobLogs indicates an expected call of InsertProvisionerJobLogs. -func (mr *MockStoreMockRecorder) InsertProvisionerJobLogs(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertProvisionerJobLogs", reflect.TypeOf((*MockStore)(nil).InsertProvisionerJobLogs), ctx, arg) -} - -// InsertProvisionerJobTimings mocks base method. -func (m *MockStore) InsertProvisionerJobTimings(ctx context.Context, arg database.InsertProvisionerJobTimingsParams) ([]database.ProvisionerJobTiming, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertProvisionerJobTimings", ctx, arg) - ret0, _ := ret[0].([]database.ProvisionerJobTiming) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertProvisionerJobTimings indicates an expected call of InsertProvisionerJobTimings. -func (mr *MockStoreMockRecorder) InsertProvisionerJobTimings(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertProvisionerJobTimings", reflect.TypeOf((*MockStore)(nil).InsertProvisionerJobTimings), ctx, arg) -} - -// InsertProvisionerKey mocks base method. -func (m *MockStore) InsertProvisionerKey(ctx context.Context, arg database.InsertProvisionerKeyParams) (database.ProvisionerKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertProvisionerKey", ctx, arg) - ret0, _ := ret[0].(database.ProvisionerKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertProvisionerKey indicates an expected call of InsertProvisionerKey. -func (mr *MockStoreMockRecorder) InsertProvisionerKey(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertProvisionerKey", reflect.TypeOf((*MockStore)(nil).InsertProvisionerKey), ctx, arg) -} - -// InsertReplica mocks base method. -func (m *MockStore) InsertReplica(ctx context.Context, arg database.InsertReplicaParams) (database.Replica, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertReplica", ctx, arg) - ret0, _ := ret[0].(database.Replica) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertReplica indicates an expected call of InsertReplica. -func (mr *MockStoreMockRecorder) InsertReplica(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertReplica", reflect.TypeOf((*MockStore)(nil).InsertReplica), ctx, arg) -} - -// InsertTask mocks base method. -func (m *MockStore) InsertTask(ctx context.Context, arg database.InsertTaskParams) (database.TaskTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertTask", ctx, arg) - ret0, _ := ret[0].(database.TaskTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertTask indicates an expected call of InsertTask. -func (mr *MockStoreMockRecorder) InsertTask(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTask", reflect.TypeOf((*MockStore)(nil).InsertTask), ctx, arg) -} - -// InsertTelemetryItemIfNotExists mocks base method. -func (m *MockStore) InsertTelemetryItemIfNotExists(ctx context.Context, arg database.InsertTelemetryItemIfNotExistsParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertTelemetryItemIfNotExists", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertTelemetryItemIfNotExists indicates an expected call of InsertTelemetryItemIfNotExists. -func (mr *MockStoreMockRecorder) InsertTelemetryItemIfNotExists(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTelemetryItemIfNotExists", reflect.TypeOf((*MockStore)(nil).InsertTelemetryItemIfNotExists), ctx, arg) -} - -// InsertTelemetryLock mocks base method. -func (m *MockStore) InsertTelemetryLock(ctx context.Context, arg database.InsertTelemetryLockParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertTelemetryLock", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertTelemetryLock indicates an expected call of InsertTelemetryLock. -func (mr *MockStoreMockRecorder) InsertTelemetryLock(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTelemetryLock", reflect.TypeOf((*MockStore)(nil).InsertTelemetryLock), ctx, arg) -} - -// InsertTemplate mocks base method. -func (m *MockStore) InsertTemplate(ctx context.Context, arg database.InsertTemplateParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertTemplate", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertTemplate indicates an expected call of InsertTemplate. -func (mr *MockStoreMockRecorder) InsertTemplate(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplate", reflect.TypeOf((*MockStore)(nil).InsertTemplate), ctx, arg) -} - -// InsertTemplateVersion mocks base method. -func (m *MockStore) InsertTemplateVersion(ctx context.Context, arg database.InsertTemplateVersionParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertTemplateVersion", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertTemplateVersion indicates an expected call of InsertTemplateVersion. -func (mr *MockStoreMockRecorder) InsertTemplateVersion(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplateVersion", reflect.TypeOf((*MockStore)(nil).InsertTemplateVersion), ctx, arg) -} - -// InsertTemplateVersionParameter mocks base method. -func (m *MockStore) InsertTemplateVersionParameter(ctx context.Context, arg database.InsertTemplateVersionParameterParams) (database.TemplateVersionParameter, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertTemplateVersionParameter", ctx, arg) - ret0, _ := ret[0].(database.TemplateVersionParameter) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertTemplateVersionParameter indicates an expected call of InsertTemplateVersionParameter. -func (mr *MockStoreMockRecorder) InsertTemplateVersionParameter(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplateVersionParameter", reflect.TypeOf((*MockStore)(nil).InsertTemplateVersionParameter), ctx, arg) -} - -// InsertTemplateVersionTerraformValuesByJobID mocks base method. -func (m *MockStore) InsertTemplateVersionTerraformValuesByJobID(ctx context.Context, arg database.InsertTemplateVersionTerraformValuesByJobIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertTemplateVersionTerraformValuesByJobID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertTemplateVersionTerraformValuesByJobID indicates an expected call of InsertTemplateVersionTerraformValuesByJobID. -func (mr *MockStoreMockRecorder) InsertTemplateVersionTerraformValuesByJobID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplateVersionTerraformValuesByJobID", reflect.TypeOf((*MockStore)(nil).InsertTemplateVersionTerraformValuesByJobID), ctx, arg) -} - -// InsertTemplateVersionVariable mocks base method. -func (m *MockStore) InsertTemplateVersionVariable(ctx context.Context, arg database.InsertTemplateVersionVariableParams) (database.TemplateVersionVariable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertTemplateVersionVariable", ctx, arg) - ret0, _ := ret[0].(database.TemplateVersionVariable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertTemplateVersionVariable indicates an expected call of InsertTemplateVersionVariable. -func (mr *MockStoreMockRecorder) InsertTemplateVersionVariable(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplateVersionVariable", reflect.TypeOf((*MockStore)(nil).InsertTemplateVersionVariable), ctx, arg) -} - -// InsertTemplateVersionWorkspaceTag mocks base method. -func (m *MockStore) InsertTemplateVersionWorkspaceTag(ctx context.Context, arg database.InsertTemplateVersionWorkspaceTagParams) (database.TemplateVersionWorkspaceTag, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertTemplateVersionWorkspaceTag", ctx, arg) - ret0, _ := ret[0].(database.TemplateVersionWorkspaceTag) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertTemplateVersionWorkspaceTag indicates an expected call of InsertTemplateVersionWorkspaceTag. -func (mr *MockStoreMockRecorder) InsertTemplateVersionWorkspaceTag(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertTemplateVersionWorkspaceTag", reflect.TypeOf((*MockStore)(nil).InsertTemplateVersionWorkspaceTag), ctx, arg) -} - -// InsertUsageEvent mocks base method. -func (m *MockStore) InsertUsageEvent(ctx context.Context, arg database.InsertUsageEventParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertUsageEvent", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertUsageEvent indicates an expected call of InsertUsageEvent. -func (mr *MockStoreMockRecorder) InsertUsageEvent(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUsageEvent", reflect.TypeOf((*MockStore)(nil).InsertUsageEvent), ctx, arg) -} - -// InsertUser mocks base method. -func (m *MockStore) InsertUser(ctx context.Context, arg database.InsertUserParams) (database.User, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertUser", ctx, arg) - ret0, _ := ret[0].(database.User) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertUser indicates an expected call of InsertUser. -func (mr *MockStoreMockRecorder) InsertUser(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUser", reflect.TypeOf((*MockStore)(nil).InsertUser), ctx, arg) -} - -// InsertUserGroupsByID mocks base method. -func (m *MockStore) InsertUserGroupsByID(ctx context.Context, arg database.InsertUserGroupsByIDParams) ([]uuid.UUID, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertUserGroupsByID", ctx, arg) - ret0, _ := ret[0].([]uuid.UUID) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertUserGroupsByID indicates an expected call of InsertUserGroupsByID. -func (mr *MockStoreMockRecorder) InsertUserGroupsByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUserGroupsByID", reflect.TypeOf((*MockStore)(nil).InsertUserGroupsByID), ctx, arg) -} - -// InsertUserGroupsByName mocks base method. -func (m *MockStore) InsertUserGroupsByName(ctx context.Context, arg database.InsertUserGroupsByNameParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertUserGroupsByName", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertUserGroupsByName indicates an expected call of InsertUserGroupsByName. -func (mr *MockStoreMockRecorder) InsertUserGroupsByName(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUserGroupsByName", reflect.TypeOf((*MockStore)(nil).InsertUserGroupsByName), ctx, arg) -} - -// InsertUserLink mocks base method. -func (m *MockStore) InsertUserLink(ctx context.Context, arg database.InsertUserLinkParams) (database.UserLink, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertUserLink", ctx, arg) - ret0, _ := ret[0].(database.UserLink) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertUserLink indicates an expected call of InsertUserLink. -func (mr *MockStoreMockRecorder) InsertUserLink(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUserLink", reflect.TypeOf((*MockStore)(nil).InsertUserLink), ctx, arg) -} - -// InsertVolumeResourceMonitor mocks base method. -func (m *MockStore) InsertVolumeResourceMonitor(ctx context.Context, arg database.InsertVolumeResourceMonitorParams) (database.WorkspaceAgentVolumeResourceMonitor, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertVolumeResourceMonitor", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceAgentVolumeResourceMonitor) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertVolumeResourceMonitor indicates an expected call of InsertVolumeResourceMonitor. -func (mr *MockStoreMockRecorder) InsertVolumeResourceMonitor(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertVolumeResourceMonitor", reflect.TypeOf((*MockStore)(nil).InsertVolumeResourceMonitor), ctx, arg) -} - -// InsertWebpushSubscription mocks base method. -func (m *MockStore) InsertWebpushSubscription(ctx context.Context, arg database.InsertWebpushSubscriptionParams) (database.WebpushSubscription, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWebpushSubscription", ctx, arg) - ret0, _ := ret[0].(database.WebpushSubscription) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWebpushSubscription indicates an expected call of InsertWebpushSubscription. -func (mr *MockStoreMockRecorder) InsertWebpushSubscription(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWebpushSubscription", reflect.TypeOf((*MockStore)(nil).InsertWebpushSubscription), ctx, arg) -} - -// InsertWorkspace mocks base method. -func (m *MockStore) InsertWorkspace(ctx context.Context, arg database.InsertWorkspaceParams) (database.WorkspaceTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspace", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspace indicates an expected call of InsertWorkspace. -func (mr *MockStoreMockRecorder) InsertWorkspace(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspace", reflect.TypeOf((*MockStore)(nil).InsertWorkspace), ctx, arg) -} - -// InsertWorkspaceAgent mocks base method. -func (m *MockStore) InsertWorkspaceAgent(ctx context.Context, arg database.InsertWorkspaceAgentParams) (database.WorkspaceAgent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceAgent", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceAgent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspaceAgent indicates an expected call of InsertWorkspaceAgent. -func (mr *MockStoreMockRecorder) InsertWorkspaceAgent(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgent", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgent), ctx, arg) -} - -// InsertWorkspaceAgentDevcontainers mocks base method. -func (m *MockStore) InsertWorkspaceAgentDevcontainers(ctx context.Context, arg database.InsertWorkspaceAgentDevcontainersParams) ([]database.WorkspaceAgentDevcontainer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceAgentDevcontainers", ctx, arg) - ret0, _ := ret[0].([]database.WorkspaceAgentDevcontainer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspaceAgentDevcontainers indicates an expected call of InsertWorkspaceAgentDevcontainers. -func (mr *MockStoreMockRecorder) InsertWorkspaceAgentDevcontainers(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentDevcontainers", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentDevcontainers), ctx, arg) -} - -// InsertWorkspaceAgentLogSources mocks base method. -func (m *MockStore) InsertWorkspaceAgentLogSources(ctx context.Context, arg database.InsertWorkspaceAgentLogSourcesParams) ([]database.WorkspaceAgentLogSource, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceAgentLogSources", ctx, arg) - ret0, _ := ret[0].([]database.WorkspaceAgentLogSource) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspaceAgentLogSources indicates an expected call of InsertWorkspaceAgentLogSources. -func (mr *MockStoreMockRecorder) InsertWorkspaceAgentLogSources(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentLogSources", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentLogSources), ctx, arg) -} - -// InsertWorkspaceAgentLogs mocks base method. -func (m *MockStore) InsertWorkspaceAgentLogs(ctx context.Context, arg database.InsertWorkspaceAgentLogsParams) ([]database.WorkspaceAgentLog, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceAgentLogs", ctx, arg) - ret0, _ := ret[0].([]database.WorkspaceAgentLog) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspaceAgentLogs indicates an expected call of InsertWorkspaceAgentLogs. -func (mr *MockStoreMockRecorder) InsertWorkspaceAgentLogs(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentLogs", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentLogs), ctx, arg) -} - -// InsertWorkspaceAgentMetadata mocks base method. -func (m *MockStore) InsertWorkspaceAgentMetadata(ctx context.Context, arg database.InsertWorkspaceAgentMetadataParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceAgentMetadata", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertWorkspaceAgentMetadata indicates an expected call of InsertWorkspaceAgentMetadata. -func (mr *MockStoreMockRecorder) InsertWorkspaceAgentMetadata(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentMetadata", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentMetadata), ctx, arg) -} - -// InsertWorkspaceAgentScriptTimings mocks base method. -func (m *MockStore) InsertWorkspaceAgentScriptTimings(ctx context.Context, arg database.InsertWorkspaceAgentScriptTimingsParams) (database.WorkspaceAgentScriptTiming, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceAgentScriptTimings", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceAgentScriptTiming) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspaceAgentScriptTimings indicates an expected call of InsertWorkspaceAgentScriptTimings. -func (mr *MockStoreMockRecorder) InsertWorkspaceAgentScriptTimings(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentScriptTimings", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentScriptTimings), ctx, arg) -} - -// InsertWorkspaceAgentScripts mocks base method. -func (m *MockStore) InsertWorkspaceAgentScripts(ctx context.Context, arg database.InsertWorkspaceAgentScriptsParams) ([]database.WorkspaceAgentScript, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceAgentScripts", ctx, arg) - ret0, _ := ret[0].([]database.WorkspaceAgentScript) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspaceAgentScripts indicates an expected call of InsertWorkspaceAgentScripts. -func (mr *MockStoreMockRecorder) InsertWorkspaceAgentScripts(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentScripts", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentScripts), ctx, arg) -} - -// InsertWorkspaceAgentStats mocks base method. -func (m *MockStore) InsertWorkspaceAgentStats(ctx context.Context, arg database.InsertWorkspaceAgentStatsParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceAgentStats", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertWorkspaceAgentStats indicates an expected call of InsertWorkspaceAgentStats. -func (mr *MockStoreMockRecorder) InsertWorkspaceAgentStats(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAgentStats", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAgentStats), ctx, arg) -} - -// InsertWorkspaceAppStats mocks base method. -func (m *MockStore) InsertWorkspaceAppStats(ctx context.Context, arg database.InsertWorkspaceAppStatsParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceAppStats", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertWorkspaceAppStats indicates an expected call of InsertWorkspaceAppStats. -func (mr *MockStoreMockRecorder) InsertWorkspaceAppStats(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAppStats", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAppStats), ctx, arg) -} - -// InsertWorkspaceAppStatus mocks base method. -func (m *MockStore) InsertWorkspaceAppStatus(ctx context.Context, arg database.InsertWorkspaceAppStatusParams) (database.WorkspaceAppStatus, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceAppStatus", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceAppStatus) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspaceAppStatus indicates an expected call of InsertWorkspaceAppStatus. -func (mr *MockStoreMockRecorder) InsertWorkspaceAppStatus(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceAppStatus", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceAppStatus), ctx, arg) -} - -// InsertWorkspaceBuild mocks base method. -func (m *MockStore) InsertWorkspaceBuild(ctx context.Context, arg database.InsertWorkspaceBuildParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceBuild", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertWorkspaceBuild indicates an expected call of InsertWorkspaceBuild. -func (mr *MockStoreMockRecorder) InsertWorkspaceBuild(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceBuild", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceBuild), ctx, arg) -} - -// InsertWorkspaceBuildParameters mocks base method. -func (m *MockStore) InsertWorkspaceBuildParameters(ctx context.Context, arg database.InsertWorkspaceBuildParametersParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceBuildParameters", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// InsertWorkspaceBuildParameters indicates an expected call of InsertWorkspaceBuildParameters. -func (mr *MockStoreMockRecorder) InsertWorkspaceBuildParameters(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceBuildParameters", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceBuildParameters), ctx, arg) -} - -// InsertWorkspaceModule mocks base method. -func (m *MockStore) InsertWorkspaceModule(ctx context.Context, arg database.InsertWorkspaceModuleParams) (database.WorkspaceModule, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceModule", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceModule) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspaceModule indicates an expected call of InsertWorkspaceModule. -func (mr *MockStoreMockRecorder) InsertWorkspaceModule(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceModule", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceModule), ctx, arg) -} - -// InsertWorkspaceProxy mocks base method. -func (m *MockStore) InsertWorkspaceProxy(ctx context.Context, arg database.InsertWorkspaceProxyParams) (database.WorkspaceProxy, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceProxy", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceProxy) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspaceProxy indicates an expected call of InsertWorkspaceProxy. -func (mr *MockStoreMockRecorder) InsertWorkspaceProxy(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceProxy", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceProxy), ctx, arg) -} - -// InsertWorkspaceResource mocks base method. -func (m *MockStore) InsertWorkspaceResource(ctx context.Context, arg database.InsertWorkspaceResourceParams) (database.WorkspaceResource, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceResource", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceResource) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspaceResource indicates an expected call of InsertWorkspaceResource. -func (mr *MockStoreMockRecorder) InsertWorkspaceResource(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceResource", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceResource), ctx, arg) -} - -// InsertWorkspaceResourceMetadata mocks base method. -func (m *MockStore) InsertWorkspaceResourceMetadata(ctx context.Context, arg database.InsertWorkspaceResourceMetadataParams) ([]database.WorkspaceResourceMetadatum, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "InsertWorkspaceResourceMetadata", ctx, arg) - ret0, _ := ret[0].([]database.WorkspaceResourceMetadatum) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// InsertWorkspaceResourceMetadata indicates an expected call of InsertWorkspaceResourceMetadata. -func (mr *MockStoreMockRecorder) InsertWorkspaceResourceMetadata(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceResourceMetadata", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceResourceMetadata), ctx, arg) -} - -// ListAIBridgeInterceptions mocks base method. -func (m *MockStore) ListAIBridgeInterceptions(ctx context.Context, arg database.ListAIBridgeInterceptionsParams) ([]database.ListAIBridgeInterceptionsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAIBridgeInterceptions", ctx, arg) - ret0, _ := ret[0].([]database.ListAIBridgeInterceptionsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListAIBridgeInterceptions indicates an expected call of ListAIBridgeInterceptions. -func (mr *MockStoreMockRecorder) ListAIBridgeInterceptions(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeInterceptions", reflect.TypeOf((*MockStore)(nil).ListAIBridgeInterceptions), ctx, arg) -} - -// ListAIBridgeInterceptionsTelemetrySummaries mocks base method. -func (m *MockStore) ListAIBridgeInterceptionsTelemetrySummaries(ctx context.Context, arg database.ListAIBridgeInterceptionsTelemetrySummariesParams) ([]database.ListAIBridgeInterceptionsTelemetrySummariesRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAIBridgeInterceptionsTelemetrySummaries", ctx, arg) - ret0, _ := ret[0].([]database.ListAIBridgeInterceptionsTelemetrySummariesRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListAIBridgeInterceptionsTelemetrySummaries indicates an expected call of ListAIBridgeInterceptionsTelemetrySummaries. -func (mr *MockStoreMockRecorder) ListAIBridgeInterceptionsTelemetrySummaries(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeInterceptionsTelemetrySummaries", reflect.TypeOf((*MockStore)(nil).ListAIBridgeInterceptionsTelemetrySummaries), ctx, arg) -} - -// ListAIBridgeModels mocks base method. -func (m *MockStore) ListAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams) ([]string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAIBridgeModels", ctx, arg) - ret0, _ := ret[0].([]string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListAIBridgeModels indicates an expected call of ListAIBridgeModels. -func (mr *MockStoreMockRecorder) ListAIBridgeModels(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeModels", reflect.TypeOf((*MockStore)(nil).ListAIBridgeModels), ctx, arg) -} - -// ListAIBridgeTokenUsagesByInterceptionIDs mocks base method. -func (m *MockStore) ListAIBridgeTokenUsagesByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]database.AIBridgeTokenUsage, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAIBridgeTokenUsagesByInterceptionIDs", ctx, interceptionIds) - ret0, _ := ret[0].([]database.AIBridgeTokenUsage) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListAIBridgeTokenUsagesByInterceptionIDs indicates an expected call of ListAIBridgeTokenUsagesByInterceptionIDs. -func (mr *MockStoreMockRecorder) ListAIBridgeTokenUsagesByInterceptionIDs(ctx, interceptionIds any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeTokenUsagesByInterceptionIDs", reflect.TypeOf((*MockStore)(nil).ListAIBridgeTokenUsagesByInterceptionIDs), ctx, interceptionIds) -} - -// ListAIBridgeToolUsagesByInterceptionIDs mocks base method. -func (m *MockStore) ListAIBridgeToolUsagesByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]database.AIBridgeToolUsage, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAIBridgeToolUsagesByInterceptionIDs", ctx, interceptionIds) - ret0, _ := ret[0].([]database.AIBridgeToolUsage) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListAIBridgeToolUsagesByInterceptionIDs indicates an expected call of ListAIBridgeToolUsagesByInterceptionIDs. -func (mr *MockStoreMockRecorder) ListAIBridgeToolUsagesByInterceptionIDs(ctx, interceptionIds any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeToolUsagesByInterceptionIDs", reflect.TypeOf((*MockStore)(nil).ListAIBridgeToolUsagesByInterceptionIDs), ctx, interceptionIds) -} - -// ListAIBridgeUserPromptsByInterceptionIDs mocks base method. -func (m *MockStore) ListAIBridgeUserPromptsByInterceptionIDs(ctx context.Context, interceptionIds []uuid.UUID) ([]database.AIBridgeUserPrompt, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAIBridgeUserPromptsByInterceptionIDs", ctx, interceptionIds) - ret0, _ := ret[0].([]database.AIBridgeUserPrompt) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListAIBridgeUserPromptsByInterceptionIDs indicates an expected call of ListAIBridgeUserPromptsByInterceptionIDs. -func (mr *MockStoreMockRecorder) ListAIBridgeUserPromptsByInterceptionIDs(ctx, interceptionIds any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAIBridgeUserPromptsByInterceptionIDs", reflect.TypeOf((*MockStore)(nil).ListAIBridgeUserPromptsByInterceptionIDs), ctx, interceptionIds) -} - -// ListAuthorizedAIBridgeInterceptions mocks base method. -func (m *MockStore) ListAuthorizedAIBridgeInterceptions(ctx context.Context, arg database.ListAIBridgeInterceptionsParams, prepared rbac.PreparedAuthorized) ([]database.ListAIBridgeInterceptionsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAuthorizedAIBridgeInterceptions", ctx, arg, prepared) - ret0, _ := ret[0].([]database.ListAIBridgeInterceptionsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListAuthorizedAIBridgeInterceptions indicates an expected call of ListAuthorizedAIBridgeInterceptions. -func (mr *MockStoreMockRecorder) ListAuthorizedAIBridgeInterceptions(ctx, arg, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAuthorizedAIBridgeInterceptions", reflect.TypeOf((*MockStore)(nil).ListAuthorizedAIBridgeInterceptions), ctx, arg, prepared) -} - -// ListAuthorizedAIBridgeModels mocks base method. -func (m *MockStore) ListAuthorizedAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams, prepared rbac.PreparedAuthorized) ([]string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAuthorizedAIBridgeModels", ctx, arg, prepared) - ret0, _ := ret[0].([]string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListAuthorizedAIBridgeModels indicates an expected call of ListAuthorizedAIBridgeModels. -func (mr *MockStoreMockRecorder) ListAuthorizedAIBridgeModels(ctx, arg, prepared any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAuthorizedAIBridgeModels", reflect.TypeOf((*MockStore)(nil).ListAuthorizedAIBridgeModels), ctx, arg, prepared) -} - -// ListProvisionerKeysByOrganization mocks base method. -func (m *MockStore) ListProvisionerKeysByOrganization(ctx context.Context, organizationID uuid.UUID) ([]database.ProvisionerKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListProvisionerKeysByOrganization", ctx, organizationID) - ret0, _ := ret[0].([]database.ProvisionerKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListProvisionerKeysByOrganization indicates an expected call of ListProvisionerKeysByOrganization. -func (mr *MockStoreMockRecorder) ListProvisionerKeysByOrganization(ctx, organizationID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProvisionerKeysByOrganization", reflect.TypeOf((*MockStore)(nil).ListProvisionerKeysByOrganization), ctx, organizationID) -} - -// ListProvisionerKeysByOrganizationExcludeReserved mocks base method. -func (m *MockStore) ListProvisionerKeysByOrganizationExcludeReserved(ctx context.Context, organizationID uuid.UUID) ([]database.ProvisionerKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListProvisionerKeysByOrganizationExcludeReserved", ctx, organizationID) - ret0, _ := ret[0].([]database.ProvisionerKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListProvisionerKeysByOrganizationExcludeReserved indicates an expected call of ListProvisionerKeysByOrganizationExcludeReserved. -func (mr *MockStoreMockRecorder) ListProvisionerKeysByOrganizationExcludeReserved(ctx, organizationID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProvisionerKeysByOrganizationExcludeReserved", reflect.TypeOf((*MockStore)(nil).ListProvisionerKeysByOrganizationExcludeReserved), ctx, organizationID) -} - -// ListTasks mocks base method. -func (m *MockStore) ListTasks(ctx context.Context, arg database.ListTasksParams) ([]database.Task, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListTasks", ctx, arg) - ret0, _ := ret[0].([]database.Task) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTasks indicates an expected call of ListTasks. -func (mr *MockStoreMockRecorder) ListTasks(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTasks", reflect.TypeOf((*MockStore)(nil).ListTasks), ctx, arg) -} - -// ListUserSecrets mocks base method. -func (m *MockStore) ListUserSecrets(ctx context.Context, userID uuid.UUID) ([]database.UserSecret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListUserSecrets", ctx, userID) - ret0, _ := ret[0].([]database.UserSecret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListUserSecrets indicates an expected call of ListUserSecrets. -func (mr *MockStoreMockRecorder) ListUserSecrets(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUserSecrets", reflect.TypeOf((*MockStore)(nil).ListUserSecrets), ctx, userID) -} - -// ListWorkspaceAgentPortShares mocks base method. -func (m *MockStore) ListWorkspaceAgentPortShares(ctx context.Context, workspaceID uuid.UUID) ([]database.WorkspaceAgentPortShare, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListWorkspaceAgentPortShares", ctx, workspaceID) - ret0, _ := ret[0].([]database.WorkspaceAgentPortShare) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListWorkspaceAgentPortShares indicates an expected call of ListWorkspaceAgentPortShares. -func (mr *MockStoreMockRecorder) ListWorkspaceAgentPortShares(ctx, workspaceID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListWorkspaceAgentPortShares", reflect.TypeOf((*MockStore)(nil).ListWorkspaceAgentPortShares), ctx, workspaceID) -} - -// MarkAllInboxNotificationsAsRead mocks base method. -func (m *MockStore) MarkAllInboxNotificationsAsRead(ctx context.Context, arg database.MarkAllInboxNotificationsAsReadParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "MarkAllInboxNotificationsAsRead", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// MarkAllInboxNotificationsAsRead indicates an expected call of MarkAllInboxNotificationsAsRead. -func (mr *MockStoreMockRecorder) MarkAllInboxNotificationsAsRead(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MarkAllInboxNotificationsAsRead", reflect.TypeOf((*MockStore)(nil).MarkAllInboxNotificationsAsRead), ctx, arg) -} - -// OIDCClaimFieldValues mocks base method. -func (m *MockStore) OIDCClaimFieldValues(ctx context.Context, arg database.OIDCClaimFieldValuesParams) ([]string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "OIDCClaimFieldValues", ctx, arg) - ret0, _ := ret[0].([]string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// OIDCClaimFieldValues indicates an expected call of OIDCClaimFieldValues. -func (mr *MockStoreMockRecorder) OIDCClaimFieldValues(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OIDCClaimFieldValues", reflect.TypeOf((*MockStore)(nil).OIDCClaimFieldValues), ctx, arg) -} - -// OIDCClaimFields mocks base method. -func (m *MockStore) OIDCClaimFields(ctx context.Context, organizationID uuid.UUID) ([]string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "OIDCClaimFields", ctx, organizationID) - ret0, _ := ret[0].([]string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// OIDCClaimFields indicates an expected call of OIDCClaimFields. -func (mr *MockStoreMockRecorder) OIDCClaimFields(ctx, organizationID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OIDCClaimFields", reflect.TypeOf((*MockStore)(nil).OIDCClaimFields), ctx, organizationID) -} - -// OrganizationMembers mocks base method. -func (m *MockStore) OrganizationMembers(ctx context.Context, arg database.OrganizationMembersParams) ([]database.OrganizationMembersRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "OrganizationMembers", ctx, arg) - ret0, _ := ret[0].([]database.OrganizationMembersRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// OrganizationMembers indicates an expected call of OrganizationMembers. -func (mr *MockStoreMockRecorder) OrganizationMembers(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OrganizationMembers", reflect.TypeOf((*MockStore)(nil).OrganizationMembers), ctx, arg) -} - -// PGLocks mocks base method. -func (m *MockStore) PGLocks(ctx context.Context) (database.PGLocks, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PGLocks", ctx) - ret0, _ := ret[0].(database.PGLocks) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// PGLocks indicates an expected call of PGLocks. -func (mr *MockStoreMockRecorder) PGLocks(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PGLocks", reflect.TypeOf((*MockStore)(nil).PGLocks), ctx) -} - -// PaginatedOrganizationMembers mocks base method. -func (m *MockStore) PaginatedOrganizationMembers(ctx context.Context, arg database.PaginatedOrganizationMembersParams) ([]database.PaginatedOrganizationMembersRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PaginatedOrganizationMembers", ctx, arg) - ret0, _ := ret[0].([]database.PaginatedOrganizationMembersRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// PaginatedOrganizationMembers indicates an expected call of PaginatedOrganizationMembers. -func (mr *MockStoreMockRecorder) PaginatedOrganizationMembers(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PaginatedOrganizationMembers", reflect.TypeOf((*MockStore)(nil).PaginatedOrganizationMembers), ctx, arg) -} - -// Ping mocks base method. -func (m *MockStore) Ping(ctx context.Context) (time.Duration, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Ping", ctx) - ret0, _ := ret[0].(time.Duration) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Ping indicates an expected call of Ping. -func (mr *MockStoreMockRecorder) Ping(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Ping", reflect.TypeOf((*MockStore)(nil).Ping), ctx) -} - -// ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate mocks base method. -func (m *MockStore) ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate(ctx context.Context, templateID uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate", ctx, templateID) - ret0, _ := ret[0].(error) - return ret0 -} - -// ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate indicates an expected call of ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate. -func (mr *MockStoreMockRecorder) ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate(ctx, templateID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate", reflect.TypeOf((*MockStore)(nil).ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate), ctx, templateID) -} - -// RegisterWorkspaceProxy mocks base method. -func (m *MockStore) RegisterWorkspaceProxy(ctx context.Context, arg database.RegisterWorkspaceProxyParams) (database.WorkspaceProxy, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RegisterWorkspaceProxy", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceProxy) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// RegisterWorkspaceProxy indicates an expected call of RegisterWorkspaceProxy. -func (mr *MockStoreMockRecorder) RegisterWorkspaceProxy(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterWorkspaceProxy", reflect.TypeOf((*MockStore)(nil).RegisterWorkspaceProxy), ctx, arg) -} - -// RemoveUserFromAllGroups mocks base method. -func (m *MockStore) RemoveUserFromAllGroups(ctx context.Context, userID uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemoveUserFromAllGroups", ctx, userID) - ret0, _ := ret[0].(error) - return ret0 -} - -// RemoveUserFromAllGroups indicates an expected call of RemoveUserFromAllGroups. -func (mr *MockStoreMockRecorder) RemoveUserFromAllGroups(ctx, userID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveUserFromAllGroups", reflect.TypeOf((*MockStore)(nil).RemoveUserFromAllGroups), ctx, userID) -} - -// RemoveUserFromGroups mocks base method. -func (m *MockStore) RemoveUserFromGroups(ctx context.Context, arg database.RemoveUserFromGroupsParams) ([]uuid.UUID, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemoveUserFromGroups", ctx, arg) - ret0, _ := ret[0].([]uuid.UUID) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// RemoveUserFromGroups indicates an expected call of RemoveUserFromGroups. -func (mr *MockStoreMockRecorder) RemoveUserFromGroups(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveUserFromGroups", reflect.TypeOf((*MockStore)(nil).RemoveUserFromGroups), ctx, arg) -} - -// RevokeDBCryptKey mocks base method. -func (m *MockStore) RevokeDBCryptKey(ctx context.Context, activeKeyDigest string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RevokeDBCryptKey", ctx, activeKeyDigest) - ret0, _ := ret[0].(error) - return ret0 -} - -// RevokeDBCryptKey indicates an expected call of RevokeDBCryptKey. -func (mr *MockStoreMockRecorder) RevokeDBCryptKey(ctx, activeKeyDigest any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RevokeDBCryptKey", reflect.TypeOf((*MockStore)(nil).RevokeDBCryptKey), ctx, activeKeyDigest) -} - -// SelectUsageEventsForPublishing mocks base method. -func (m *MockStore) SelectUsageEventsForPublishing(ctx context.Context, now time.Time) ([]database.UsageEvent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SelectUsageEventsForPublishing", ctx, now) - ret0, _ := ret[0].([]database.UsageEvent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// SelectUsageEventsForPublishing indicates an expected call of SelectUsageEventsForPublishing. -func (mr *MockStoreMockRecorder) SelectUsageEventsForPublishing(ctx, now any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SelectUsageEventsForPublishing", reflect.TypeOf((*MockStore)(nil).SelectUsageEventsForPublishing), ctx, now) -} - -// TryAcquireLock mocks base method. -func (m *MockStore) TryAcquireLock(ctx context.Context, pgTryAdvisoryXactLock int64) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "TryAcquireLock", ctx, pgTryAdvisoryXactLock) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// TryAcquireLock indicates an expected call of TryAcquireLock. -func (mr *MockStoreMockRecorder) TryAcquireLock(ctx, pgTryAdvisoryXactLock any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TryAcquireLock", reflect.TypeOf((*MockStore)(nil).TryAcquireLock), ctx, pgTryAdvisoryXactLock) -} - -// UnarchiveTemplateVersion mocks base method. -func (m *MockStore) UnarchiveTemplateVersion(ctx context.Context, arg database.UnarchiveTemplateVersionParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UnarchiveTemplateVersion", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UnarchiveTemplateVersion indicates an expected call of UnarchiveTemplateVersion. -func (mr *MockStoreMockRecorder) UnarchiveTemplateVersion(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnarchiveTemplateVersion", reflect.TypeOf((*MockStore)(nil).UnarchiveTemplateVersion), ctx, arg) -} - -// UnfavoriteWorkspace mocks base method. -func (m *MockStore) UnfavoriteWorkspace(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UnfavoriteWorkspace", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// UnfavoriteWorkspace indicates an expected call of UnfavoriteWorkspace. -func (mr *MockStoreMockRecorder) UnfavoriteWorkspace(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnfavoriteWorkspace", reflect.TypeOf((*MockStore)(nil).UnfavoriteWorkspace), ctx, id) -} - -// UpdateAIBridgeInterceptionEnded mocks base method. -func (m *MockStore) UpdateAIBridgeInterceptionEnded(ctx context.Context, arg database.UpdateAIBridgeInterceptionEndedParams) (database.AIBridgeInterception, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateAIBridgeInterceptionEnded", ctx, arg) - ret0, _ := ret[0].(database.AIBridgeInterception) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateAIBridgeInterceptionEnded indicates an expected call of UpdateAIBridgeInterceptionEnded. -func (mr *MockStoreMockRecorder) UpdateAIBridgeInterceptionEnded(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAIBridgeInterceptionEnded", reflect.TypeOf((*MockStore)(nil).UpdateAIBridgeInterceptionEnded), ctx, arg) -} - -// UpdateAPIKeyByID mocks base method. -func (m *MockStore) UpdateAPIKeyByID(ctx context.Context, arg database.UpdateAPIKeyByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateAPIKeyByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateAPIKeyByID indicates an expected call of UpdateAPIKeyByID. -func (mr *MockStoreMockRecorder) UpdateAPIKeyByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAPIKeyByID", reflect.TypeOf((*MockStore)(nil).UpdateAPIKeyByID), ctx, arg) -} - -// UpdateCryptoKeyDeletesAt mocks base method. -func (m *MockStore) UpdateCryptoKeyDeletesAt(ctx context.Context, arg database.UpdateCryptoKeyDeletesAtParams) (database.CryptoKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateCryptoKeyDeletesAt", ctx, arg) - ret0, _ := ret[0].(database.CryptoKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateCryptoKeyDeletesAt indicates an expected call of UpdateCryptoKeyDeletesAt. -func (mr *MockStoreMockRecorder) UpdateCryptoKeyDeletesAt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCryptoKeyDeletesAt", reflect.TypeOf((*MockStore)(nil).UpdateCryptoKeyDeletesAt), ctx, arg) -} - -// UpdateCustomRole mocks base method. -func (m *MockStore) UpdateCustomRole(ctx context.Context, arg database.UpdateCustomRoleParams) (database.CustomRole, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateCustomRole", ctx, arg) - ret0, _ := ret[0].(database.CustomRole) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateCustomRole indicates an expected call of UpdateCustomRole. -func (mr *MockStoreMockRecorder) UpdateCustomRole(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCustomRole", reflect.TypeOf((*MockStore)(nil).UpdateCustomRole), ctx, arg) -} - -// UpdateExternalAuthLink mocks base method. -func (m *MockStore) UpdateExternalAuthLink(ctx context.Context, arg database.UpdateExternalAuthLinkParams) (database.ExternalAuthLink, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateExternalAuthLink", ctx, arg) - ret0, _ := ret[0].(database.ExternalAuthLink) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateExternalAuthLink indicates an expected call of UpdateExternalAuthLink. -func (mr *MockStoreMockRecorder) UpdateExternalAuthLink(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateExternalAuthLink", reflect.TypeOf((*MockStore)(nil).UpdateExternalAuthLink), ctx, arg) -} - -// UpdateExternalAuthLinkRefreshToken mocks base method. -func (m *MockStore) UpdateExternalAuthLinkRefreshToken(ctx context.Context, arg database.UpdateExternalAuthLinkRefreshTokenParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateExternalAuthLinkRefreshToken", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateExternalAuthLinkRefreshToken indicates an expected call of UpdateExternalAuthLinkRefreshToken. -func (mr *MockStoreMockRecorder) UpdateExternalAuthLinkRefreshToken(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateExternalAuthLinkRefreshToken", reflect.TypeOf((*MockStore)(nil).UpdateExternalAuthLinkRefreshToken), ctx, arg) -} - -// UpdateGitSSHKey mocks base method. -func (m *MockStore) UpdateGitSSHKey(ctx context.Context, arg database.UpdateGitSSHKeyParams) (database.GitSSHKey, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateGitSSHKey", ctx, arg) - ret0, _ := ret[0].(database.GitSSHKey) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateGitSSHKey indicates an expected call of UpdateGitSSHKey. -func (mr *MockStoreMockRecorder) UpdateGitSSHKey(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateGitSSHKey", reflect.TypeOf((*MockStore)(nil).UpdateGitSSHKey), ctx, arg) -} - -// UpdateGroupByID mocks base method. -func (m *MockStore) UpdateGroupByID(ctx context.Context, arg database.UpdateGroupByIDParams) (database.Group, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateGroupByID", ctx, arg) - ret0, _ := ret[0].(database.Group) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateGroupByID indicates an expected call of UpdateGroupByID. -func (mr *MockStoreMockRecorder) UpdateGroupByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateGroupByID", reflect.TypeOf((*MockStore)(nil).UpdateGroupByID), ctx, arg) -} - -// UpdateInactiveUsersToDormant mocks base method. -func (m *MockStore) UpdateInactiveUsersToDormant(ctx context.Context, arg database.UpdateInactiveUsersToDormantParams) ([]database.UpdateInactiveUsersToDormantRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateInactiveUsersToDormant", ctx, arg) - ret0, _ := ret[0].([]database.UpdateInactiveUsersToDormantRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateInactiveUsersToDormant indicates an expected call of UpdateInactiveUsersToDormant. -func (mr *MockStoreMockRecorder) UpdateInactiveUsersToDormant(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateInactiveUsersToDormant", reflect.TypeOf((*MockStore)(nil).UpdateInactiveUsersToDormant), ctx, arg) -} - -// UpdateInboxNotificationReadStatus mocks base method. -func (m *MockStore) UpdateInboxNotificationReadStatus(ctx context.Context, arg database.UpdateInboxNotificationReadStatusParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateInboxNotificationReadStatus", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateInboxNotificationReadStatus indicates an expected call of UpdateInboxNotificationReadStatus. -func (mr *MockStoreMockRecorder) UpdateInboxNotificationReadStatus(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateInboxNotificationReadStatus", reflect.TypeOf((*MockStore)(nil).UpdateInboxNotificationReadStatus), ctx, arg) -} - -// UpdateMemberRoles mocks base method. -func (m *MockStore) UpdateMemberRoles(ctx context.Context, arg database.UpdateMemberRolesParams) (database.OrganizationMember, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateMemberRoles", ctx, arg) - ret0, _ := ret[0].(database.OrganizationMember) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateMemberRoles indicates an expected call of UpdateMemberRoles. -func (mr *MockStoreMockRecorder) UpdateMemberRoles(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMemberRoles", reflect.TypeOf((*MockStore)(nil).UpdateMemberRoles), ctx, arg) -} - -// UpdateMemoryResourceMonitor mocks base method. -func (m *MockStore) UpdateMemoryResourceMonitor(ctx context.Context, arg database.UpdateMemoryResourceMonitorParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateMemoryResourceMonitor", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateMemoryResourceMonitor indicates an expected call of UpdateMemoryResourceMonitor. -func (mr *MockStoreMockRecorder) UpdateMemoryResourceMonitor(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMemoryResourceMonitor", reflect.TypeOf((*MockStore)(nil).UpdateMemoryResourceMonitor), ctx, arg) -} - -// UpdateNotificationTemplateMethodByID mocks base method. -func (m *MockStore) UpdateNotificationTemplateMethodByID(ctx context.Context, arg database.UpdateNotificationTemplateMethodByIDParams) (database.NotificationTemplate, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateNotificationTemplateMethodByID", ctx, arg) - ret0, _ := ret[0].(database.NotificationTemplate) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateNotificationTemplateMethodByID indicates an expected call of UpdateNotificationTemplateMethodByID. -func (mr *MockStoreMockRecorder) UpdateNotificationTemplateMethodByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNotificationTemplateMethodByID", reflect.TypeOf((*MockStore)(nil).UpdateNotificationTemplateMethodByID), ctx, arg) -} - -// UpdateOAuth2ProviderAppByClientID mocks base method. -func (m *MockStore) UpdateOAuth2ProviderAppByClientID(ctx context.Context, arg database.UpdateOAuth2ProviderAppByClientIDParams) (database.OAuth2ProviderApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateOAuth2ProviderAppByClientID", ctx, arg) - ret0, _ := ret[0].(database.OAuth2ProviderApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateOAuth2ProviderAppByClientID indicates an expected call of UpdateOAuth2ProviderAppByClientID. -func (mr *MockStoreMockRecorder) UpdateOAuth2ProviderAppByClientID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOAuth2ProviderAppByClientID", reflect.TypeOf((*MockStore)(nil).UpdateOAuth2ProviderAppByClientID), ctx, arg) -} - -// UpdateOAuth2ProviderAppByID mocks base method. -func (m *MockStore) UpdateOAuth2ProviderAppByID(ctx context.Context, arg database.UpdateOAuth2ProviderAppByIDParams) (database.OAuth2ProviderApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateOAuth2ProviderAppByID", ctx, arg) - ret0, _ := ret[0].(database.OAuth2ProviderApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateOAuth2ProviderAppByID indicates an expected call of UpdateOAuth2ProviderAppByID. -func (mr *MockStoreMockRecorder) UpdateOAuth2ProviderAppByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOAuth2ProviderAppByID", reflect.TypeOf((*MockStore)(nil).UpdateOAuth2ProviderAppByID), ctx, arg) -} - -// UpdateOAuth2ProviderAppSecretByID mocks base method. -func (m *MockStore) UpdateOAuth2ProviderAppSecretByID(ctx context.Context, arg database.UpdateOAuth2ProviderAppSecretByIDParams) (database.OAuth2ProviderAppSecret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateOAuth2ProviderAppSecretByID", ctx, arg) - ret0, _ := ret[0].(database.OAuth2ProviderAppSecret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateOAuth2ProviderAppSecretByID indicates an expected call of UpdateOAuth2ProviderAppSecretByID. -func (mr *MockStoreMockRecorder) UpdateOAuth2ProviderAppSecretByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOAuth2ProviderAppSecretByID", reflect.TypeOf((*MockStore)(nil).UpdateOAuth2ProviderAppSecretByID), ctx, arg) -} - -// UpdateOrganization mocks base method. -func (m *MockStore) UpdateOrganization(ctx context.Context, arg database.UpdateOrganizationParams) (database.Organization, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateOrganization", ctx, arg) - ret0, _ := ret[0].(database.Organization) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateOrganization indicates an expected call of UpdateOrganization. -func (mr *MockStoreMockRecorder) UpdateOrganization(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOrganization", reflect.TypeOf((*MockStore)(nil).UpdateOrganization), ctx, arg) -} - -// UpdateOrganizationDeletedByID mocks base method. -func (m *MockStore) UpdateOrganizationDeletedByID(ctx context.Context, arg database.UpdateOrganizationDeletedByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateOrganizationDeletedByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateOrganizationDeletedByID indicates an expected call of UpdateOrganizationDeletedByID. -func (mr *MockStoreMockRecorder) UpdateOrganizationDeletedByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOrganizationDeletedByID", reflect.TypeOf((*MockStore)(nil).UpdateOrganizationDeletedByID), ctx, arg) -} - -// UpdatePrebuildProvisionerJobWithCancel mocks base method. -func (m *MockStore) UpdatePrebuildProvisionerJobWithCancel(ctx context.Context, arg database.UpdatePrebuildProvisionerJobWithCancelParams) ([]database.UpdatePrebuildProvisionerJobWithCancelRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdatePrebuildProvisionerJobWithCancel", ctx, arg) - ret0, _ := ret[0].([]database.UpdatePrebuildProvisionerJobWithCancelRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdatePrebuildProvisionerJobWithCancel indicates an expected call of UpdatePrebuildProvisionerJobWithCancel. -func (mr *MockStoreMockRecorder) UpdatePrebuildProvisionerJobWithCancel(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePrebuildProvisionerJobWithCancel", reflect.TypeOf((*MockStore)(nil).UpdatePrebuildProvisionerJobWithCancel), ctx, arg) -} - -// UpdatePresetPrebuildStatus mocks base method. -func (m *MockStore) UpdatePresetPrebuildStatus(ctx context.Context, arg database.UpdatePresetPrebuildStatusParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdatePresetPrebuildStatus", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdatePresetPrebuildStatus indicates an expected call of UpdatePresetPrebuildStatus. -func (mr *MockStoreMockRecorder) UpdatePresetPrebuildStatus(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePresetPrebuildStatus", reflect.TypeOf((*MockStore)(nil).UpdatePresetPrebuildStatus), ctx, arg) -} - -// UpdatePresetsLastInvalidatedAt mocks base method. -func (m *MockStore) UpdatePresetsLastInvalidatedAt(ctx context.Context, arg database.UpdatePresetsLastInvalidatedAtParams) ([]database.UpdatePresetsLastInvalidatedAtRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdatePresetsLastInvalidatedAt", ctx, arg) - ret0, _ := ret[0].([]database.UpdatePresetsLastInvalidatedAtRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdatePresetsLastInvalidatedAt indicates an expected call of UpdatePresetsLastInvalidatedAt. -func (mr *MockStoreMockRecorder) UpdatePresetsLastInvalidatedAt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePresetsLastInvalidatedAt", reflect.TypeOf((*MockStore)(nil).UpdatePresetsLastInvalidatedAt), ctx, arg) -} - -// UpdateProvisionerDaemonLastSeenAt mocks base method. -func (m *MockStore) UpdateProvisionerDaemonLastSeenAt(ctx context.Context, arg database.UpdateProvisionerDaemonLastSeenAtParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateProvisionerDaemonLastSeenAt", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateProvisionerDaemonLastSeenAt indicates an expected call of UpdateProvisionerDaemonLastSeenAt. -func (mr *MockStoreMockRecorder) UpdateProvisionerDaemonLastSeenAt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerDaemonLastSeenAt", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerDaemonLastSeenAt), ctx, arg) -} - -// UpdateProvisionerJobByID mocks base method. -func (m *MockStore) UpdateProvisionerJobByID(ctx context.Context, arg database.UpdateProvisionerJobByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateProvisionerJobByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateProvisionerJobByID indicates an expected call of UpdateProvisionerJobByID. -func (mr *MockStoreMockRecorder) UpdateProvisionerJobByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobByID", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobByID), ctx, arg) -} - -// UpdateProvisionerJobLogsLength mocks base method. -func (m *MockStore) UpdateProvisionerJobLogsLength(ctx context.Context, arg database.UpdateProvisionerJobLogsLengthParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateProvisionerJobLogsLength", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateProvisionerJobLogsLength indicates an expected call of UpdateProvisionerJobLogsLength. -func (mr *MockStoreMockRecorder) UpdateProvisionerJobLogsLength(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobLogsLength", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobLogsLength), ctx, arg) -} - -// UpdateProvisionerJobLogsOverflowed mocks base method. -func (m *MockStore) UpdateProvisionerJobLogsOverflowed(ctx context.Context, arg database.UpdateProvisionerJobLogsOverflowedParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateProvisionerJobLogsOverflowed", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateProvisionerJobLogsOverflowed indicates an expected call of UpdateProvisionerJobLogsOverflowed. -func (mr *MockStoreMockRecorder) UpdateProvisionerJobLogsOverflowed(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobLogsOverflowed", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobLogsOverflowed), ctx, arg) -} - -// UpdateProvisionerJobWithCancelByID mocks base method. -func (m *MockStore) UpdateProvisionerJobWithCancelByID(ctx context.Context, arg database.UpdateProvisionerJobWithCancelByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateProvisionerJobWithCancelByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateProvisionerJobWithCancelByID indicates an expected call of UpdateProvisionerJobWithCancelByID. -func (mr *MockStoreMockRecorder) UpdateProvisionerJobWithCancelByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobWithCancelByID", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobWithCancelByID), ctx, arg) -} - -// UpdateProvisionerJobWithCompleteByID mocks base method. -func (m *MockStore) UpdateProvisionerJobWithCompleteByID(ctx context.Context, arg database.UpdateProvisionerJobWithCompleteByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateProvisionerJobWithCompleteByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateProvisionerJobWithCompleteByID indicates an expected call of UpdateProvisionerJobWithCompleteByID. -func (mr *MockStoreMockRecorder) UpdateProvisionerJobWithCompleteByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobWithCompleteByID", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobWithCompleteByID), ctx, arg) -} - -// UpdateProvisionerJobWithCompleteWithStartedAtByID mocks base method. -func (m *MockStore) UpdateProvisionerJobWithCompleteWithStartedAtByID(ctx context.Context, arg database.UpdateProvisionerJobWithCompleteWithStartedAtByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateProvisionerJobWithCompleteWithStartedAtByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateProvisionerJobWithCompleteWithStartedAtByID indicates an expected call of UpdateProvisionerJobWithCompleteWithStartedAtByID. -func (mr *MockStoreMockRecorder) UpdateProvisionerJobWithCompleteWithStartedAtByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProvisionerJobWithCompleteWithStartedAtByID", reflect.TypeOf((*MockStore)(nil).UpdateProvisionerJobWithCompleteWithStartedAtByID), ctx, arg) -} - -// UpdateReplica mocks base method. -func (m *MockStore) UpdateReplica(ctx context.Context, arg database.UpdateReplicaParams) (database.Replica, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateReplica", ctx, arg) - ret0, _ := ret[0].(database.Replica) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateReplica indicates an expected call of UpdateReplica. -func (mr *MockStoreMockRecorder) UpdateReplica(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateReplica", reflect.TypeOf((*MockStore)(nil).UpdateReplica), ctx, arg) -} - -// UpdateTailnetPeerStatusByCoordinator mocks base method. -func (m *MockStore) UpdateTailnetPeerStatusByCoordinator(ctx context.Context, arg database.UpdateTailnetPeerStatusByCoordinatorParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTailnetPeerStatusByCoordinator", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTailnetPeerStatusByCoordinator indicates an expected call of UpdateTailnetPeerStatusByCoordinator. -func (mr *MockStoreMockRecorder) UpdateTailnetPeerStatusByCoordinator(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTailnetPeerStatusByCoordinator", reflect.TypeOf((*MockStore)(nil).UpdateTailnetPeerStatusByCoordinator), ctx, arg) -} - -// UpdateTaskPrompt mocks base method. -func (m *MockStore) UpdateTaskPrompt(ctx context.Context, arg database.UpdateTaskPromptParams) (database.TaskTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTaskPrompt", ctx, arg) - ret0, _ := ret[0].(database.TaskTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateTaskPrompt indicates an expected call of UpdateTaskPrompt. -func (mr *MockStoreMockRecorder) UpdateTaskPrompt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTaskPrompt", reflect.TypeOf((*MockStore)(nil).UpdateTaskPrompt), ctx, arg) -} - -// UpdateTaskWorkspaceID mocks base method. -func (m *MockStore) UpdateTaskWorkspaceID(ctx context.Context, arg database.UpdateTaskWorkspaceIDParams) (database.TaskTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTaskWorkspaceID", ctx, arg) - ret0, _ := ret[0].(database.TaskTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateTaskWorkspaceID indicates an expected call of UpdateTaskWorkspaceID. -func (mr *MockStoreMockRecorder) UpdateTaskWorkspaceID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTaskWorkspaceID", reflect.TypeOf((*MockStore)(nil).UpdateTaskWorkspaceID), ctx, arg) -} - -// UpdateTemplateACLByID mocks base method. -func (m *MockStore) UpdateTemplateACLByID(ctx context.Context, arg database.UpdateTemplateACLByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTemplateACLByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTemplateACLByID indicates an expected call of UpdateTemplateACLByID. -func (mr *MockStoreMockRecorder) UpdateTemplateACLByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateACLByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateACLByID), ctx, arg) -} - -// UpdateTemplateAccessControlByID mocks base method. -func (m *MockStore) UpdateTemplateAccessControlByID(ctx context.Context, arg database.UpdateTemplateAccessControlByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTemplateAccessControlByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTemplateAccessControlByID indicates an expected call of UpdateTemplateAccessControlByID. -func (mr *MockStoreMockRecorder) UpdateTemplateAccessControlByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateAccessControlByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateAccessControlByID), ctx, arg) -} - -// UpdateTemplateActiveVersionByID mocks base method. -func (m *MockStore) UpdateTemplateActiveVersionByID(ctx context.Context, arg database.UpdateTemplateActiveVersionByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTemplateActiveVersionByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTemplateActiveVersionByID indicates an expected call of UpdateTemplateActiveVersionByID. -func (mr *MockStoreMockRecorder) UpdateTemplateActiveVersionByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateActiveVersionByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateActiveVersionByID), ctx, arg) -} - -// UpdateTemplateDeletedByID mocks base method. -func (m *MockStore) UpdateTemplateDeletedByID(ctx context.Context, arg database.UpdateTemplateDeletedByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTemplateDeletedByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTemplateDeletedByID indicates an expected call of UpdateTemplateDeletedByID. -func (mr *MockStoreMockRecorder) UpdateTemplateDeletedByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateDeletedByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateDeletedByID), ctx, arg) -} - -// UpdateTemplateMetaByID mocks base method. -func (m *MockStore) UpdateTemplateMetaByID(ctx context.Context, arg database.UpdateTemplateMetaByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTemplateMetaByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTemplateMetaByID indicates an expected call of UpdateTemplateMetaByID. -func (mr *MockStoreMockRecorder) UpdateTemplateMetaByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateMetaByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateMetaByID), ctx, arg) -} - -// UpdateTemplateScheduleByID mocks base method. -func (m *MockStore) UpdateTemplateScheduleByID(ctx context.Context, arg database.UpdateTemplateScheduleByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTemplateScheduleByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTemplateScheduleByID indicates an expected call of UpdateTemplateScheduleByID. -func (mr *MockStoreMockRecorder) UpdateTemplateScheduleByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateScheduleByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateScheduleByID), ctx, arg) -} - -// UpdateTemplateVersionByID mocks base method. -func (m *MockStore) UpdateTemplateVersionByID(ctx context.Context, arg database.UpdateTemplateVersionByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTemplateVersionByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTemplateVersionByID indicates an expected call of UpdateTemplateVersionByID. -func (mr *MockStoreMockRecorder) UpdateTemplateVersionByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateVersionByID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateVersionByID), ctx, arg) -} - -// UpdateTemplateVersionDescriptionByJobID mocks base method. -func (m *MockStore) UpdateTemplateVersionDescriptionByJobID(ctx context.Context, arg database.UpdateTemplateVersionDescriptionByJobIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTemplateVersionDescriptionByJobID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTemplateVersionDescriptionByJobID indicates an expected call of UpdateTemplateVersionDescriptionByJobID. -func (mr *MockStoreMockRecorder) UpdateTemplateVersionDescriptionByJobID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateVersionDescriptionByJobID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateVersionDescriptionByJobID), ctx, arg) -} - -// UpdateTemplateVersionExternalAuthProvidersByJobID mocks base method. -func (m *MockStore) UpdateTemplateVersionExternalAuthProvidersByJobID(ctx context.Context, arg database.UpdateTemplateVersionExternalAuthProvidersByJobIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTemplateVersionExternalAuthProvidersByJobID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTemplateVersionExternalAuthProvidersByJobID indicates an expected call of UpdateTemplateVersionExternalAuthProvidersByJobID. -func (mr *MockStoreMockRecorder) UpdateTemplateVersionExternalAuthProvidersByJobID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateVersionExternalAuthProvidersByJobID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateVersionExternalAuthProvidersByJobID), ctx, arg) -} - -// UpdateTemplateVersionFlagsByJobID mocks base method. -func (m *MockStore) UpdateTemplateVersionFlagsByJobID(ctx context.Context, arg database.UpdateTemplateVersionFlagsByJobIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTemplateVersionFlagsByJobID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTemplateVersionFlagsByJobID indicates an expected call of UpdateTemplateVersionFlagsByJobID. -func (mr *MockStoreMockRecorder) UpdateTemplateVersionFlagsByJobID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateVersionFlagsByJobID", reflect.TypeOf((*MockStore)(nil).UpdateTemplateVersionFlagsByJobID), ctx, arg) -} - -// UpdateTemplateWorkspacesLastUsedAt mocks base method. -func (m *MockStore) UpdateTemplateWorkspacesLastUsedAt(ctx context.Context, arg database.UpdateTemplateWorkspacesLastUsedAtParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTemplateWorkspacesLastUsedAt", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTemplateWorkspacesLastUsedAt indicates an expected call of UpdateTemplateWorkspacesLastUsedAt. -func (mr *MockStoreMockRecorder) UpdateTemplateWorkspacesLastUsedAt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplateWorkspacesLastUsedAt", reflect.TypeOf((*MockStore)(nil).UpdateTemplateWorkspacesLastUsedAt), ctx, arg) -} - -// UpdateUsageEventsPostPublish mocks base method. -func (m *MockStore) UpdateUsageEventsPostPublish(ctx context.Context, arg database.UpdateUsageEventsPostPublishParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUsageEventsPostPublish", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateUsageEventsPostPublish indicates an expected call of UpdateUsageEventsPostPublish. -func (mr *MockStoreMockRecorder) UpdateUsageEventsPostPublish(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUsageEventsPostPublish", reflect.TypeOf((*MockStore)(nil).UpdateUsageEventsPostPublish), ctx, arg) -} - -// UpdateUserDeletedByID mocks base method. -func (m *MockStore) UpdateUserDeletedByID(ctx context.Context, id uuid.UUID) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserDeletedByID", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateUserDeletedByID indicates an expected call of UpdateUserDeletedByID. -func (mr *MockStoreMockRecorder) UpdateUserDeletedByID(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserDeletedByID", reflect.TypeOf((*MockStore)(nil).UpdateUserDeletedByID), ctx, id) -} - -// UpdateUserGithubComUserID mocks base method. -func (m *MockStore) UpdateUserGithubComUserID(ctx context.Context, arg database.UpdateUserGithubComUserIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserGithubComUserID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateUserGithubComUserID indicates an expected call of UpdateUserGithubComUserID. -func (mr *MockStoreMockRecorder) UpdateUserGithubComUserID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserGithubComUserID", reflect.TypeOf((*MockStore)(nil).UpdateUserGithubComUserID), ctx, arg) -} - -// UpdateUserHashedOneTimePasscode mocks base method. -func (m *MockStore) UpdateUserHashedOneTimePasscode(ctx context.Context, arg database.UpdateUserHashedOneTimePasscodeParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserHashedOneTimePasscode", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateUserHashedOneTimePasscode indicates an expected call of UpdateUserHashedOneTimePasscode. -func (mr *MockStoreMockRecorder) UpdateUserHashedOneTimePasscode(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserHashedOneTimePasscode", reflect.TypeOf((*MockStore)(nil).UpdateUserHashedOneTimePasscode), ctx, arg) -} - -// UpdateUserHashedPassword mocks base method. -func (m *MockStore) UpdateUserHashedPassword(ctx context.Context, arg database.UpdateUserHashedPasswordParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserHashedPassword", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateUserHashedPassword indicates an expected call of UpdateUserHashedPassword. -func (mr *MockStoreMockRecorder) UpdateUserHashedPassword(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserHashedPassword", reflect.TypeOf((*MockStore)(nil).UpdateUserHashedPassword), ctx, arg) -} - -// UpdateUserLastSeenAt mocks base method. -func (m *MockStore) UpdateUserLastSeenAt(ctx context.Context, arg database.UpdateUserLastSeenAtParams) (database.User, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserLastSeenAt", ctx, arg) - ret0, _ := ret[0].(database.User) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserLastSeenAt indicates an expected call of UpdateUserLastSeenAt. -func (mr *MockStoreMockRecorder) UpdateUserLastSeenAt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserLastSeenAt", reflect.TypeOf((*MockStore)(nil).UpdateUserLastSeenAt), ctx, arg) -} - -// UpdateUserLink mocks base method. -func (m *MockStore) UpdateUserLink(ctx context.Context, arg database.UpdateUserLinkParams) (database.UserLink, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserLink", ctx, arg) - ret0, _ := ret[0].(database.UserLink) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserLink indicates an expected call of UpdateUserLink. -func (mr *MockStoreMockRecorder) UpdateUserLink(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserLink", reflect.TypeOf((*MockStore)(nil).UpdateUserLink), ctx, arg) -} - -// UpdateUserLinkedID mocks base method. -func (m *MockStore) UpdateUserLinkedID(ctx context.Context, arg database.UpdateUserLinkedIDParams) (database.UserLink, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserLinkedID", ctx, arg) - ret0, _ := ret[0].(database.UserLink) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserLinkedID indicates an expected call of UpdateUserLinkedID. -func (mr *MockStoreMockRecorder) UpdateUserLinkedID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserLinkedID", reflect.TypeOf((*MockStore)(nil).UpdateUserLinkedID), ctx, arg) -} - -// UpdateUserLoginType mocks base method. -func (m *MockStore) UpdateUserLoginType(ctx context.Context, arg database.UpdateUserLoginTypeParams) (database.User, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserLoginType", ctx, arg) - ret0, _ := ret[0].(database.User) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserLoginType indicates an expected call of UpdateUserLoginType. -func (mr *MockStoreMockRecorder) UpdateUserLoginType(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserLoginType", reflect.TypeOf((*MockStore)(nil).UpdateUserLoginType), ctx, arg) -} - -// UpdateUserNotificationPreferences mocks base method. -func (m *MockStore) UpdateUserNotificationPreferences(ctx context.Context, arg database.UpdateUserNotificationPreferencesParams) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserNotificationPreferences", ctx, arg) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserNotificationPreferences indicates an expected call of UpdateUserNotificationPreferences. -func (mr *MockStoreMockRecorder) UpdateUserNotificationPreferences(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserNotificationPreferences", reflect.TypeOf((*MockStore)(nil).UpdateUserNotificationPreferences), ctx, arg) -} - -// UpdateUserProfile mocks base method. -func (m *MockStore) UpdateUserProfile(ctx context.Context, arg database.UpdateUserProfileParams) (database.User, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserProfile", ctx, arg) - ret0, _ := ret[0].(database.User) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserProfile indicates an expected call of UpdateUserProfile. -func (mr *MockStoreMockRecorder) UpdateUserProfile(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserProfile", reflect.TypeOf((*MockStore)(nil).UpdateUserProfile), ctx, arg) -} - -// UpdateUserQuietHoursSchedule mocks base method. -func (m *MockStore) UpdateUserQuietHoursSchedule(ctx context.Context, arg database.UpdateUserQuietHoursScheduleParams) (database.User, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserQuietHoursSchedule", ctx, arg) - ret0, _ := ret[0].(database.User) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserQuietHoursSchedule indicates an expected call of UpdateUserQuietHoursSchedule. -func (mr *MockStoreMockRecorder) UpdateUserQuietHoursSchedule(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserQuietHoursSchedule", reflect.TypeOf((*MockStore)(nil).UpdateUserQuietHoursSchedule), ctx, arg) -} - -// UpdateUserRoles mocks base method. -func (m *MockStore) UpdateUserRoles(ctx context.Context, arg database.UpdateUserRolesParams) (database.User, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserRoles", ctx, arg) - ret0, _ := ret[0].(database.User) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserRoles indicates an expected call of UpdateUserRoles. -func (mr *MockStoreMockRecorder) UpdateUserRoles(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserRoles", reflect.TypeOf((*MockStore)(nil).UpdateUserRoles), ctx, arg) -} - -// UpdateUserSecret mocks base method. -func (m *MockStore) UpdateUserSecret(ctx context.Context, arg database.UpdateUserSecretParams) (database.UserSecret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserSecret", ctx, arg) - ret0, _ := ret[0].(database.UserSecret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserSecret indicates an expected call of UpdateUserSecret. -func (mr *MockStoreMockRecorder) UpdateUserSecret(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserSecret", reflect.TypeOf((*MockStore)(nil).UpdateUserSecret), ctx, arg) -} - -// UpdateUserStatus mocks base method. -func (m *MockStore) UpdateUserStatus(ctx context.Context, arg database.UpdateUserStatusParams) (database.User, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserStatus", ctx, arg) - ret0, _ := ret[0].(database.User) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserStatus indicates an expected call of UpdateUserStatus. -func (mr *MockStoreMockRecorder) UpdateUserStatus(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserStatus", reflect.TypeOf((*MockStore)(nil).UpdateUserStatus), ctx, arg) -} - -// UpdateUserTaskNotificationAlertDismissed mocks base method. -func (m *MockStore) UpdateUserTaskNotificationAlertDismissed(ctx context.Context, arg database.UpdateUserTaskNotificationAlertDismissedParams) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserTaskNotificationAlertDismissed", ctx, arg) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserTaskNotificationAlertDismissed indicates an expected call of UpdateUserTaskNotificationAlertDismissed. -func (mr *MockStoreMockRecorder) UpdateUserTaskNotificationAlertDismissed(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserTaskNotificationAlertDismissed", reflect.TypeOf((*MockStore)(nil).UpdateUserTaskNotificationAlertDismissed), ctx, arg) -} - -// UpdateUserTerminalFont mocks base method. -func (m *MockStore) UpdateUserTerminalFont(ctx context.Context, arg database.UpdateUserTerminalFontParams) (database.UserConfig, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserTerminalFont", ctx, arg) - ret0, _ := ret[0].(database.UserConfig) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserTerminalFont indicates an expected call of UpdateUserTerminalFont. -func (mr *MockStoreMockRecorder) UpdateUserTerminalFont(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserTerminalFont", reflect.TypeOf((*MockStore)(nil).UpdateUserTerminalFont), ctx, arg) -} - -// UpdateUserThemePreference mocks base method. -func (m *MockStore) UpdateUserThemePreference(ctx context.Context, arg database.UpdateUserThemePreferenceParams) (database.UserConfig, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateUserThemePreference", ctx, arg) - ret0, _ := ret[0].(database.UserConfig) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateUserThemePreference indicates an expected call of UpdateUserThemePreference. -func (mr *MockStoreMockRecorder) UpdateUserThemePreference(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserThemePreference", reflect.TypeOf((*MockStore)(nil).UpdateUserThemePreference), ctx, arg) -} - -// UpdateVolumeResourceMonitor mocks base method. -func (m *MockStore) UpdateVolumeResourceMonitor(ctx context.Context, arg database.UpdateVolumeResourceMonitorParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateVolumeResourceMonitor", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateVolumeResourceMonitor indicates an expected call of UpdateVolumeResourceMonitor. -func (mr *MockStoreMockRecorder) UpdateVolumeResourceMonitor(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVolumeResourceMonitor", reflect.TypeOf((*MockStore)(nil).UpdateVolumeResourceMonitor), ctx, arg) -} - -// UpdateWorkspace mocks base method. -func (m *MockStore) UpdateWorkspace(ctx context.Context, arg database.UpdateWorkspaceParams) (database.WorkspaceTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspace", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateWorkspace indicates an expected call of UpdateWorkspace. -func (mr *MockStoreMockRecorder) UpdateWorkspace(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspace", reflect.TypeOf((*MockStore)(nil).UpdateWorkspace), ctx, arg) -} - -// UpdateWorkspaceACLByID mocks base method. -func (m *MockStore) UpdateWorkspaceACLByID(ctx context.Context, arg database.UpdateWorkspaceACLByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceACLByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceACLByID indicates an expected call of UpdateWorkspaceACLByID. -func (mr *MockStoreMockRecorder) UpdateWorkspaceACLByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceACLByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceACLByID), ctx, arg) -} - -// UpdateWorkspaceAgentConnectionByID mocks base method. -func (m *MockStore) UpdateWorkspaceAgentConnectionByID(ctx context.Context, arg database.UpdateWorkspaceAgentConnectionByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceAgentConnectionByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceAgentConnectionByID indicates an expected call of UpdateWorkspaceAgentConnectionByID. -func (mr *MockStoreMockRecorder) UpdateWorkspaceAgentConnectionByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAgentConnectionByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAgentConnectionByID), ctx, arg) -} - -// UpdateWorkspaceAgentLifecycleStateByID mocks base method. -func (m *MockStore) UpdateWorkspaceAgentLifecycleStateByID(ctx context.Context, arg database.UpdateWorkspaceAgentLifecycleStateByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceAgentLifecycleStateByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceAgentLifecycleStateByID indicates an expected call of UpdateWorkspaceAgentLifecycleStateByID. -func (mr *MockStoreMockRecorder) UpdateWorkspaceAgentLifecycleStateByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAgentLifecycleStateByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAgentLifecycleStateByID), ctx, arg) -} - -// UpdateWorkspaceAgentLogOverflowByID mocks base method. -func (m *MockStore) UpdateWorkspaceAgentLogOverflowByID(ctx context.Context, arg database.UpdateWorkspaceAgentLogOverflowByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceAgentLogOverflowByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceAgentLogOverflowByID indicates an expected call of UpdateWorkspaceAgentLogOverflowByID. -func (mr *MockStoreMockRecorder) UpdateWorkspaceAgentLogOverflowByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAgentLogOverflowByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAgentLogOverflowByID), ctx, arg) -} - -// UpdateWorkspaceAgentMetadata mocks base method. -func (m *MockStore) UpdateWorkspaceAgentMetadata(ctx context.Context, arg database.UpdateWorkspaceAgentMetadataParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceAgentMetadata", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceAgentMetadata indicates an expected call of UpdateWorkspaceAgentMetadata. -func (mr *MockStoreMockRecorder) UpdateWorkspaceAgentMetadata(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAgentMetadata", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAgentMetadata), ctx, arg) -} - -// UpdateWorkspaceAgentStartupByID mocks base method. -func (m *MockStore) UpdateWorkspaceAgentStartupByID(ctx context.Context, arg database.UpdateWorkspaceAgentStartupByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceAgentStartupByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceAgentStartupByID indicates an expected call of UpdateWorkspaceAgentStartupByID. -func (mr *MockStoreMockRecorder) UpdateWorkspaceAgentStartupByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAgentStartupByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAgentStartupByID), ctx, arg) -} - -// UpdateWorkspaceAppHealthByID mocks base method. -func (m *MockStore) UpdateWorkspaceAppHealthByID(ctx context.Context, arg database.UpdateWorkspaceAppHealthByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceAppHealthByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceAppHealthByID indicates an expected call of UpdateWorkspaceAppHealthByID. -func (mr *MockStoreMockRecorder) UpdateWorkspaceAppHealthByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAppHealthByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAppHealthByID), ctx, arg) -} - -// UpdateWorkspaceAutomaticUpdates mocks base method. -func (m *MockStore) UpdateWorkspaceAutomaticUpdates(ctx context.Context, arg database.UpdateWorkspaceAutomaticUpdatesParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceAutomaticUpdates", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceAutomaticUpdates indicates an expected call of UpdateWorkspaceAutomaticUpdates. -func (mr *MockStoreMockRecorder) UpdateWorkspaceAutomaticUpdates(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAutomaticUpdates", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAutomaticUpdates), ctx, arg) -} - -// UpdateWorkspaceAutostart mocks base method. -func (m *MockStore) UpdateWorkspaceAutostart(ctx context.Context, arg database.UpdateWorkspaceAutostartParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceAutostart", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceAutostart indicates an expected call of UpdateWorkspaceAutostart. -func (mr *MockStoreMockRecorder) UpdateWorkspaceAutostart(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceAutostart", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceAutostart), ctx, arg) -} - -// UpdateWorkspaceBuildCostByID mocks base method. -func (m *MockStore) UpdateWorkspaceBuildCostByID(ctx context.Context, arg database.UpdateWorkspaceBuildCostByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceBuildCostByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceBuildCostByID indicates an expected call of UpdateWorkspaceBuildCostByID. -func (mr *MockStoreMockRecorder) UpdateWorkspaceBuildCostByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceBuildCostByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceBuildCostByID), ctx, arg) -} - -// UpdateWorkspaceBuildDeadlineByID mocks base method. -func (m *MockStore) UpdateWorkspaceBuildDeadlineByID(ctx context.Context, arg database.UpdateWorkspaceBuildDeadlineByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceBuildDeadlineByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceBuildDeadlineByID indicates an expected call of UpdateWorkspaceBuildDeadlineByID. -func (mr *MockStoreMockRecorder) UpdateWorkspaceBuildDeadlineByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceBuildDeadlineByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceBuildDeadlineByID), ctx, arg) -} - -// UpdateWorkspaceBuildFlagsByID mocks base method. -func (m *MockStore) UpdateWorkspaceBuildFlagsByID(ctx context.Context, arg database.UpdateWorkspaceBuildFlagsByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceBuildFlagsByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceBuildFlagsByID indicates an expected call of UpdateWorkspaceBuildFlagsByID. -func (mr *MockStoreMockRecorder) UpdateWorkspaceBuildFlagsByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceBuildFlagsByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceBuildFlagsByID), ctx, arg) -} - -// UpdateWorkspaceBuildProvisionerStateByID mocks base method. -func (m *MockStore) UpdateWorkspaceBuildProvisionerStateByID(ctx context.Context, arg database.UpdateWorkspaceBuildProvisionerStateByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceBuildProvisionerStateByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceBuildProvisionerStateByID indicates an expected call of UpdateWorkspaceBuildProvisionerStateByID. -func (mr *MockStoreMockRecorder) UpdateWorkspaceBuildProvisionerStateByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceBuildProvisionerStateByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceBuildProvisionerStateByID), ctx, arg) -} - -// UpdateWorkspaceDeletedByID mocks base method. -func (m *MockStore) UpdateWorkspaceDeletedByID(ctx context.Context, arg database.UpdateWorkspaceDeletedByIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceDeletedByID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceDeletedByID indicates an expected call of UpdateWorkspaceDeletedByID. -func (mr *MockStoreMockRecorder) UpdateWorkspaceDeletedByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceDeletedByID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceDeletedByID), ctx, arg) -} - -// UpdateWorkspaceDormantDeletingAt mocks base method. -func (m *MockStore) UpdateWorkspaceDormantDeletingAt(ctx context.Context, arg database.UpdateWorkspaceDormantDeletingAtParams) (database.WorkspaceTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceDormantDeletingAt", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateWorkspaceDormantDeletingAt indicates an expected call of UpdateWorkspaceDormantDeletingAt. -func (mr *MockStoreMockRecorder) UpdateWorkspaceDormantDeletingAt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceDormantDeletingAt", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceDormantDeletingAt), ctx, arg) -} - -// UpdateWorkspaceLastUsedAt mocks base method. -func (m *MockStore) UpdateWorkspaceLastUsedAt(ctx context.Context, arg database.UpdateWorkspaceLastUsedAtParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceLastUsedAt", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceLastUsedAt indicates an expected call of UpdateWorkspaceLastUsedAt. -func (mr *MockStoreMockRecorder) UpdateWorkspaceLastUsedAt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceLastUsedAt", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceLastUsedAt), ctx, arg) -} - -// UpdateWorkspaceNextStartAt mocks base method. -func (m *MockStore) UpdateWorkspaceNextStartAt(ctx context.Context, arg database.UpdateWorkspaceNextStartAtParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceNextStartAt", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceNextStartAt indicates an expected call of UpdateWorkspaceNextStartAt. -func (mr *MockStoreMockRecorder) UpdateWorkspaceNextStartAt(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceNextStartAt", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceNextStartAt), ctx, arg) -} - -// UpdateWorkspaceProxy mocks base method. -func (m *MockStore) UpdateWorkspaceProxy(ctx context.Context, arg database.UpdateWorkspaceProxyParams) (database.WorkspaceProxy, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceProxy", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceProxy) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateWorkspaceProxy indicates an expected call of UpdateWorkspaceProxy. -func (mr *MockStoreMockRecorder) UpdateWorkspaceProxy(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceProxy", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceProxy), ctx, arg) -} - -// UpdateWorkspaceProxyDeleted mocks base method. -func (m *MockStore) UpdateWorkspaceProxyDeleted(ctx context.Context, arg database.UpdateWorkspaceProxyDeletedParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceProxyDeleted", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceProxyDeleted indicates an expected call of UpdateWorkspaceProxyDeleted. -func (mr *MockStoreMockRecorder) UpdateWorkspaceProxyDeleted(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceProxyDeleted", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceProxyDeleted), ctx, arg) -} - -// UpdateWorkspaceTTL mocks base method. -func (m *MockStore) UpdateWorkspaceTTL(ctx context.Context, arg database.UpdateWorkspaceTTLParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspaceTTL", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspaceTTL indicates an expected call of UpdateWorkspaceTTL. -func (mr *MockStoreMockRecorder) UpdateWorkspaceTTL(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspaceTTL", reflect.TypeOf((*MockStore)(nil).UpdateWorkspaceTTL), ctx, arg) -} - -// UpdateWorkspacesDormantDeletingAtByTemplateID mocks base method. -func (m *MockStore) UpdateWorkspacesDormantDeletingAtByTemplateID(ctx context.Context, arg database.UpdateWorkspacesDormantDeletingAtByTemplateIDParams) ([]database.WorkspaceTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspacesDormantDeletingAtByTemplateID", ctx, arg) - ret0, _ := ret[0].([]database.WorkspaceTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateWorkspacesDormantDeletingAtByTemplateID indicates an expected call of UpdateWorkspacesDormantDeletingAtByTemplateID. -func (mr *MockStoreMockRecorder) UpdateWorkspacesDormantDeletingAtByTemplateID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspacesDormantDeletingAtByTemplateID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspacesDormantDeletingAtByTemplateID), ctx, arg) -} - -// UpdateWorkspacesTTLByTemplateID mocks base method. -func (m *MockStore) UpdateWorkspacesTTLByTemplateID(ctx context.Context, arg database.UpdateWorkspacesTTLByTemplateIDParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateWorkspacesTTLByTemplateID", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateWorkspacesTTLByTemplateID indicates an expected call of UpdateWorkspacesTTLByTemplateID. -func (mr *MockStoreMockRecorder) UpdateWorkspacesTTLByTemplateID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWorkspacesTTLByTemplateID", reflect.TypeOf((*MockStore)(nil).UpdateWorkspacesTTLByTemplateID), ctx, arg) -} - -// UpsertAnnouncementBanners mocks base method. -func (m *MockStore) UpsertAnnouncementBanners(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertAnnouncementBanners", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertAnnouncementBanners indicates an expected call of UpsertAnnouncementBanners. -func (mr *MockStoreMockRecorder) UpsertAnnouncementBanners(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertAnnouncementBanners", reflect.TypeOf((*MockStore)(nil).UpsertAnnouncementBanners), ctx, value) -} - -// UpsertAppSecurityKey mocks base method. -func (m *MockStore) UpsertAppSecurityKey(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertAppSecurityKey", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertAppSecurityKey indicates an expected call of UpsertAppSecurityKey. -func (mr *MockStoreMockRecorder) UpsertAppSecurityKey(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertAppSecurityKey", reflect.TypeOf((*MockStore)(nil).UpsertAppSecurityKey), ctx, value) -} - -// UpsertApplicationName mocks base method. -func (m *MockStore) UpsertApplicationName(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertApplicationName", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertApplicationName indicates an expected call of UpsertApplicationName. -func (mr *MockStoreMockRecorder) UpsertApplicationName(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertApplicationName", reflect.TypeOf((*MockStore)(nil).UpsertApplicationName), ctx, value) -} - -// UpsertConnectionLog mocks base method. -func (m *MockStore) UpsertConnectionLog(ctx context.Context, arg database.UpsertConnectionLogParams) (database.ConnectionLog, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertConnectionLog", ctx, arg) - ret0, _ := ret[0].(database.ConnectionLog) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpsertConnectionLog indicates an expected call of UpsertConnectionLog. -func (mr *MockStoreMockRecorder) UpsertConnectionLog(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertConnectionLog", reflect.TypeOf((*MockStore)(nil).UpsertConnectionLog), ctx, arg) -} - -// UpsertCoordinatorResumeTokenSigningKey mocks base method. -func (m *MockStore) UpsertCoordinatorResumeTokenSigningKey(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertCoordinatorResumeTokenSigningKey", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertCoordinatorResumeTokenSigningKey indicates an expected call of UpsertCoordinatorResumeTokenSigningKey. -func (mr *MockStoreMockRecorder) UpsertCoordinatorResumeTokenSigningKey(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertCoordinatorResumeTokenSigningKey", reflect.TypeOf((*MockStore)(nil).UpsertCoordinatorResumeTokenSigningKey), ctx, value) -} - -// UpsertDefaultProxy mocks base method. -func (m *MockStore) UpsertDefaultProxy(ctx context.Context, arg database.UpsertDefaultProxyParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertDefaultProxy", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertDefaultProxy indicates an expected call of UpsertDefaultProxy. -func (mr *MockStoreMockRecorder) UpsertDefaultProxy(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertDefaultProxy", reflect.TypeOf((*MockStore)(nil).UpsertDefaultProxy), ctx, arg) -} - -// UpsertHealthSettings mocks base method. -func (m *MockStore) UpsertHealthSettings(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertHealthSettings", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertHealthSettings indicates an expected call of UpsertHealthSettings. -func (mr *MockStoreMockRecorder) UpsertHealthSettings(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertHealthSettings", reflect.TypeOf((*MockStore)(nil).UpsertHealthSettings), ctx, value) -} - -// UpsertLastUpdateCheck mocks base method. -func (m *MockStore) UpsertLastUpdateCheck(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertLastUpdateCheck", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertLastUpdateCheck indicates an expected call of UpsertLastUpdateCheck. -func (mr *MockStoreMockRecorder) UpsertLastUpdateCheck(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertLastUpdateCheck", reflect.TypeOf((*MockStore)(nil).UpsertLastUpdateCheck), ctx, value) -} - -// UpsertLogoURL mocks base method. -func (m *MockStore) UpsertLogoURL(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertLogoURL", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertLogoURL indicates an expected call of UpsertLogoURL. -func (mr *MockStoreMockRecorder) UpsertLogoURL(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertLogoURL", reflect.TypeOf((*MockStore)(nil).UpsertLogoURL), ctx, value) -} - -// UpsertNotificationReportGeneratorLog mocks base method. -func (m *MockStore) UpsertNotificationReportGeneratorLog(ctx context.Context, arg database.UpsertNotificationReportGeneratorLogParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertNotificationReportGeneratorLog", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertNotificationReportGeneratorLog indicates an expected call of UpsertNotificationReportGeneratorLog. -func (mr *MockStoreMockRecorder) UpsertNotificationReportGeneratorLog(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertNotificationReportGeneratorLog", reflect.TypeOf((*MockStore)(nil).UpsertNotificationReportGeneratorLog), ctx, arg) -} - -// UpsertNotificationsSettings mocks base method. -func (m *MockStore) UpsertNotificationsSettings(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertNotificationsSettings", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertNotificationsSettings indicates an expected call of UpsertNotificationsSettings. -func (mr *MockStoreMockRecorder) UpsertNotificationsSettings(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertNotificationsSettings", reflect.TypeOf((*MockStore)(nil).UpsertNotificationsSettings), ctx, value) -} - -// UpsertOAuth2GithubDefaultEligible mocks base method. -func (m *MockStore) UpsertOAuth2GithubDefaultEligible(ctx context.Context, eligible bool) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertOAuth2GithubDefaultEligible", ctx, eligible) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertOAuth2GithubDefaultEligible indicates an expected call of UpsertOAuth2GithubDefaultEligible. -func (mr *MockStoreMockRecorder) UpsertOAuth2GithubDefaultEligible(ctx, eligible any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertOAuth2GithubDefaultEligible", reflect.TypeOf((*MockStore)(nil).UpsertOAuth2GithubDefaultEligible), ctx, eligible) -} - -// UpsertOAuthSigningKey mocks base method. -func (m *MockStore) UpsertOAuthSigningKey(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertOAuthSigningKey", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertOAuthSigningKey indicates an expected call of UpsertOAuthSigningKey. -func (mr *MockStoreMockRecorder) UpsertOAuthSigningKey(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertOAuthSigningKey", reflect.TypeOf((*MockStore)(nil).UpsertOAuthSigningKey), ctx, value) -} - -// UpsertPrebuildsSettings mocks base method. -func (m *MockStore) UpsertPrebuildsSettings(ctx context.Context, value string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertPrebuildsSettings", ctx, value) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertPrebuildsSettings indicates an expected call of UpsertPrebuildsSettings. -func (mr *MockStoreMockRecorder) UpsertPrebuildsSettings(ctx, value any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertPrebuildsSettings", reflect.TypeOf((*MockStore)(nil).UpsertPrebuildsSettings), ctx, value) -} - -// UpsertProvisionerDaemon mocks base method. -func (m *MockStore) UpsertProvisionerDaemon(ctx context.Context, arg database.UpsertProvisionerDaemonParams) (database.ProvisionerDaemon, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertProvisionerDaemon", ctx, arg) - ret0, _ := ret[0].(database.ProvisionerDaemon) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpsertProvisionerDaemon indicates an expected call of UpsertProvisionerDaemon. -func (mr *MockStoreMockRecorder) UpsertProvisionerDaemon(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertProvisionerDaemon", reflect.TypeOf((*MockStore)(nil).UpsertProvisionerDaemon), ctx, arg) -} - -// UpsertRuntimeConfig mocks base method. -func (m *MockStore) UpsertRuntimeConfig(ctx context.Context, arg database.UpsertRuntimeConfigParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertRuntimeConfig", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertRuntimeConfig indicates an expected call of UpsertRuntimeConfig. -func (mr *MockStoreMockRecorder) UpsertRuntimeConfig(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertRuntimeConfig", reflect.TypeOf((*MockStore)(nil).UpsertRuntimeConfig), ctx, arg) -} - -// UpsertTailnetAgent mocks base method. -func (m *MockStore) UpsertTailnetAgent(ctx context.Context, arg database.UpsertTailnetAgentParams) (database.TailnetAgent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertTailnetAgent", ctx, arg) - ret0, _ := ret[0].(database.TailnetAgent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpsertTailnetAgent indicates an expected call of UpsertTailnetAgent. -func (mr *MockStoreMockRecorder) UpsertTailnetAgent(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetAgent", reflect.TypeOf((*MockStore)(nil).UpsertTailnetAgent), ctx, arg) -} - -// UpsertTailnetClient mocks base method. -func (m *MockStore) UpsertTailnetClient(ctx context.Context, arg database.UpsertTailnetClientParams) (database.TailnetClient, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertTailnetClient", ctx, arg) - ret0, _ := ret[0].(database.TailnetClient) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpsertTailnetClient indicates an expected call of UpsertTailnetClient. -func (mr *MockStoreMockRecorder) UpsertTailnetClient(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetClient", reflect.TypeOf((*MockStore)(nil).UpsertTailnetClient), ctx, arg) -} - -// UpsertTailnetClientSubscription mocks base method. -func (m *MockStore) UpsertTailnetClientSubscription(ctx context.Context, arg database.UpsertTailnetClientSubscriptionParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertTailnetClientSubscription", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertTailnetClientSubscription indicates an expected call of UpsertTailnetClientSubscription. -func (mr *MockStoreMockRecorder) UpsertTailnetClientSubscription(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetClientSubscription", reflect.TypeOf((*MockStore)(nil).UpsertTailnetClientSubscription), ctx, arg) -} - -// UpsertTailnetCoordinator mocks base method. -func (m *MockStore) UpsertTailnetCoordinator(ctx context.Context, id uuid.UUID) (database.TailnetCoordinator, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertTailnetCoordinator", ctx, id) - ret0, _ := ret[0].(database.TailnetCoordinator) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpsertTailnetCoordinator indicates an expected call of UpsertTailnetCoordinator. -func (mr *MockStoreMockRecorder) UpsertTailnetCoordinator(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetCoordinator", reflect.TypeOf((*MockStore)(nil).UpsertTailnetCoordinator), ctx, id) -} - -// UpsertTailnetPeer mocks base method. -func (m *MockStore) UpsertTailnetPeer(ctx context.Context, arg database.UpsertTailnetPeerParams) (database.TailnetPeer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertTailnetPeer", ctx, arg) - ret0, _ := ret[0].(database.TailnetPeer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpsertTailnetPeer indicates an expected call of UpsertTailnetPeer. -func (mr *MockStoreMockRecorder) UpsertTailnetPeer(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetPeer", reflect.TypeOf((*MockStore)(nil).UpsertTailnetPeer), ctx, arg) -} - -// UpsertTailnetTunnel mocks base method. -func (m *MockStore) UpsertTailnetTunnel(ctx context.Context, arg database.UpsertTailnetTunnelParams) (database.TailnetTunnel, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertTailnetTunnel", ctx, arg) - ret0, _ := ret[0].(database.TailnetTunnel) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpsertTailnetTunnel indicates an expected call of UpsertTailnetTunnel. -func (mr *MockStoreMockRecorder) UpsertTailnetTunnel(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTailnetTunnel", reflect.TypeOf((*MockStore)(nil).UpsertTailnetTunnel), ctx, arg) -} - -// UpsertTaskWorkspaceApp mocks base method. -func (m *MockStore) UpsertTaskWorkspaceApp(ctx context.Context, arg database.UpsertTaskWorkspaceAppParams) (database.TaskWorkspaceApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertTaskWorkspaceApp", ctx, arg) - ret0, _ := ret[0].(database.TaskWorkspaceApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpsertTaskWorkspaceApp indicates an expected call of UpsertTaskWorkspaceApp. -func (mr *MockStoreMockRecorder) UpsertTaskWorkspaceApp(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTaskWorkspaceApp", reflect.TypeOf((*MockStore)(nil).UpsertTaskWorkspaceApp), ctx, arg) -} - -// UpsertTelemetryItem mocks base method. -func (m *MockStore) UpsertTelemetryItem(ctx context.Context, arg database.UpsertTelemetryItemParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertTelemetryItem", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertTelemetryItem indicates an expected call of UpsertTelemetryItem. -func (mr *MockStoreMockRecorder) UpsertTelemetryItem(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTelemetryItem", reflect.TypeOf((*MockStore)(nil).UpsertTelemetryItem), ctx, arg) -} - -// UpsertTemplateUsageStats mocks base method. -func (m *MockStore) UpsertTemplateUsageStats(ctx context.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertTemplateUsageStats", ctx) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertTemplateUsageStats indicates an expected call of UpsertTemplateUsageStats. -func (mr *MockStoreMockRecorder) UpsertTemplateUsageStats(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertTemplateUsageStats", reflect.TypeOf((*MockStore)(nil).UpsertTemplateUsageStats), ctx) -} - -// UpsertWebpushVAPIDKeys mocks base method. -func (m *MockStore) UpsertWebpushVAPIDKeys(ctx context.Context, arg database.UpsertWebpushVAPIDKeysParams) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertWebpushVAPIDKeys", ctx, arg) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpsertWebpushVAPIDKeys indicates an expected call of UpsertWebpushVAPIDKeys. -func (mr *MockStoreMockRecorder) UpsertWebpushVAPIDKeys(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertWebpushVAPIDKeys", reflect.TypeOf((*MockStore)(nil).UpsertWebpushVAPIDKeys), ctx, arg) -} - -// UpsertWorkspaceAgentPortShare mocks base method. -func (m *MockStore) UpsertWorkspaceAgentPortShare(ctx context.Context, arg database.UpsertWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortShare, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertWorkspaceAgentPortShare", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceAgentPortShare) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpsertWorkspaceAgentPortShare indicates an expected call of UpsertWorkspaceAgentPortShare. -func (mr *MockStoreMockRecorder) UpsertWorkspaceAgentPortShare(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertWorkspaceAgentPortShare", reflect.TypeOf((*MockStore)(nil).UpsertWorkspaceAgentPortShare), ctx, arg) -} - -// UpsertWorkspaceApp mocks base method. -func (m *MockStore) UpsertWorkspaceApp(ctx context.Context, arg database.UpsertWorkspaceAppParams) (database.WorkspaceApp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertWorkspaceApp", ctx, arg) - ret0, _ := ret[0].(database.WorkspaceApp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpsertWorkspaceApp indicates an expected call of UpsertWorkspaceApp. -func (mr *MockStoreMockRecorder) UpsertWorkspaceApp(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertWorkspaceApp", reflect.TypeOf((*MockStore)(nil).UpsertWorkspaceApp), ctx, arg) -} - -// UpsertWorkspaceAppAuditSession mocks base method. -func (m *MockStore) UpsertWorkspaceAppAuditSession(ctx context.Context, arg database.UpsertWorkspaceAppAuditSessionParams) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpsertWorkspaceAppAuditSession", ctx, arg) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpsertWorkspaceAppAuditSession indicates an expected call of UpsertWorkspaceAppAuditSession. -func (mr *MockStoreMockRecorder) UpsertWorkspaceAppAuditSession(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertWorkspaceAppAuditSession", reflect.TypeOf((*MockStore)(nil).UpsertWorkspaceAppAuditSession), ctx, arg) -} - -// ValidateGroupIDs mocks base method. -func (m *MockStore) ValidateGroupIDs(ctx context.Context, groupIds []uuid.UUID) (database.ValidateGroupIDsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ValidateGroupIDs", ctx, groupIds) - ret0, _ := ret[0].(database.ValidateGroupIDsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ValidateGroupIDs indicates an expected call of ValidateGroupIDs. -func (mr *MockStoreMockRecorder) ValidateGroupIDs(ctx, groupIds any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateGroupIDs", reflect.TypeOf((*MockStore)(nil).ValidateGroupIDs), ctx, groupIds) -} - -// ValidateUserIDs mocks base method. -func (m *MockStore) ValidateUserIDs(ctx context.Context, userIds []uuid.UUID) (database.ValidateUserIDsRow, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ValidateUserIDs", ctx, userIds) - ret0, _ := ret[0].(database.ValidateUserIDsRow) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ValidateUserIDs indicates an expected call of ValidateUserIDs. -func (mr *MockStoreMockRecorder) ValidateUserIDs(ctx, userIds any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateUserIDs", reflect.TypeOf((*MockStore)(nil).ValidateUserIDs), ctx, userIds) -} - -// Wrappers mocks base method. -func (m *MockStore) Wrappers() []string { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Wrappers") - ret0, _ := ret[0].([]string) - return ret0 -} - -// Wrappers indicates an expected call of Wrappers. -func (mr *MockStoreMockRecorder) Wrappers() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Wrappers", reflect.TypeOf((*MockStore)(nil).Wrappers)) -} From 018898959e647843c47187ff1945808c4edaa058 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Sat, 13 Dec 2025 23:26:36 +0000 Subject: [PATCH 09/22] chore: commit bump (ci) From 997990254c2ae2558f299f824a1aa77a876af05a Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 01:16:11 +0000 Subject: [PATCH 10/22] fix: remove unused `db` --- coderd/searchquery/search.go | 2 +- enterprise/coderd/aibridge.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/coderd/searchquery/search.go b/coderd/searchquery/search.go index f9c7a4c222d20..09e6574672b36 100644 --- a/coderd/searchquery/search.go +++ b/coderd/searchquery/search.go @@ -391,7 +391,7 @@ func AIBridgeInterceptions(ctx context.Context, db database.Store, query string, return filter, parser.Errors } -func AIBridgeModels(db database.Store, query string, page codersdk.Pagination) (database.ListAIBridgeModelsParams, []codersdk.ValidationError) { +func AIBridgeModels(query string, page codersdk.Pagination) (database.ListAIBridgeModelsParams, []codersdk.ValidationError) { // nolint:exhaustruct // Empty values just means "don't filter by that field". filter := database.ListAIBridgeModelsParams{ // #nosec G115 - Safe conversion for pagination offset which is expected to be within int32 range diff --git a/enterprise/coderd/aibridge.go b/enterprise/coderd/aibridge.go index 487ca04f06c85..1549a14cfcb2b 100644 --- a/enterprise/coderd/aibridge.go +++ b/enterprise/coderd/aibridge.go @@ -264,7 +264,7 @@ func (api *API) aiBridgeListModels(rw http.ResponseWriter, r *http.Request) { } queryStr := r.URL.Query().Get("q") - filter, errs := searchquery.AIBridgeModels(api.Database, queryStr, page) + filter, errs := searchquery.AIBridgeModels(queryStr, page) if len(errs) > 0 { httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{ From 9278746f0d6e8c56911b6e021a6d597e079efcf7 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 01:32:35 +0000 Subject: [PATCH 11/22] feat: add `dbauthz_test.go` --- coderd/database/dbauthz/dbauthz_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/coderd/database/dbauthz/dbauthz_test.go b/coderd/database/dbauthz/dbauthz_test.go index 11909b1a65e93..45dba5ea0aee5 100644 --- a/coderd/database/dbauthz/dbauthz_test.go +++ b/coderd/database/dbauthz/dbauthz_test.go @@ -4662,6 +4662,20 @@ func (s *MethodTestSuite) TestAIBridge() { check.Args(params, emptyPreparedAuthorized{}).Asserts() })) + s.Run("ListAIBridgeModels", s.Mocked(func(db *dbmock.MockStore, faker *gofakeit.Faker, check *expects) { + params := database.ListAIBridgeModelsParams{} + db.EXPECT().ListAuthorizedAIBridgeModels(gomock.Any(), params, gomock.Any()).Return([]string{}, nil).AnyTimes() + // No asserts here because SQLFilter. + check.Args(params).Asserts() + })) + + s.Run("ListAuthorizedAIBridgeModels", s.Mocked(func(db *dbmock.MockStore, faker *gofakeit.Faker, check *expects) { + params := database.ListAIBridgeModelsParams{} + db.EXPECT().ListAuthorizedAIBridgeModels(gomock.Any(), params, gomock.Any()).Return([]string{}, nil).AnyTimes() + // No asserts here because SQLFilter. + check.Args(params, emptyPreparedAuthorized{}).Asserts() + })) + s.Run("CountAIBridgeInterceptions", s.Mocked(func(db *dbmock.MockStore, faker *gofakeit.Faker, check *expects) { params := database.CountAIBridgeInterceptionsParams{} db.EXPECT().CountAuthorizedAIBridgeInterceptions(gomock.Any(), params, gomock.Any()).Return(int64(0), nil).AnyTimes() From 205a235cb463777aa466fb137fe50ac976ce93ca Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 01:47:18 +0000 Subject: [PATCH 12/22] fix: change `ListAuthorizedAIBridgeModels` to `ListAIBridgeModels` in `dbauthz.go` --- coderd/database/dbauthz/dbauthz.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coderd/database/dbauthz/dbauthz.go b/coderd/database/dbauthz/dbauthz.go index 8d12b2d0c4e7e..3d5e55ec95394 100644 --- a/coderd/database/dbauthz/dbauthz.go +++ b/coderd/database/dbauthz/dbauthz.go @@ -6169,5 +6169,5 @@ func (q *querier) ListAuthorizedAIBridgeModels(ctx context.Context, arg database // TODO: Delete this function, all ListAIBridgeModels should be authorized. For now just call ListAIBridgeModels on the authz querier. // This cannot be deleted for now because it's included in the // database.Store interface, so dbauthz needs to implement it. - return q.db.ListAuthorizedAIBridgeModels(ctx, arg, prepared) + return q.db.ListAIBridgeModels(ctx, arg) } From cddf85106f6f549212f4cefd303b3ef24455e727 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 01:55:00 +0000 Subject: [PATCH 13/22] chore: remove `.db` to remove panic error --- coderd/database/dbauthz/dbauthz.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coderd/database/dbauthz/dbauthz.go b/coderd/database/dbauthz/dbauthz.go index 3d5e55ec95394..a93be1851fd2d 100644 --- a/coderd/database/dbauthz/dbauthz.go +++ b/coderd/database/dbauthz/dbauthz.go @@ -6169,5 +6169,5 @@ func (q *querier) ListAuthorizedAIBridgeModels(ctx context.Context, arg database // TODO: Delete this function, all ListAIBridgeModels should be authorized. For now just call ListAIBridgeModels on the authz querier. // This cannot be deleted for now because it's included in the // database.Store interface, so dbauthz needs to implement it. - return q.db.ListAIBridgeModels(ctx, arg) + return q.ListAIBridgeModels(ctx, arg) } From c5f5d897a0098b7d430929c4f02a0a2c027c2890 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 04:07:26 +0000 Subject: [PATCH 14/22] chore: rename `prepared` to `_` as its unused --- coderd/database/dbauthz/dbauthz.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coderd/database/dbauthz/dbauthz.go b/coderd/database/dbauthz/dbauthz.go index a93be1851fd2d..001365a121bd0 100644 --- a/coderd/database/dbauthz/dbauthz.go +++ b/coderd/database/dbauthz/dbauthz.go @@ -6165,7 +6165,7 @@ func (q *querier) CountAuthorizedAIBridgeInterceptions(ctx context.Context, arg return q.CountAIBridgeInterceptions(ctx, arg) } -func (q *querier) ListAuthorizedAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams, prepared rbac.PreparedAuthorized) ([]string, error) { +func (q *querier) ListAuthorizedAIBridgeModels(ctx context.Context, arg database.ListAIBridgeModelsParams, _ rbac.PreparedAuthorized) ([]string, error) { // TODO: Delete this function, all ListAIBridgeModels should be authorized. For now just call ListAIBridgeModels on the authz querier. // This cannot be deleted for now because it's included in the // database.Store interface, so dbauthz needs to implement it. From 5e15a0ebe5dba141e97e37fb566386c71e5c5898 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 04:35:21 +0000 Subject: [PATCH 15/22] fix: resolve missing key in story --- .../AIBridgePage/RequestLogsPage/RequestLogsPageView.stories.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.stories.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.stories.tsx index f19cb0f47632c..5f7a883ed24e2 100644 --- a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.stories.tsx +++ b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsPageView.stories.tsx @@ -22,6 +22,7 @@ const defaultFilterProps = getDefaultFilterProps({ menus: { user: MockMenu, provider: MockMenu, + model: MockMenu, }, }); From e2c0a293024a623803f86110cad0ee349a601a5f Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 04:42:26 +0000 Subject: [PATCH 16/22] chore: commit bump (ci) From 325f70b1e16765bb66e9e765e928cb963c313817 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 05:00:49 +0000 Subject: [PATCH 17/22] fix: use `ILIKE` instead of `=` on search --- coderd/database/queries.sql.go | 2 +- coderd/database/queries/aibridge.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/coderd/database/queries.sql.go b/coderd/database/queries.sql.go index 8481ff5107293..dda646662e54d 100644 --- a/coderd/database/queries.sql.go +++ b/coderd/database/queries.sql.go @@ -919,7 +919,7 @@ WHERE ended_at IS NOT NULL -- Filter model AND CASE - WHEN $1::text != '' THEN aibridge_interceptions.model = $1::text + WHEN $1::text != '' THEN aibridge_interceptions.model ILIKE '%' || $1::text || '%' ELSE true END -- Authorize Filter clause will be injected below in ListAIBridgeModelsAuthorized diff --git a/coderd/database/queries/aibridge.sql b/coderd/database/queries/aibridge.sql index 2307af198a074..f1c32b8cbd1e8 100644 --- a/coderd/database/queries/aibridge.sql +++ b/coderd/database/queries/aibridge.sql @@ -376,7 +376,7 @@ WHERE ended_at IS NOT NULL -- Filter model AND CASE - WHEN @model::text != '' THEN aibridge_interceptions.model = @model::text + WHEN @model::text != '' THEN aibridge_interceptions.model ILIKE '%' || @model::text || '%' ELSE true END -- Authorize Filter clause will be injected below in ListAIBridgeModelsAuthorized From 1e1e92f95a4b0a7263a80fb5afef64e2aaa7984e Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 05:07:37 +0000 Subject: [PATCH 18/22] chore: commit bump (ci) From 8d0fd1d9ed837f09736acba012f06c52d82fe2e2 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 13:16:42 +0000 Subject: [PATCH 19/22] fix: add comment describing `@authorize_filter` usecase --- coderd/database/queries/aibridge.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/coderd/database/queries/aibridge.sql b/coderd/database/queries/aibridge.sql index f1c32b8cbd1e8..9463bff4d3790 100644 --- a/coderd/database/queries/aibridge.sql +++ b/coderd/database/queries/aibridge.sql @@ -379,6 +379,8 @@ WHERE WHEN @model::text != '' THEN aibridge_interceptions.model ILIKE '%' || @model::text || '%' ELSE true END + -- We use an `@authorize_filter` as we are attempting to list models that are relevant + -- to the user and what they are allowed to see. -- Authorize Filter clause will be injected below in ListAIBridgeModelsAuthorized -- @authorize_filter GROUP BY From f933ea48086357dd9e1dda3be1b4871d038854af Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 13:18:58 +0000 Subject: [PATCH 20/22] fix: describe the default in `AIBridgeModels()` --- coderd/searchquery/search.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coderd/searchquery/search.go b/coderd/searchquery/search.go index 09e6574672b36..6728fbfe54227 100644 --- a/coderd/searchquery/search.go +++ b/coderd/searchquery/search.go @@ -405,7 +405,7 @@ func AIBridgeModels(query string, page codersdk.Pagination) (database.ListAIBrid } values, errors := searchTerms(query, func(term string, values url.Values) error { - // Default to the model + // Defaults to the `model` if no `key:value` pair is provided. values.Add("model", term) return nil }) From 6078455adca9b5c0daa09f8a85e560ffa697efd5 Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Mon, 15 Dec 2025 14:06:04 +0000 Subject: [PATCH 21/22] fix: add missing comment in `queries.sql.go` --- coderd/database/queries.sql.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/coderd/database/queries.sql.go b/coderd/database/queries.sql.go index dda646662e54d..6fabd7e7b43c7 100644 --- a/coderd/database/queries.sql.go +++ b/coderd/database/queries.sql.go @@ -922,6 +922,8 @@ WHERE WHEN $1::text != '' THEN aibridge_interceptions.model ILIKE '%' || $1::text || '%' ELSE true END + -- We use an ` + "`" + `@authorize_filter` + "`" + ` as we are attempting to list models that are relevant + -- to the user and what they are allowed to see. -- Authorize Filter clause will be injected below in ListAIBridgeModelsAuthorized -- @authorize_filter GROUP BY From dceecec1cd699d41f77af1e8ed4d504bc5fde2ca Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Thu, 18 Dec 2025 04:28:41 +1100 Subject: [PATCH 22/22] chore!: promote AIBridge from `ExperimentalHandler` (#21278) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addressing feedback found in #21252 > [!IMPORTANT] > This pull-request removes endpoints from `ExperimentalHandler` from `coderd.go` and promotes the endpoints within the frontend. This means that we will no longer be serving AI Bridge under the `/api/experimental/` prefix now that things reached release in [`v2.29.0`](https://github.com/coder/coder/releases/tag/v2.29.0). > > ### Migration > > The `/api/experimental/aibridge` prefix has been removed. Any clients, scripts, or integrations that previously called AI Bridge endpoints under `/api/experimental/aibridge` must be updated to use the `/api/v2/aibridge` stable API routes introduced in v2.29.0. | Position | Pull-request | | -------- | ------------ | | | [fix: improve AI Bridge request logs UI/UX](https://github.com/coder/coder/pull/21252) | | | [feat: add AI Bridge request logs model filter](https://github.com/coder/coder/pull/21259) | | ✅ | [fix: promote AIBridge from `ExperimentalHandler`](https://github.com/coder/coder/pull/21278) | --------- Co-authored-by: Susana Ferreira --- enterprise/coderd/aibridge_test.go | 5 - enterprise/coderd/coderd.go | 6 +- site/src/api/api.ts | 495 ++++++++++-------- site/src/api/queries/aiBridge.ts | 2 +- .../RequestLogsFilter/ModelFilter.tsx | 4 +- 5 files changed, 273 insertions(+), 239 deletions(-) diff --git a/enterprise/coderd/aibridge_test.go b/enterprise/coderd/aibridge_test.go index d35b166402f21..db8fc4b7c26b4 100644 --- a/enterprise/coderd/aibridge_test.go +++ b/enterprise/coderd/aibridge_test.go @@ -674,11 +674,6 @@ func TestAIBridgeRouting(t *testing.T) { path: "/api/v2/aibridge/openai/v1/chat/completions", expectedPath: "/openai/v1/chat/completions", }, - { - name: "ExperimentalPrefix", - path: "/api/experimental/aibridge/openai/v1/chat/completions", - expectedPath: "/openai/v1/chat/completions", - }, } for _, tc := range cases { diff --git a/enterprise/coderd/coderd.go b/enterprise/coderd/coderd.go index bf1a5acf531ee..fe9bf589b9af2 100644 --- a/enterprise/coderd/coderd.go +++ b/enterprise/coderd/coderd.go @@ -226,10 +226,8 @@ func New(ctx context.Context, options *Options) (_ *API, err error) { return api.refreshEntitlements(ctx) } - api.AGPL.ExperimentalHandler.Group(func(r chi.Router) { - // Deprecated. - // TODO: remove with Beta release. - r.Route("/aibridge", aibridgeHandler(api, apiKeyMiddleware)) + api.AGPL.ExperimentalHandler.Group(func(_ chi.Router) { + // Add enterprise-only experimental routes here }) api.AGPL.APIHandler.Group(func(r chi.Router) { diff --git a/site/src/api/api.ts b/site/src/api/api.ts index 97f0c8e4278a1..cff9a7867e013 100644 --- a/site/src/api/api.ts +++ b/site/src/api/api.ts @@ -32,6 +32,8 @@ import type { } from "./typesGenerated"; import * as TypesGen from "./typesGenerated"; +const API_PREFIX = "/api/v2"; + const getMissingParameters = ( oldBuildParameters: TypesGen.WorkspaceBuildParameter[], newBuildParameters: TypesGen.WorkspaceBuildParameter[], @@ -123,7 +125,7 @@ export const watchAgentMetadata = ( agentId: string, ): OneWayWebSocket => { return new OneWayWebSocket({ - apiRoute: `/api/v2/workspaceagents/${agentId}/watch-metadata-ws`, + apiRoute: `${API_PREFIX}/workspaceagents/${agentId}/watch-metadata-ws`, }); }; @@ -134,7 +136,7 @@ export const watchWorkspace = ( workspaceId: string, ): OneWayWebSocket => { return new OneWayWebSocket({ - apiRoute: `/api/v2/workspaces/${workspaceId}/watch-ws`, + apiRoute: `${API_PREFIX}/workspaces/${workspaceId}/watch-ws`, }); }; @@ -142,7 +144,7 @@ export const watchAgentContainers = ( agentId: string, ): OneWayWebSocket => { return new OneWayWebSocket({ - apiRoute: `/api/v2/workspaceagents/${agentId}/containers/watch`, + apiRoute: `${API_PREFIX}/workspaceagents/${agentId}/containers/watch`, }); }; @@ -154,7 +156,7 @@ export function watchInboxNotifications( params?: WatchInboxNotificationsParams, ): OneWayWebSocket { return new OneWayWebSocket({ - apiRoute: "/api/v2/notifications/inbox/watch", + apiRoute: `${API_PREFIX}/notifications/inbox/watch`, searchParams: params, }); } @@ -220,7 +222,7 @@ export const watchBuildLogsByTemplateVersionId = ( } const socket = createWebSocket( - `/api/v2/templateversions/${versionId}/logs`, + `${API_PREFIX}/templateversions/${versionId}/logs`, searchParams, ); @@ -260,7 +262,7 @@ export const watchWorkspaceAgentLogs = ( } return new OneWayWebSocket({ - apiRoute: `/api/v2/workspaceagents/${agentId}/logs`, + apiRoute: `${API_PREFIX}/workspaceagents/${agentId}/logs`, searchParams, }); }; @@ -285,7 +287,7 @@ export const watchBuildLogsByBuildId = ( } const socket = createWebSocket( - `/api/v2/workspacebuilds/${buildId}/logs`, + `${API_PREFIX}/workspacebuilds/${buildId}/logs`, searchParams, ); @@ -453,7 +455,7 @@ class ApiMethods { ): Promise => { const payload = JSON.stringify({ email, password }); const response = await this.axios.post( - "/api/v2/users/login", + `${API_PREFIX}/users/login`, payload, { headers: { ...BASE_CONTENT_TYPE_JSON } }, ); @@ -463,7 +465,7 @@ class ApiMethods { convertToOAUTH = async (request: TypesGen.ConvertLoginRequest) => { const response = await this.axios.post( - "/api/v2/users/me/convert-login", + `${API_PREFIX}/users/me/convert-login`, request, ); @@ -471,17 +473,19 @@ class ApiMethods { }; logout = async (): Promise => { - return this.axios.post("/api/v2/users/logout"); + return this.axios.post(`${API_PREFIX}/users/logout`); }; getAuthenticatedUser = async () => { - const response = await this.axios.get("/api/v2/users/me"); + const response = await this.axios.get( + `${API_PREFIX}/users/me`, + ); return response.data; }; getUserParameters = async (templateID: string) => { const response = await this.axios.get( - `/api/v2/users/me/autofill-parameters?template_id=${templateID}`, + `${API_PREFIX}/users/me/autofill-parameters?template_id=${templateID}`, ); return response.data; @@ -489,7 +493,7 @@ class ApiMethods { getAuthMethods = async (): Promise => { const response = await this.axios.get( - "/api/v2/users/authmethods", + `${API_PREFIX}/users/authmethods`, ); return response.data; @@ -497,7 +501,7 @@ class ApiMethods { getUserLoginType = async (): Promise => { const response = await this.axios.get( - "/api/v2/users/me/login-type", + `${API_PREFIX}/users/me/login-type`, ); return response.data; @@ -507,7 +511,7 @@ class ApiMethods { params: TypesGen.AuthorizationRequest, ) => { const response = await this.axios.post( - "/api/v2/authcheck", + `${API_PREFIX}/authcheck`, params, ); @@ -516,7 +520,7 @@ class ApiMethods { getApiKey = async (): Promise => { const response = await this.axios.post( - "/api/v2/users/me/keys", + `${API_PREFIX}/users/me/keys`, ); return response.data; @@ -526,7 +530,7 @@ class ApiMethods { params: TypesGen.TokensFilter, ): Promise => { const response = await this.axios.get( - "/api/v2/users/me/keys/tokens", + `${API_PREFIX}/users/me/keys/tokens`, { params }, ); @@ -534,14 +538,14 @@ class ApiMethods { }; deleteToken = async (keyId: string): Promise => { - await this.axios.delete(`/api/v2/users/me/keys/${keyId}`); + await this.axios.delete(`${API_PREFIX}/users/me/keys/${keyId}`); }; createToken = async ( params: TypesGen.CreateTokenRequest, ): Promise => { const response = await this.axios.post( - "/api/v2/users/me/keys/tokens", + `${API_PREFIX}/users/me/keys/tokens`, params, ); @@ -550,7 +554,7 @@ class ApiMethods { getTokenConfig = async (): Promise => { const response = await this.axios.get( - "/api/v2/users/me/keys/tokens/tokenconfig", + `${API_PREFIX}/users/me/keys/tokens/tokenconfig`, ); return response.data; @@ -560,7 +564,7 @@ class ApiMethods { options: TypesGen.UsersRequest, signal?: AbortSignal, ): Promise => { - const url = getURLWithSearchParams("/api/v2/users", options); + const url = getURLWithSearchParams(`${API_PREFIX}/users`, options); const response = await this.axios.get( url.toString(), { signal }, @@ -571,7 +575,7 @@ class ApiMethods { createOrganization = async (params: TypesGen.CreateOrganizationRequest) => { const response = await this.axios.post( - "/api/v2/organizations", + `${API_PREFIX}/organizations`, params, ); return response.data; @@ -585,7 +589,7 @@ class ApiMethods { params: TypesGen.UpdateOrganizationRequest, ) => { const response = await this.axios.patch( - `/api/v2/organizations/${organization}`, + `${API_PREFIX}/organizations/${organization}`, params, ); return response.data; @@ -596,7 +600,7 @@ class ApiMethods { */ deleteOrganization = async (organization: string) => { await this.axios.delete( - `/api/v2/organizations/${organization}`, + `${API_PREFIX}/organizations/${organization}`, ); }; @@ -607,7 +611,7 @@ class ApiMethods { organization: string, ): Promise => { const response = await this.axios.get( - `/api/v2/organizations/${organization}`, + `${API_PREFIX}/organizations/${organization}`, ); return response.data; @@ -619,7 +623,7 @@ class ApiMethods { getOrganizationMembers = async (organization: string) => { const response = await this.axios.get< TypesGen.OrganizationMemberWithUserData[] - >(`/api/v2/organizations/${organization}/members`); + >(`${API_PREFIX}/organizations/${organization}/members`); return response.data; }; @@ -633,7 +637,7 @@ class ApiMethods { options?: TypesGen.Pagination, ) => { const url = getURLWithSearchParams( - `/api/v2/organizations/${organization}/paginated-members`, + `${API_PREFIX}/organizations/${organization}/paginated-members`, options, ); const response = @@ -647,7 +651,7 @@ class ApiMethods { */ getOrganizationRoles = async (organization: string) => { const response = await this.axios.get( - `/api/v2/organizations/${organization}/members/roles`, + `${API_PREFIX}/organizations/${organization}/members/roles`, ); return response.data; @@ -662,7 +666,7 @@ class ApiMethods { roles: TypesGen.SlimRole["name"][], ): Promise => { const response = await this.axios.put( - `/api/v2/organizations/${organization}/members/${userId}/roles`, + `${API_PREFIX}/organizations/${organization}/members/${userId}/roles`, { roles }, ); @@ -677,7 +681,7 @@ class ApiMethods { role: TypesGen.Role, ): Promise => { const response = await this.axios.post( - `/api/v2/organizations/${organization}/members/roles`, + `${API_PREFIX}/organizations/${organization}/members/roles`, role, ); @@ -692,7 +696,7 @@ class ApiMethods { role: TypesGen.Role, ): Promise => { const response = await this.axios.put( - `/api/v2/organizations/${organization}/members/roles`, + `${API_PREFIX}/organizations/${organization}/members/roles`, role, ); @@ -704,7 +708,7 @@ class ApiMethods { */ deleteOrganizationRole = async (organization: string, roleName: string) => { await this.axios.delete( - `/api/v2/organizations/${organization}/members/roles/${roleName}`, + `${API_PREFIX}/organizations/${organization}/members/roles/${roleName}`, ); }; @@ -713,7 +717,7 @@ class ApiMethods { */ addOrganizationMember = async (organization: string, userId: string) => { const response = await this.axios.post( - `/api/v2/organizations/${organization}/members/${userId}`, + `${API_PREFIX}/organizations/${organization}/members/${userId}`, ); return response.data; @@ -724,20 +728,20 @@ class ApiMethods { */ removeOrganizationMember = async (organization: string, userId: string) => { await this.axios.delete( - `/api/v2/organizations/${organization}/members/${userId}`, + `${API_PREFIX}/organizations/${organization}/members/${userId}`, ); }; getOrganizations = async (): Promise => { const response = await this.axios.get( - "/api/v2/organizations", + `${API_PREFIX}/organizations`, ); return response.data; }; getMyOrganizations = async (): Promise => { const response = await this.axios.get( - "/api/v2/users/me/organizations", + `${API_PREFIX}/users/me/organizations`, ); return response.data; }; @@ -747,7 +751,7 @@ class ApiMethods { params?: GetProvisionerDaemonsParams, ): Promise => { const response = await this.axios.get( - `/api/v2/organizations/${organization}/provisionerdaemons`, + `${API_PREFIX}/organizations/${organization}/provisionerdaemons`, { params }, ); return response.data; @@ -760,7 +764,7 @@ class ApiMethods { organization: string, ): Promise => { const response = await this.axios.get( - `/api/v2/organizations/${organization}/provisionerkeys/daemons`, + `${API_PREFIX}/organizations/${organization}/provisionerkeys/daemons`, ); return response.data; }; @@ -768,7 +772,7 @@ class ApiMethods { getOrganizationIdpSyncSettings = async (): Promise => { const response = await this.axios.get( - "/api/v2/settings/idpsync/organization", + `${API_PREFIX}/settings/idpsync/organization`, ); return response.data; }; @@ -777,7 +781,7 @@ class ApiMethods { data: TypesGen.OrganizationSyncSettings, ) => { const response = await this.axios.patch( - "/api/v2/settings/idpsync/organization", + `${API_PREFIX}/settings/idpsync/organization`, data, ); return response.data; @@ -792,7 +796,7 @@ class ApiMethods { organization: string, ) => { const response = await this.axios.patch( - `/api/v2/organizations/${organization}/settings/idpsync/groups`, + `${API_PREFIX}/organizations/${organization}/settings/idpsync/groups`, data, ); return response.data; @@ -807,7 +811,7 @@ class ApiMethods { organization: string, ) => { const response = await this.axios.patch( - `/api/v2/organizations/${organization}/settings/idpsync/roles`, + `${API_PREFIX}/organizations/${organization}/settings/idpsync/roles`, data, ); return response.data; @@ -820,7 +824,7 @@ class ApiMethods { organization: string, ): Promise => { const response = await this.axios.get( - `/api/v2/organizations/${organization}/settings/idpsync/groups`, + `${API_PREFIX}/organizations/${organization}/settings/idpsync/groups`, ); return response.data; }; @@ -832,7 +836,7 @@ class ApiMethods { organization: string, ): Promise => { const response = await this.axios.get( - `/api/v2/organizations/${organization}/settings/idpsync/roles`, + `${API_PREFIX}/organizations/${organization}/settings/idpsync/roles`, ); return response.data; }; @@ -843,7 +847,7 @@ class ApiMethods { const params = new URLSearchParams(); params.set("claimField", field); const response = await this.axios.get( - `/api/v2/settings/idpsync/field-values?${params}`, + `${API_PREFIX}/settings/idpsync/field-values?${params}`, ); return response.data; }; @@ -855,14 +859,14 @@ class ApiMethods { const params = new URLSearchParams(); params.set("claimField", field); const response = await this.axios.get( - `/api/v2/organizations/${organization}/settings/idpsync/field-values?${params}`, + `${API_PREFIX}/organizations/${organization}/settings/idpsync/field-values?${params}`, ); return response.data; }; getTemplate = async (templateId: string): Promise => { const response = await this.axios.get( - `/api/v2/templates/${templateId}`, + `${API_PREFIX}/templates/${templateId}`, ); return response.data; @@ -873,7 +877,7 @@ class ApiMethods { ): Promise => { const params = normalizeGetTemplatesOptions(options); const response = await this.axios.get( - "/api/v2/templates", + `${API_PREFIX}/templates`, { params }, ); @@ -889,7 +893,7 @@ class ApiMethods { ): Promise => { const params = normalizeGetTemplatesOptions(options); const response = await this.axios.get( - `/api/v2/organizations/${organization}/templates`, + `${API_PREFIX}/organizations/${organization}/templates`, { params }, ); @@ -904,7 +908,7 @@ class ApiMethods { name: string, ): Promise => { const response = await this.axios.get( - `/api/v2/organizations/${organization}/templates/${name}`, + `${API_PREFIX}/organizations/${organization}/templates/${name}`, ); return response.data; @@ -914,7 +918,7 @@ class ApiMethods { versionId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/templateversions/${versionId}`, + `${API_PREFIX}/templateversions/${versionId}`, ); return response.data; @@ -924,7 +928,7 @@ class ApiMethods { versionId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/templateversions/${versionId}/resources`, + `${API_PREFIX}/templateversions/${versionId}/resources`, ); return response.data; @@ -938,7 +942,7 @@ class ApiMethods { type VerArray = TypesGen.TemplateVersionVariable[]; const response = await this.axios.get( - `/api/v2/templateversions/${versionId}/variables`, + `${API_PREFIX}/templateversions/${versionId}/variables`, ); return response.data; @@ -948,7 +952,7 @@ class ApiMethods { templateId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/templates/${templateId}/versions`, + `${API_PREFIX}/templates/${templateId}/versions`, ); return response.data; }; @@ -962,7 +966,7 @@ class ApiMethods { versionName: string, ): Promise => { const response = await this.axios.get( - `/api/v2/organizations/${organization}/templates/${templateName}/versions/${versionName}`, + `${API_PREFIX}/organizations/${organization}/templates/${templateName}/versions/${versionName}`, ); return response.data; @@ -978,7 +982,7 @@ class ApiMethods { ) => { try { const response = await this.axios.get( - `/api/v2/organizations/${organization}/templates/${templateName}/versions/${versionName}/previous`, + `${API_PREFIX}/organizations/${organization}/templates/${templateName}/versions/${versionName}/previous`, ); return response.data; @@ -1005,7 +1009,7 @@ class ApiMethods { data: TypesGen.CreateTemplateVersionRequest, ): Promise => { const response = await this.axios.post( - `/api/v2/organizations/${organization}/templateversions`, + `${API_PREFIX}/organizations/${organization}/templateversions`, data, ); @@ -1016,7 +1020,7 @@ class ApiMethods { versionId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/templateversions/${versionId}/external-auth`, + `${API_PREFIX}/templateversions/${versionId}/external-auth`, ); return response.data; @@ -1027,7 +1031,7 @@ class ApiMethods { data: TypesGen.DynamicParametersRequest, ): Promise => { const response = await this.axios.post( - `/api/v2/templateversions/${versionId}/dynamic-parameters/evaluate`, + `${API_PREFIX}/templateversions/${versionId}/dynamic-parameters/evaluate`, data, ); return response.data; @@ -1037,7 +1041,7 @@ class ApiMethods { versionId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/templateversions/${versionId}/rich-parameters`, + `${API_PREFIX}/templateversions/${versionId}/rich-parameters`, ); return response.data; }; @@ -1056,7 +1060,7 @@ class ApiMethods { }, ): WebSocket => { const socket = createWebSocket( - `/api/v2/templateversions/${versionId}/dynamic-parameters`, + `${API_PREFIX}/templateversions/${versionId}/dynamic-parameters`, new URLSearchParams({ user_id: userId }), ); @@ -1084,7 +1088,7 @@ class ApiMethods { data: TypesGen.CreateTemplateRequest, ): Promise => { const response = await this.axios.post( - `/api/v2/organizations/${organization}/templates`, + `${API_PREFIX}/organizations/${organization}/templates`, data, ); @@ -1096,7 +1100,7 @@ class ApiMethods { data: TypesGen.UpdateActiveTemplateVersion, ) => { const response = await this.axios.patch( - `/api/v2/templates/${templateId}/versions`, + `${API_PREFIX}/templates/${templateId}/versions`, data, ); return response.data; @@ -1107,7 +1111,7 @@ class ApiMethods { data: TypesGen.PatchTemplateVersionRequest, ) => { const response = await this.axios.patch( - `/api/v2/templateversions/${templateVersionId}`, + `${API_PREFIX}/templateversions/${templateVersionId}`, data, ); @@ -1116,7 +1120,7 @@ class ApiMethods { archiveTemplateVersion = async (templateVersionId: string) => { const response = await this.axios.post( - `/api/v2/templateversions/${templateVersionId}/archive`, + `${API_PREFIX}/templateversions/${templateVersionId}/archive`, ); return response.data; @@ -1124,7 +1128,7 @@ class ApiMethods { unarchiveTemplateVersion = async (templateVersionId: string) => { const response = await this.axios.post( - `/api/v2/templateversions/${templateVersionId}/unarchive`, + `${API_PREFIX}/templateversions/${templateVersionId}/unarchive`, ); return response.data; }; @@ -1145,7 +1149,7 @@ class ApiMethods { } const response = await this.axios.get( - `/api/v2/files/${fileId}?${params.toString()}`, + `${API_PREFIX}/files/${fileId}?${params.toString()}`, { responseType: "blob", }, @@ -1159,7 +1163,7 @@ class ApiMethods { data: TypesGen.UpdateTemplateMeta, ): Promise => { const response = await this.axios.patch( - `/api/v2/templates/${templateId}`, + `${API_PREFIX}/templates/${templateId}`, data, ); @@ -1173,7 +1177,7 @@ class ApiMethods { deleteTemplate = async (templateId: string): Promise => { const response = await this.axios.delete( - `/api/v2/templates/${templateId}`, + `${API_PREFIX}/templates/${templateId}`, ); return response.data; @@ -1183,7 +1187,7 @@ class ApiMethods { templateId: string, ): Promise => { const response = await this.axios.post( - `/api/v2/templates/${templateId}/prebuilds/invalidate`, + `${API_PREFIX}/templates/${templateId}/prebuilds/invalidate`, ); return response.data; }; @@ -1193,7 +1197,7 @@ class ApiMethods { params?: TypesGen.WorkspaceOptions, ): Promise => { const response = await this.axios.get( - `/api/v2/workspaces/${workspaceId}`, + `${API_PREFIX}/workspaces/${workspaceId}`, { params }, ); @@ -1203,7 +1207,7 @@ class ApiMethods { getWorkspaces = async ( req: TypesGen.WorkspacesRequest, ): Promise => { - const url = getURLWithSearchParams("/api/v2/workspaces", req); + const url = getURLWithSearchParams(`${API_PREFIX}/workspaces`, req); const response = await this.axios.get(url); return response.data; }; @@ -1214,7 +1218,7 @@ class ApiMethods { params?: TypesGen.WorkspaceOptions, ): Promise => { const response = await this.axios.get( - `/api/v2/users/${username}/workspace/${workspaceName}`, + `${API_PREFIX}/users/${username}/workspace/${workspaceName}`, { params }, ); @@ -1227,7 +1231,7 @@ class ApiMethods { buildNumber: number, ): Promise => { const response = await this.axios.get( - `/api/v2/users/${username}/workspace/${workspaceName}/builds/${buildNumber}`, + `${API_PREFIX}/users/${username}/workspace/${workspaceName}/builds/${buildNumber}`, ); return response.data; @@ -1267,7 +1271,7 @@ class ApiMethods { data: TypesGen.CreateWorkspaceBuildRequest, ): Promise => { const response = await this.axios.post( - `/api/v2/workspaces/${workspaceId}/builds`, + `${API_PREFIX}/workspaces/${workspaceId}/builds`, data, ); return response.data; @@ -1277,7 +1281,7 @@ class ApiMethods { templateVersionId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/templateversions/${templateVersionId}/presets`, + `${API_PREFIX}/templateversions/${templateVersionId}/presets`, ); return response.data; }; @@ -1319,7 +1323,7 @@ class ApiMethods { params?: TypesGen.CancelWorkspaceBuildParams, ): Promise => { const response = await this.axios.patch( - `/api/v2/workspacebuilds/${workspaceBuildId}/cancel`, + `${API_PREFIX}/workspacebuilds/${workspaceBuildId}/cancel`, null, { params }, ); @@ -1333,7 +1337,7 @@ class ApiMethods { ): Promise => { const data: TypesGen.UpdateWorkspaceDormancy = { dormant }; const response = await this.axios.put( - `/api/v2/workspaces/${workspaceId}/dormant`, + `${API_PREFIX}/workspaces/${workspaceId}/dormant`, data, ); @@ -1349,7 +1353,7 @@ class ApiMethods { }; const response = await this.axios.put( - `/api/v2/workspaces/${workspaceId}/autoupdates`, + `${API_PREFIX}/workspaces/${workspaceId}/autoupdates`, req, ); @@ -1382,7 +1386,7 @@ class ApiMethods { templateVersionId: string, ): Promise => { const response = await this.axios.patch( - `/api/v2/templateversions/${templateVersionId}/cancel`, + `${API_PREFIX}/templateversions/${templateVersionId}/cancel`, ); return response.data; @@ -1393,7 +1397,7 @@ class ApiMethods { jobId: string, ): Promise => { const response = await this.axios.patch( - `/api/v2/templateversions/${templateVersionId}/dry-run/${jobId}/cancel`, + `${API_PREFIX}/templateversions/${templateVersionId}/dry-run/${jobId}/cancel`, ); return response.data; @@ -1403,7 +1407,7 @@ class ApiMethods { user: TypesGen.CreateUserRequestWithOrgs, ): Promise => { const response = await this.axios.post( - "/api/v2/users", + `${API_PREFIX}/users`, user, ); @@ -1415,7 +1419,7 @@ class ApiMethods { workspace: TypesGen.CreateWorkspaceRequest, ): Promise => { const response = await this.axios.post( - `/api/v2/users/${userId}/workspaces`, + `${API_PREFIX}/users/${userId}/workspaces`, workspace, ); @@ -1426,16 +1430,16 @@ class ApiMethods { workspaceId: string, data: TypesGen.UpdateWorkspaceRequest, ): Promise => { - await this.axios.patch(`/api/v2/workspaces/${workspaceId}`, data); + await this.axios.patch(`${API_PREFIX}/workspaces/${workspaceId}`, data); }; getBuildInfo = async (): Promise => { - const response = await this.axios.get("/api/v2/buildinfo"); + const response = await this.axios.get(`${API_PREFIX}/buildinfo`); return response.data; }; getUpdateCheck = async (): Promise => { - const response = await this.axios.get("/api/v2/updatecheck"); + const response = await this.axios.get(`${API_PREFIX}/updatecheck`); return response.data; }; @@ -1445,7 +1449,7 @@ class ApiMethods { ): Promise => { const payload = JSON.stringify(autostart); await this.axios.put( - `/api/v2/workspaces/${workspaceID}/autostart`, + `${API_PREFIX}/workspaces/${workspaceID}/autostart`, payload, { headers: { ...BASE_CONTENT_TYPE_JSON } }, ); @@ -1456,9 +1460,13 @@ class ApiMethods { ttl: TypesGen.UpdateWorkspaceTTLRequest, ): Promise => { const payload = JSON.stringify(ttl); - await this.axios.put(`/api/v2/workspaces/${workspaceID}/ttl`, payload, { - headers: { ...BASE_CONTENT_TYPE_JSON }, - }); + await this.axios.put( + `${API_PREFIX}/workspaces/${workspaceID}/ttl`, + payload, + { + headers: { ...BASE_CONTENT_TYPE_JSON }, + }, + ); }; updateProfile = async ( @@ -1466,7 +1474,7 @@ class ApiMethods { data: TypesGen.UpdateUserProfileRequest, ): Promise => { const response = await this.axios.put( - `/api/v2/users/${userId}/profile`, + `${API_PREFIX}/users/${userId}/profile`, data, ); return response.data; @@ -1474,27 +1482,37 @@ class ApiMethods { getAppearanceSettings = async (): Promise => { - const response = await this.axios.get("/api/v2/users/me/appearance"); + const response = await this.axios.get( + `${API_PREFIX}/users/me/appearance`, + ); return response.data; }; updateAppearanceSettings = async ( data: TypesGen.UpdateUserAppearanceSettingsRequest, ): Promise => { - const response = await this.axios.put("/api/v2/users/me/appearance", data); + const response = await this.axios.put( + `${API_PREFIX}/users/me/appearance`, + data, + ); return response.data; }; getUserPreferenceSettings = async (): Promise => { - const response = await this.axios.get("/api/v2/users/me/preferences"); + const response = await this.axios.get( + `${API_PREFIX}/users/me/preferences`, + ); return response.data; }; updateUserPreferenceSettings = async ( req: TypesGen.UpdateUserPreferenceSettingsRequest, ): Promise => { - const response = await this.axios.put("/api/v2/users/me/preferences", req); + const response = await this.axios.put( + `${API_PREFIX}/users/me/preferences`, + req, + ); return response.data; }; @@ -1502,7 +1520,7 @@ class ApiMethods { userId: TypesGen.User["id"], ): Promise => { const response = await this.axios.get( - `/api/v2/users/${userId}/quiet-hours`, + `${API_PREFIX}/users/${userId}/quiet-hours`, ); return response.data; }; @@ -1512,7 +1530,7 @@ class ApiMethods { data: TypesGen.UpdateUserQuietHoursScheduleRequest, ): Promise => { const response = await this.axios.put( - `/api/v2/users/${userId}/quiet-hours`, + `${API_PREFIX}/users/${userId}/quiet-hours`, data, ); @@ -1523,21 +1541,21 @@ class ApiMethods { userId: TypesGen.User["id"], ): Promise => { const response = await this.axios.put( - `/api/v2/users/${userId}/status/activate`, + `${API_PREFIX}/users/${userId}/status/activate`, ); return response.data; }; suspendUser = async (userId: TypesGen.User["id"]): Promise => { const response = await this.axios.put( - `/api/v2/users/${userId}/status/suspend`, + `${API_PREFIX}/users/${userId}/status/suspend`, ); return response.data; }; deleteUser = async (userId: TypesGen.User["id"]): Promise => { - await this.axios.delete(`/api/v2/users/${userId}`); + await this.axios.delete(`${API_PREFIX}/users/${userId}`); }; // API definition: @@ -1545,7 +1563,7 @@ class ApiMethods { hasFirstUser = async (): Promise => { try { // If it is success, it is true - await this.axios.get("/api/v2/users/first"); + await this.axios.get(`${API_PREFIX}/users/first`); return true; } catch (error) { // If it returns a 404, it is false @@ -1560,7 +1578,7 @@ class ApiMethods { createFirstUser = async ( req: TypesGen.CreateFirstUserRequest, ): Promise => { - const response = await this.axios.post("/api/v2/users/first", req); + const response = await this.axios.post(`${API_PREFIX}/users/first`, req); return response.data; }; @@ -1568,21 +1586,27 @@ class ApiMethods { userId: TypesGen.User["id"], updatePassword: TypesGen.UpdateUserPasswordRequest, ): Promise => { - await this.axios.put(`/api/v2/users/${userId}/password`, updatePassword); + await this.axios.put( + `${API_PREFIX}/users/${userId}/password`, + updatePassword, + ); }; validateUserPassword = async ( password: string, ): Promise => { - const response = await this.axios.post("/api/v2/users/validate-password", { - password, - }); + const response = await this.axios.post( + `${API_PREFIX}/users/validate-password`, + { + password, + }, + ); return response.data; }; getRoles = async (): Promise> => { const response = await this.axios.get( - "/api/v2/users/roles", + `${API_PREFIX}/users/roles`, ); return response.data; @@ -1593,7 +1617,7 @@ class ApiMethods { userId: TypesGen.User["id"], ): Promise => { const response = await this.axios.put( - `/api/v2/users/${userId}/roles`, + `${API_PREFIX}/users/${userId}/roles`, { roles }, ); @@ -1602,7 +1626,7 @@ class ApiMethods { getUserSSHKey = async (userId = "me"): Promise => { const response = await this.axios.get( - `/api/v2/users/${userId}/gitsshkey`, + `${API_PREFIX}/users/${userId}/gitsshkey`, ); return response.data; @@ -1610,7 +1634,7 @@ class ApiMethods { regenerateUserSSHKey = async (userId = "me"): Promise => { const response = await this.axios.put( - `/api/v2/users/${userId}/gitsshkey`, + `${API_PREFIX}/users/${userId}/gitsshkey`, ); return response.data; @@ -1621,7 +1645,10 @@ class ApiMethods { req?: TypesGen.WorkspaceBuildsRequest, ) => { const response = await this.axios.get( - getURLWithSearchParams(`/api/v2/workspaces/${workspaceId}/builds`, req), + getURLWithSearchParams( + `${API_PREFIX}/workspaces/${workspaceId}/builds`, + req, + ), ); return response.data; @@ -1631,7 +1658,7 @@ class ApiMethods { buildId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/workspacebuilds/${buildId}/logs`, + `${API_PREFIX}/workspacebuilds/${buildId}/logs`, ); return response.data; @@ -1641,7 +1668,7 @@ class ApiMethods { agentID: string, ): Promise => { const response = await this.axios.get( - `/api/v2/workspaceagents/${agentID}/logs`, + `${API_PREFIX}/workspaceagents/${agentID}/logs`, ); return response.data; @@ -1651,19 +1678,19 @@ class ApiMethods { workspaceId: string, newDeadline: dayjs.Dayjs, ): Promise => { - await this.axios.put(`/api/v2/workspaces/${workspaceId}/extend`, { + await this.axios.put(`${API_PREFIX}/workspaces/${workspaceId}/extend`, { deadline: newDeadline, }); }; refreshEntitlements = async (): Promise => { - await this.axios.post("/api/v2/licenses/refresh-entitlements"); + await this.axios.post(`${API_PREFIX}/licenses/refresh-entitlements`); }; getEntitlements = async (): Promise => { try { const response = await this.axios.get( - "/api/v2/entitlements", + `${API_PREFIX}/entitlements`, ); return response.data; @@ -1686,7 +1713,7 @@ class ApiMethods { getExperiments = async (): Promise => { try { const response = await this.axios.get( - "/api/v2/experiments", + `${API_PREFIX}/experiments`, ); return response.data; @@ -1702,7 +1729,9 @@ class ApiMethods { getAvailableExperiments = async (): Promise => { try { - const response = await this.axios.get("/api/v2/experiments/available"); + const response = await this.axios.get( + `${API_PREFIX}/experiments/available`, + ); return response.data; } catch (error) { @@ -1716,7 +1745,7 @@ class ApiMethods { getExternalAuthProvider = async ( provider: string, ): Promise => { - const res = await this.axios.get(`/api/v2/external-auth/${provider}`); + const res = await this.axios.get(`${API_PREFIX}/external-auth/${provider}`); return res.data; }; @@ -1724,7 +1753,7 @@ class ApiMethods { provider: string, ): Promise => { const resp = await this.axios.get( - `/api/v2/external-auth/${provider}/device`, + `${API_PREFIX}/external-auth/${provider}/device`, ); return resp.data; }; @@ -1734,7 +1763,7 @@ class ApiMethods { req: TypesGen.ExternalAuthDeviceExchange, ): Promise => { const resp = await this.axios.post( - `/api/v2/external-auth/${provider}/device`, + `${API_PREFIX}/external-auth/${provider}/device`, req, ); @@ -1743,14 +1772,16 @@ class ApiMethods { getUserExternalAuthProviders = async (): Promise => { - const resp = await this.axios.get("/api/v2/external-auth"); + const resp = await this.axios.get(`${API_PREFIX}/external-auth`); return resp.data; }; unlinkExternalAuthProvider = async ( provider: string, ): Promise => { - const resp = await this.axios.delete(`/api/v2/external-auth/${provider}`); + const resp = await this.axios.delete( + `${API_PREFIX}/external-auth/${provider}`, + ); return resp.data; }; @@ -1759,7 +1790,7 @@ class ApiMethods { state: string, ): Promise => { const resp = await this.axios.get( - `/api/v2/users/oauth2/github/callback?code=${code}&state=${state}`, + `${API_PREFIX}/users/oauth2/github/callback?code=${code}&state=${state}`, ); // sanity check if ( @@ -1773,7 +1804,9 @@ class ApiMethods { }; getOAuth2GitHubDevice = async (): Promise => { - const resp = await this.axios.get("/api/v2/users/oauth2/github/device"); + const resp = await this.axios.get( + `${API_PREFIX}/users/oauth2/github/device`, + ); return resp.data; }; @@ -1784,14 +1817,18 @@ class ApiMethods { ? new URLSearchParams({ user_id: filter.user_id }).toString() : ""; - const resp = await this.axios.get(`/api/v2/oauth2-provider/apps?${params}`); + const resp = await this.axios.get( + `${API_PREFIX}/oauth2-provider/apps?${params}`, + ); return resp.data; }; getOAuth2ProviderApp = async ( id: string, ): Promise => { - const resp = await this.axios.get(`/api/v2/oauth2-provider/apps/${id}`); + const resp = await this.axios.get( + `${API_PREFIX}/oauth2-provider/apps/${id}`, + ); return resp.data; }; @@ -1799,7 +1836,7 @@ class ApiMethods { data: TypesGen.PostOAuth2ProviderAppRequest, ): Promise => { const response = await this.axios.post( - "/api/v2/oauth2-provider/apps", + `${API_PREFIX}/oauth2-provider/apps`, data, ); return response.data; @@ -1810,21 +1847,21 @@ class ApiMethods { data: TypesGen.PutOAuth2ProviderAppRequest, ): Promise => { const response = await this.axios.put( - `/api/v2/oauth2-provider/apps/${id}`, + `${API_PREFIX}/oauth2-provider/apps/${id}`, data, ); return response.data; }; deleteOAuth2ProviderApp = async (id: string): Promise => { - await this.axios.delete(`/api/v2/oauth2-provider/apps/${id}`); + await this.axios.delete(`${API_PREFIX}/oauth2-provider/apps/${id}`); }; getOAuth2ProviderAppSecrets = async ( id: string, ): Promise => { const resp = await this.axios.get( - `/api/v2/oauth2-provider/apps/${id}/secrets`, + `${API_PREFIX}/oauth2-provider/apps/${id}/secrets`, ); return resp.data; }; @@ -1833,7 +1870,7 @@ class ApiMethods { id: string, ): Promise => { const resp = await this.axios.post( - `/api/v2/oauth2-provider/apps/${id}/secrets`, + `${API_PREFIX}/oauth2-provider/apps/${id}/secrets`, ); return resp.data; }; @@ -1843,7 +1880,7 @@ class ApiMethods { secretId: string, ): Promise => { await this.axios.delete( - `/api/v2/oauth2-provider/apps/${appId}/secrets/${secretId}`, + `${API_PREFIX}/oauth2-provider/apps/${appId}/secrets/${secretId}`, ); }; @@ -1854,7 +1891,7 @@ class ApiMethods { getAuditLogs = async ( options: TypesGen.AuditLogsRequest, ): Promise => { - const url = getURLWithSearchParams("/api/v2/audit", options); + const url = getURLWithSearchParams(`${API_PREFIX}/audit`, options); const response = await this.axios.get(url); return response.data; }; @@ -1862,7 +1899,7 @@ class ApiMethods { getConnectionLogs = async ( options: TypesGen.ConnectionLogsRequest, ): Promise => { - const url = getURLWithSearchParams("/api/v2/connectionlog", options); + const url = getURLWithSearchParams(`${API_PREFIX}/connectionlog`, options); const response = await this.axios.get(url); return response.data; }; @@ -1871,7 +1908,7 @@ class ApiMethods { templateId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/templates/${templateId}/daus`, + `${API_PREFIX}/templates/${templateId}/daus`, ); return response.data; @@ -1884,7 +1921,7 @@ class ApiMethods { offset = Math.trunc(new Date().getTimezoneOffset() / 60), ): Promise => { const response = await this.axios.get( - `/api/v2/insights/daus?tz_offset=${offset}`, + `${API_PREFIX}/insights/daus?tz_offset=${offset}`, ); return response.data; @@ -1895,7 +1932,7 @@ class ApiMethods { options: TypesGen.UsersRequest, ): Promise => { const url = getURLWithSearchParams( - `/api/v2/templates/${templateId}/acl/available`, + `${API_PREFIX}/templates/${templateId}/acl/available`, options, ).toString(); @@ -1907,7 +1944,7 @@ class ApiMethods { templateId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/templates/${templateId}/acl`, + `${API_PREFIX}/templates/${templateId}/acl`, ); return response.data; @@ -1918,7 +1955,7 @@ class ApiMethods { data: TypesGen.UpdateTemplateACL, ): Promise<{ message: string }> => { const response = await this.axios.patch( - `/api/v2/templates/${templateId}/acl`, + `${API_PREFIX}/templates/${templateId}/acl`, data, ); @@ -1929,7 +1966,7 @@ class ApiMethods { workspaceId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/workspaces/${workspaceId}/acl`, + `${API_PREFIX}/workspaces/${workspaceId}/acl`, ); return response.data; @@ -1939,11 +1976,11 @@ class ApiMethods { workspaceId: string, data: TypesGen.UpdateWorkspaceACL, ): Promise => { - await this.axios.patch(`/api/v2/workspaces/${workspaceId}/acl`, data); + await this.axios.patch(`${API_PREFIX}/workspaces/${workspaceId}/acl`, data); }; getApplicationsHost = async (): Promise => { - const response = await this.axios.get("/api/v2/applications/host"); + const response = await this.axios.get(`${API_PREFIX}/applications/host`); return response.data; }; @@ -1955,7 +1992,7 @@ class ApiMethods { params.has_member = options.userId; } - const response = await this.axios.get("/api/v2/groups", { params }); + const response = await this.axios.get(`${API_PREFIX}/groups`, { params }); return response.data; }; @@ -1966,7 +2003,7 @@ class ApiMethods { organization: string, ): Promise => { const response = await this.axios.get( - `/api/v2/organizations/${organization}/groups`, + `${API_PREFIX}/organizations/${organization}/groups`, ); return response.data; }; @@ -1979,7 +2016,7 @@ class ApiMethods { data: TypesGen.CreateGroupRequest, ): Promise => { const response = await this.axios.post( - `/api/v2/organizations/${organization}/groups`, + `${API_PREFIX}/organizations/${organization}/groups`, data, ); return response.data; @@ -1993,7 +2030,7 @@ class ApiMethods { groupName: string, ): Promise => { const response = await this.axios.get( - `/api/v2/organizations/${organization}/groups/${groupName}`, + `${API_PREFIX}/organizations/${organization}/groups/${groupName}`, ); return response.data; }; @@ -2002,7 +2039,10 @@ class ApiMethods { groupId: string, data: TypesGen.PatchGroupRequest, ): Promise => { - const response = await this.axios.patch(`/api/v2/groups/${groupId}`, data); + const response = await this.axios.patch( + `${API_PREFIX}/groups/${groupId}`, + data, + ); return response.data; }; @@ -2029,7 +2069,7 @@ class ApiMethods { }; deleteGroup = async (groupId: string): Promise => { - await this.axios.delete(`/api/v2/groups/${groupId}`); + await this.axios.delete(`${API_PREFIX}/groups/${groupId}`); }; getWorkspaceQuota = async ( @@ -2037,7 +2077,7 @@ class ApiMethods { username: string, ): Promise => { const response = await this.axios.get( - `/api/v2/organizations/${encodeURIComponent(organizationName)}/members/${encodeURIComponent(username)}/workspace-quota`, + `${API_PREFIX}/organizations/${encodeURIComponent(organizationName)}/members/${encodeURIComponent(username)}/workspace-quota`, ); return response.data; @@ -2047,7 +2087,7 @@ class ApiMethods { agentID: string, ): Promise => { const response = await this.axios.get( - `/api/v2/workspaceagents/${agentID}/listening-ports`, + `${API_PREFIX}/workspaceagents/${agentID}/listening-ports`, ); return response.data; }; @@ -2056,7 +2096,7 @@ class ApiMethods { workspaceID: string, ): Promise => { const response = await this.axios.get( - `/api/v2/workspaces/${workspaceID}/port-share`, + `${API_PREFIX}/workspaces/${workspaceID}/port-share`, ); return response.data; }; @@ -2066,7 +2106,7 @@ class ApiMethods { agentName: string, ): Promise => { const response = await this.axios.get( - `/api/v2/workspaces/${workspaceID}/external-agent/${agentName}/credentials`, + `${API_PREFIX}/workspaces/${workspaceID}/external-agent/${agentName}/credentials`, ); return response.data; }; @@ -2076,7 +2116,7 @@ class ApiMethods { req: TypesGen.UpsertWorkspaceAgentPortShareRequest, ): Promise => { const response = await this.axios.post( - `/api/v2/workspaces/${workspaceID}/port-share`, + `${API_PREFIX}/workspaces/${workspaceID}/port-share`, req, ); return response.data; @@ -2087,7 +2127,7 @@ class ApiMethods { req: TypesGen.DeleteWorkspaceAgentPortShareRequest, ): Promise => { const response = await this.axios.delete( - `/api/v2/workspaces/${workspaceID}/port-share`, + `${API_PREFIX}/workspaces/${workspaceID}/port-share`, { data: req }, ); @@ -2096,28 +2136,28 @@ class ApiMethods { // getDeploymentSSHConfig is used by the VSCode-Extension. getDeploymentSSHConfig = async (): Promise => { - const response = await this.axios.get("/api/v2/deployment/ssh"); + const response = await this.axios.get(`${API_PREFIX}/deployment/ssh`); return response.data; }; getDeploymentConfig = async (): Promise => { - const response = await this.axios.get("/api/v2/deployment/config"); + const response = await this.axios.get(`${API_PREFIX}/deployment/config`); return response.data; }; getDeploymentStats = async (): Promise => { - const response = await this.axios.get("/api/v2/deployment/stats"); + const response = await this.axios.get(`${API_PREFIX}/deployment/stats`); return response.data; }; getReplicas = async (): Promise => { - const response = await this.axios.get("/api/v2/replicas"); + const response = await this.axios.get(`${API_PREFIX}/replicas`); return response.data; }; getFile = async (fileId: string): Promise => { const response = await this.axios.get( - `/api/v2/files/${fileId}`, + `${API_PREFIX}/files/${fileId}`, { responseType: "arraybuffer" }, ); @@ -2127,10 +2167,9 @@ class ApiMethods { getWorkspaceProxyRegions = async (): Promise< TypesGen.RegionsResponse > => { - const response = - await this.axios.get>( - "/api/v2/regions", - ); + const response = await this.axios.get< + TypesGen.RegionsResponse + >(`${API_PREFIX}/regions`); return response.data; }; @@ -2140,7 +2179,7 @@ class ApiMethods { > => { const response = await this.axios.get< TypesGen.RegionsResponse - >("/api/v2/workspaceproxies"); + >(`${API_PREFIX}/workspaceproxies`); return response.data; }; @@ -2148,13 +2187,13 @@ class ApiMethods { createWorkspaceProxy = async ( b: TypesGen.CreateWorkspaceProxyRequest, ): Promise => { - const response = await this.axios.post("/api/v2/workspaceproxies", b); + const response = await this.axios.post(`${API_PREFIX}/workspaceproxies`, b); return response.data; }; getAppearance = async (): Promise => { try { - const response = await this.axios.get("/api/v2/appearance"); + const response = await this.axios.get(`${API_PREFIX}/appearance`); return response.data || {}; } catch (ex) { if (isAxiosError(ex) && ex.response?.status === 404) { @@ -2176,7 +2215,7 @@ class ApiMethods { updateAppearance = async ( b: TypesGen.AppearanceConfig, ): Promise => { - const response = await this.axios.put("/api/v2/appearance", b); + const response = await this.axios.put(`${API_PREFIX}/appearance`, b); return response.data; }; @@ -2184,13 +2223,13 @@ class ApiMethods { * @param organization Can be the organization's ID or name */ getTemplateExamples = async (): Promise => { - const response = await this.axios.get("/api/v2/templates/examples"); + const response = await this.axios.get(`${API_PREFIX}/templates/examples`); return response.data; }; uploadFile = async (file: File): Promise => { - const response = await this.axios.post("/api/v2/files", file, { + const response = await this.axios.post(`${API_PREFIX}/files`, file, { headers: { "Content-Type": file.type }, }); @@ -2201,7 +2240,7 @@ class ApiMethods { versionId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/templateversions/${versionId}/logs`, + `${API_PREFIX}/templateversions/${versionId}/logs`, ); return response.data; }; @@ -2217,26 +2256,26 @@ class ApiMethods { workspaceBuildId: TypesGen.WorkspaceBuild["id"], ): Promise => { const response = await this.axios.get( - `/api/v2/workspacebuilds/${workspaceBuildId}/parameters`, + `${API_PREFIX}/workspacebuilds/${workspaceBuildId}/parameters`, ); return response.data; }; getLicenses = async (): Promise => { - const response = await this.axios.get("/api/v2/licenses"); + const response = await this.axios.get(`${API_PREFIX}/licenses`); return response.data; }; createLicense = async ( data: TypesGen.AddLicenseRequest, ): Promise => { - const response = await this.axios.post("/api/v2/licenses", data); + const response = await this.axios.post(`${API_PREFIX}/licenses`, data); return response.data; }; removeLicense = async (licenseId: number): Promise => { - await this.axios.delete(`/api/v2/licenses/${licenseId}`); + await this.axios.delete(`${API_PREFIX}/licenses/${licenseId}`); }; getDynamicParameters = async ( @@ -2403,7 +2442,7 @@ class ApiMethods { workspaceId: string, ): Promise => { const response = await this.axios.get( - `/api/v2/workspaces/${workspaceId}/resolve-autostart`, + `${API_PREFIX}/workspaces/${workspaceId}/resolve-autostart`, ); return response.data; }; @@ -2412,7 +2451,7 @@ class ApiMethods { params: TypesGen.IssueReconnectingPTYSignedTokenRequest, ): Promise => { const response = await this.axios.post( - "/api/v2/applications/reconnecting-pty-signed-token", + `${API_PREFIX}/applications/reconnecting-pty-signed-token`, params, ); @@ -2424,7 +2463,7 @@ class ApiMethods { ): Promise => { const params = new URLSearchParams(filters); const response = await this.axios.get( - `/api/v2/insights/user-latency?${params}`, + `${API_PREFIX}/insights/user-latency?${params}`, ); return response.data; @@ -2435,7 +2474,7 @@ class ApiMethods { ): Promise => { const params = new URLSearchParams(filters); const response = await this.axios.get( - `/api/v2/insights/user-activity?${params}`, + `${API_PREFIX}/insights/user-activity?${params}`, ); return response.data; @@ -2448,7 +2487,7 @@ class ApiMethods { tz_offset: offset.toString(), }); const response = await this.axios.get( - `/api/v2/insights/user-status-counts?${searchParams}`, + `${API_PREFIX}/insights/user-status-counts?${searchParams}`, ); return response.data; @@ -2459,7 +2498,7 @@ class ApiMethods { ): Promise => { const searchParams = new URLSearchParams(params); const response = await this.axios.get( - `/api/v2/insights/templates?${searchParams}`, + `${API_PREFIX}/insights/templates?${searchParams}`, ); return response.data; @@ -2468,14 +2507,14 @@ class ApiMethods { getHealth = async (force = false) => { const params = new URLSearchParams({ force: force.toString() }); const response = await this.axios.get( - `/api/v2/debug/health?${params}`, + `${API_PREFIX}/debug/health?${params}`, ); return response.data; }; getHealthSettings = async (): Promise => { const res = await this.axios.get( - "/api/v2/debug/health/settings", + `${API_PREFIX}/debug/health/settings`, ); return res.data; @@ -2483,7 +2522,7 @@ class ApiMethods { updateHealthSettings = async (data: TypesGen.UpdateHealthSettings) => { const response = await this.axios.put( - "/api/v2/debug/health/settings", + `${API_PREFIX}/debug/health/settings`, data, ); @@ -2491,11 +2530,11 @@ class ApiMethods { }; putFavoriteWorkspace = async (workspaceID: string) => { - await this.axios.put(`/api/v2/workspaces/${workspaceID}/favorite`); + await this.axios.put(`${API_PREFIX}/workspaces/${workspaceID}/favorite`); }; deleteFavoriteWorkspace = async (workspaceID: string) => { - await this.axios.delete(`/api/v2/workspaces/${workspaceID}/favorite`); + await this.axios.delete(`${API_PREFIX}/workspaces/${workspaceID}/favorite`); }; postWorkspaceUsage = async ( @@ -2503,7 +2542,7 @@ class ApiMethods { options: PostWorkspaceUsageRequest, ) => { const response = await this.axios.post( - `/api/v2/workspaces/${workspaceID}/usage`, + `${API_PREFIX}/workspaces/${workspaceID}/usage`, options, ); @@ -2512,7 +2551,7 @@ class ApiMethods { getUserNotificationPreferences = async (userId: string) => { const res = await this.axios.get( - `/api/v2/users/${userId}/notifications/preferences`, + `${API_PREFIX}/users/${userId}/notifications/preferences`, ); return res.data ?? []; }; @@ -2522,7 +2561,7 @@ class ApiMethods { req: TypesGen.UpdateUserNotificationPreferences, ) => { const res = await this.axios.put( - `/api/v2/users/${userId}/notifications/preferences`, + `${API_PREFIX}/users/${userId}/notifications/preferences`, req, ); return res.data; @@ -2530,21 +2569,21 @@ class ApiMethods { getSystemNotificationTemplates = async () => { const res = await this.axios.get( - "/api/v2/notifications/templates/system", + `${API_PREFIX}/notifications/templates/system`, ); return res.data; }; getCustomNotificationTemplates = async () => { const res = await this.axios.get( - "/api/v2/notifications/templates/custom", + `${API_PREFIX}/notifications/templates/custom`, ); return res.data; }; getNotificationDispatchMethods = async () => { const res = await this.axios.get( - "/api/v2/notifications/dispatch-methods", + `${API_PREFIX}/notifications/dispatch-methods`, ); return res.data; }; @@ -2554,14 +2593,14 @@ class ApiMethods { req: TypesGen.UpdateNotificationTemplateMethod, ) => { const res = await this.axios.put( - `/api/v2/notifications/templates/${templateId}/method`, + `${API_PREFIX}/notifications/templates/${templateId}/method`, req, ); return res.data; }; postTestNotification = async () => { - await this.axios.post("/api/v2/notifications/test"); + await this.axios.post(`${API_PREFIX}/notifications/test`); }; createWebPushSubscription = async ( @@ -2569,7 +2608,7 @@ class ApiMethods { req: TypesGen.WebpushSubscription, ) => { await this.axios.post( - `/api/v2/users/${userId}/webpush/subscription`, + `${API_PREFIX}/users/${userId}/webpush/subscription`, req, ); }; @@ -2579,7 +2618,7 @@ class ApiMethods { req: TypesGen.DeleteWebpushSubscription, ) => { await this.axios.delete( - `/api/v2/users/${userId}/webpush/subscription`, + `${API_PREFIX}/users/${userId}/webpush/subscription`, { data: req, }, @@ -2589,18 +2628,18 @@ class ApiMethods { requestOneTimePassword = async ( req: TypesGen.RequestOneTimePasscodeRequest, ) => { - await this.axios.post("/api/v2/users/otp/request", req); + await this.axios.post(`${API_PREFIX}/users/otp/request`, req); }; changePasswordWithOTP = async ( req: TypesGen.ChangePasswordWithOneTimePasscodeRequest, ) => { - await this.axios.post("/api/v2/users/otp/change-password", req); + await this.axios.post(`${API_PREFIX}/users/otp/change-password`, req); }; workspaceBuildTimings = async (workspaceBuildId: string) => { const res = await this.axios.get( - `/api/v2/workspacebuilds/${workspaceBuildId}/timings`, + `${API_PREFIX}/workspacebuilds/${workspaceBuildId}/timings`, ); return res.data; }; @@ -2610,7 +2649,7 @@ class ApiMethods { params: GetProvisionerJobsParams = {}, ) => { const res = await this.axios.get( - `/api/v2/organizations/${orgId}/provisionerjobs`, + `${API_PREFIX}/organizations/${orgId}/provisionerjobs`, { params }, ); return res.data; @@ -2647,7 +2686,7 @@ class ApiMethods { ); const res = await this.axios.get( - `/api/v2/workspaceagents/${agentId}/containers?${params.toString()}`, + `${API_PREFIX}/workspaceagents/${agentId}/containers?${params.toString()}`, ); return res.data; }; @@ -2658,7 +2697,7 @@ class ApiMethods { params.append("starting_before", startingBeforeId); } const res = await this.axios.get( - `/api/v2/notifications/inbox?${params.toString()}`, + `${API_PREFIX}/notifications/inbox?${params.toString()}`, ); return res.data; }; @@ -2669,14 +2708,16 @@ class ApiMethods { ) => { const res = await this.axios.put( - `/api/v2/notifications/inbox/${notificationId}/read-status`, + `${API_PREFIX}/notifications/inbox/${notificationId}/read-status`, req, ); return res.data; }; markAllInboxNotificationsAsRead = async () => { - await this.axios.put("/api/v2/notifications/inbox/mark-all-as-read"); + await this.axios.put( + `${API_PREFIX}/notifications/inbox/mark-all-as-read`, + ); }; createTask = async ( @@ -2684,7 +2725,7 @@ class ApiMethods { req: TypesGen.CreateTaskRequest, ): Promise => { const response = await this.axios.post( - `/api/v2/tasks/${user}`, + `${API_PREFIX}/tasks/${user}`, req, ); @@ -2703,7 +2744,7 @@ class ApiMethods { } const res = await this.axios.get( - "/api/v2/tasks", + `${API_PREFIX}/tasks`, { params: { q: query.join(", "), @@ -2716,14 +2757,14 @@ class ApiMethods { getTask = async (user: string, id: string): Promise => { const response = await this.axios.get( - `/api/v2/tasks/${user}/${id}`, + `${API_PREFIX}/tasks/${user}/${id}`, ); return response.data; }; deleteTask = async (user: string, id: string): Promise => { - await this.axios.delete(`/api/v2/tasks/${user}/${id}`); + await this.axios.delete(`${API_PREFIX}/tasks/${user}/${id}`); }; updateTaskInput = async ( @@ -2731,7 +2772,7 @@ class ApiMethods { id: string, input: string, ): Promise => { - await this.axios.patch(`/api/v2/tasks/${user}/${id}/input`, { + await this.axios.patch(`${API_PREFIX}/tasks/${user}/${id}/input`, { input, } satisfies TypesGen.UpdateTaskInputRequest); }; @@ -2744,26 +2785,10 @@ class ApiMethods { setTimeout(() => res(), 500); }); }; -} - -export type TaskFeedbackRating = "good" | "okay" | "bad"; - -export type CreateTaskFeedbackRequest = { - rate: TaskFeedbackRating; - comment?: string; -}; - -// Experimental API methods call endpoints under the /api/experimental/ prefix. -// These endpoints are not stable and may change or be removed at any time. -// -// All methods must be defined with arrow function syntax. See the docstring -// above the ApiMethods class for a full explanation. -class ExperimentalApiMethods { - constructor(protected readonly axios: AxiosInstance) {} getAIBridgeInterceptions = async (options: SearchParamOptions) => { const url = getURLWithSearchParams( - "/api/experimental/aibridge/interceptions", + `${API_PREFIX}/aibridge/interceptions`, options, ); const response = @@ -2773,7 +2798,7 @@ class ExperimentalApiMethods { getAIBridgeModels = async (options: SearchParamOptions) => { const url = getURLWithSearchParams( - "/api/experimental/aibridge/models", + `${API_PREFIX}/aibridge/models`, options, ); @@ -2782,6 +2807,22 @@ class ExperimentalApiMethods { }; } +export type TaskFeedbackRating = "good" | "okay" | "bad"; + +export type CreateTaskFeedbackRequest = { + rate: TaskFeedbackRating; + comment?: string; +}; + +// Experimental API methods call endpoints under the /api/experimental/ prefix. +// These endpoints are not stable and may change or be removed at any time. +// +// All methods must be defined with arrow function syntax. See the docstring +// above the ApiMethods class for a full explanation. +class ExperimentalApiMethods { + constructor(protected readonly axios: AxiosInstance) {} +} + // This is a hard coded CSRF token/cookie pair for local development. In prod, // the GoLang webserver generates a random cookie with a new token for each // document request. For local development, we don't use the Go webserver for diff --git a/site/src/api/queries/aiBridge.ts b/site/src/api/queries/aiBridge.ts index 1e385bc464564..987555aabcffd 100644 --- a/site/src/api/queries/aiBridge.ts +++ b/site/src/api/queries/aiBridge.ts @@ -13,7 +13,7 @@ export const paginatedInterceptions = ( return ["aiBridgeInterceptions", payload, pageNumber] as const; }, queryFn: ({ limit, offset, payload }) => - API.experimental.getAIBridgeInterceptions({ + API.getAIBridgeInterceptions({ offset, limit, q: payload, diff --git a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx index 50df1339ee4d1..cdebd924ef635 100644 --- a/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx +++ b/site/src/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ModelFilter.tsx @@ -17,7 +17,7 @@ export const useModelFilterMenu = ({ return useFilterMenu({ id: "model", getSelectedOption: async () => { - const modelsRes = await API.experimental.getAIBridgeModels({ + const modelsRes = await API.getAIBridgeModels({ q: value, limit: 1, }); @@ -33,7 +33,7 @@ export const useModelFilterMenu = ({ return null; }, getOptions: async (query) => { - const modelsRes = await API.experimental.getAIBridgeModels({ + const modelsRes = await API.getAIBridgeModels({ q: query, limit: 25, });