From 17bb09a8bad7713f1fd6bc4c93e420725f593b5d Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Thu, 9 Feb 2023 14:45:06 +0100 Subject: [PATCH] docs: Add missing body parameter --- coderd/apidoc/docs.go | 47 ++++++++++++++++++++++++++++++++++++++ coderd/apidoc/swagger.json | 42 ++++++++++++++++++++++++++++++++++ coderd/workspaces.go | 2 ++ docs/api/schemas.md | 37 ++++++++++++++++++++++++++++++ docs/api/workspaces.md | 36 +++++++++++++++++++++++++---- 5 files changed, 160 insertions(+), 4 deletions(-) diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index 2559e1e0ed619..36596fa706242 100644 --- a/coderd/apidoc/docs.go +++ b/coderd/apidoc/docs.go @@ -1066,6 +1066,9 @@ const docTemplate = `{ "CoderSessionToken": [] } ], + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -1089,6 +1092,15 @@ const docTemplate = `{ "name": "user", "in": "path", "required": true + }, + { + "description": "Create workspace request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.CreateWorkspaceRequest" + } } ], "responses": { @@ -5902,6 +5914,41 @@ const docTemplate = `{ } } }, + "codersdk.CreateWorkspaceRequest": { + "type": "object", + "required": [ + "name", + "template_id" + ], + "properties": { + "autostart_schedule": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parameter_values": { + "description": "ParameterValues allows for additional parameters to be provided\nduring the initial provision.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.CreateParameterRequest" + } + }, + "rich_parameter_values": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceBuildParameter" + } + }, + "template_id": { + "type": "string", + "format": "uuid" + }, + "ttl_ms": { + "type": "integer" + } + } + }, "codersdk.DAUEntry": { "type": "object", "properties": { diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index 97acc0d3e3f36..b6452ba5911d9 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -924,6 +924,7 @@ "CoderSessionToken": [] } ], + "consumes": ["application/json"], "produces": ["application/json"], "tags": ["Workspaces"], "summary": "Create user workspace by organization", @@ -943,6 +944,15 @@ "name": "user", "in": "path", "required": true + }, + { + "description": "Create workspace request", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.CreateWorkspaceRequest" + } } ], "responses": { @@ -5231,6 +5241,38 @@ } } }, + "codersdk.CreateWorkspaceRequest": { + "type": "object", + "required": ["name", "template_id"], + "properties": { + "autostart_schedule": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parameter_values": { + "description": "ParameterValues allows for additional parameters to be provided\nduring the initial provision.", + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.CreateParameterRequest" + } + }, + "rich_parameter_values": { + "type": "array", + "items": { + "$ref": "#/definitions/codersdk.WorkspaceBuildParameter" + } + }, + "template_id": { + "type": "string", + "format": "uuid" + }, + "ttl_ms": { + "type": "integer" + } + } + }, "codersdk.DAUEntry": { "type": "object", "properties": { diff --git a/coderd/workspaces.go b/coderd/workspaces.go index 972647a73df34..f945cf39cf4bc 100644 --- a/coderd/workspaces.go +++ b/coderd/workspaces.go @@ -271,10 +271,12 @@ func (api *API) workspaceByOwnerAndName(rw http.ResponseWriter, r *http.Request) // @Summary Create user workspace by organization // @ID create-user-workspace-by-organization // @Security CoderSessionToken +// @Accept json // @Produce json // @Tags Workspaces // @Param organization path string true "Organization ID" format(uuid) // @Param user path string true "Username, UUID, or me" +// @Param request body codersdk.CreateWorkspaceRequest true "Create workspace request" // @Success 200 {object} codersdk.Workspace // @Router /organizations/{organization}/members/{user}/workspaces [post] func (api *API) postWorkspacesByOrganization(rw http.ResponseWriter, r *http.Request) { diff --git a/docs/api/schemas.md b/docs/api/schemas.md index ccb651b521411..a8672795ce132 100644 --- a/docs/api/schemas.md +++ b/docs/api/schemas.md @@ -1147,6 +1147,43 @@ CreateParameterRequest is a structure used to create a new parameter value for a | `transition` | `stop` | | `transition` | `delete` | +## codersdk.CreateWorkspaceRequest + +```json +{ + "autostart_schedule": "string", + "name": "string", + "parameter_values": [ + { + "copy_from_parameter": "000e07d6-021d-446c-be14-48a9c20bca0b", + "destination_scheme": "none", + "name": "string", + "source_scheme": "none", + "source_value": "string" + } + ], + "rich_parameter_values": [ + { + "name": "string", + "value": "string" + } + ], + "template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc", + "ttl_ms": 0 +} +``` + +### Properties + +| Name | Type | Required | Restrictions | Description | +| ----------------------- | ----------------------------------------------------------------------------- | -------- | ------------ | ---------------------------------------------------------------------------------------------- | +| `autostart_schedule` | string | false | | | +| `name` | string | true | | | +| `parameter_values` | array of [codersdk.CreateParameterRequest](#codersdkcreateparameterrequest) | false | | Parameter values allows for additional parameters to be provided during the initial provision. | +| `rich_parameter_values` | array of [codersdk.WorkspaceBuildParameter](#codersdkworkspacebuildparameter) | false | | | +| `template_id` | string | true | | | +| `ttl_ms` | integer | false | | | + ## codersdk.DAUEntry ```json diff --git a/docs/api/workspaces.md b/docs/api/workspaces.md index 8de9218b15b14..67e1f8c0125f7 100644 --- a/docs/api/workspaces.md +++ b/docs/api/workspaces.md @@ -7,18 +7,46 @@ ```shell # Example request using curl curl -X POST http://coder-server:8080/api/v2/organizations/{organization}/members/{user}/workspaces \ + -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Coder-Session-Token: API_KEY' ``` `POST /organizations/{organization}/members/{user}/workspaces` +> Body parameter + +```json +{ + "autostart_schedule": "string", + "name": "string", + "parameter_values": [ + { + "copy_from_parameter": "000e07d6-021d-446c-be14-48a9c20bca0b", + "destination_scheme": "none", + "name": "string", + "source_scheme": "none", + "source_value": "string" + } + ], + "rich_parameter_values": [ + { + "name": "string", + "value": "string" + } + ], + "template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc", + "ttl_ms": 0 +} +``` + ### Parameters -| Name | In | Type | Required | Description | -| -------------- | ---- | ------------ | -------- | --------------------- | -| `organization` | path | string(uuid) | true | Organization ID | -| `user` | path | string | true | Username, UUID, or me | +| Name | In | Type | Required | Description | +| -------------- | ---- | ---------------------------------------------------------------------------- | -------- | ------------------------ | +| `organization` | path | string(uuid) | true | Organization ID | +| `user` | path | string | true | Username, UUID, or me | +| `body` | body | [codersdk.CreateWorkspaceRequest](schemas.md#codersdkcreateworkspacerequest) | true | Create workspace request | ### Example responses