From 75fe2abf0acdc389f640951cde445d2d0230d3a9 Mon Sep 17 00:00:00 2001 From: McKayla Washburn Date: Wed, 2 Jul 2025 22:12:38 +0000 Subject: [PATCH 1/3] chore: fix some small groups and acl typos --- codersdk/groups.go | 2 +- codersdk/templates.go | 4 ++-- enterprise/coderd/templates.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/codersdk/groups.go b/codersdk/groups.go index 26ef7f829f00b..8973b5f5b2495 100644 --- a/codersdk/groups.go +++ b/codersdk/groups.go @@ -36,7 +36,7 @@ type Group struct { // even if the user is not authorized to read group member details. // May be greater than `len(Group.Members)`. TotalMemberCount int `json:"total_member_count"` - AvatarURL string `json:"avatar_url"` + AvatarURL string `json:"avatar_url,omitempty" format:"uri"` QuotaAllowance int `json:"quota_allowance"` Source GroupSource `json:"source"` OrganizationName string `json:"organization_name"` diff --git a/codersdk/templates.go b/codersdk/templates.go index c0ea8c4137041..a7d983bc1cc6f 100644 --- a/codersdk/templates.go +++ b/codersdk/templates.go @@ -194,9 +194,9 @@ type TemplateUser struct { type UpdateTemplateACL struct { // UserPerms should be a mapping of user id to role. The user id must be the // uuid of the user, not a username or email address. - UserPerms map[string]TemplateRole `json:"user_perms,omitempty" example:":admin,4df59e74-c027-470b-ab4d-cbba8963a5e9:use"` + UserPerms map[string]TemplateRole `json:"user_perms,omitempty" example:":admin,4df59e74-c027-470b-ab4d-cbba8963a5e9:use"` // GroupPerms should be a mapping of group id to role. - GroupPerms map[string]TemplateRole `json:"group_perms,omitempty" example:">:admin,8bd26b20-f3e8-48be-a903-46bb920cf671:use"` + GroupPerms map[string]TemplateRole `json:"group_perms,omitempty" example:":admin,8bd26b20-f3e8-48be-a903-46bb920cf671:use"` } // ACLAvailable is a list of users and groups that can be added to a template diff --git a/enterprise/coderd/templates.go b/enterprise/coderd/templates.go index b1f3d2cac3ac5..4514ba928e21a 100644 --- a/enterprise/coderd/templates.go +++ b/enterprise/coderd/templates.go @@ -99,7 +99,7 @@ func (api *API) templateAvailablePermissions(rw http.ResponseWriter, r *http.Req // @Produce json // @Tags Enterprise // @Param template path string true "Template ID" format(uuid) -// @Success 200 {array} codersdk.TemplateUser +// @Success 200 {object} codersdk.TemplateACL // @Router /templates/{template}/acl [get] func (api *API) templateACL(rw http.ResponseWriter, r *http.Request) { var ( From c22aa7f19a782252318660c10a7603b34726ee25 Mon Sep 17 00:00:00 2001 From: McKayla Washburn Date: Wed, 2 Jul 2025 22:56:16 +0000 Subject: [PATCH 2/3] gen --- coderd/apidoc/docs.go | 85 +++++++++++++++-- coderd/apidoc/swagger.json | 82 ++++++++++++++-- docs/reference/api/enterprise.md | 156 +++++++++++++++---------------- docs/reference/api/schemas.md | 135 +++++++++++++++++++++++++- site/src/api/typesGenerated.ts | 2 +- 5 files changed, 359 insertions(+), 101 deletions(-) diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index cec325a7b87af..4a3760ff5125f 100644 --- a/coderd/apidoc/docs.go +++ b/coderd/apidoc/docs.go @@ -5000,10 +5000,7 @@ const docTemplate = `{ "200": { "description": "OK", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.TemplateUser" - } + "$ref": "#/definitions/codersdk.TemplateACL" } } } @@ -12581,7 +12578,8 @@ const docTemplate = `{ "type": "object", "properties": { "avatar_url": { - "type": "string" + "type": "string", + "format": "uri" }, "display_name": { "type": "string" @@ -15466,6 +15464,23 @@ const docTemplate = `{ } } }, + "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": { @@ -15598,6 +15613,62 @@ const docTemplate = `{ } } }, + "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": { @@ -16219,7 +16290,7 @@ const docTemplate = `{ }, "example": { "8bd26b20-f3e8-48be-a903-46bb920cf671": "use", - "\u003cuser_id\u003e\u003e": "admin" + "\u003cgroup_id\u003e": "admin" } }, "user_perms": { @@ -16230,7 +16301,7 @@ const docTemplate = `{ }, "example": { "4df59e74-c027-470b-ab4d-cbba8963a5e9": "use", - "\u003cgroup_id\u003e": "admin" + "\u003cuser_id\u003e": "admin" } } } diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index 6841978b127b9..383b6988217d6 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -4413,10 +4413,7 @@ "200": { "description": "OK", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/codersdk.TemplateUser" - } + "$ref": "#/definitions/codersdk.TemplateACL" } } } @@ -11306,7 +11303,8 @@ "type": "object", "properties": { "avatar_url": { - "type": "string" + "type": "string", + "format": "uri" }, "display_name": { "type": "string" @@ -14074,6 +14072,23 @@ } } }, + "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": { @@ -14200,6 +14215,59 @@ } } }, + "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": { @@ -14786,7 +14854,7 @@ }, "example": { "8bd26b20-f3e8-48be-a903-46bb920cf671": "use", - "\u003cuser_id\u003e\u003e": "admin" + "\u003cgroup_id\u003e": "admin" } }, "user_perms": { @@ -14797,7 +14865,7 @@ }, "example": { "4df59e74-c027-470b-ab4d-cbba8963a5e9": "use", - "\u003cgroup_id\u003e": "admin" + "\u003cuser_id\u003e": "admin" } } } diff --git a/docs/reference/api/enterprise.md b/docs/reference/api/enterprise.md index cacdddfe37832..2ec1f9ce3e61d 100644 --- a/docs/reference/api/enterprise.md +++ b/docs/reference/api/enterprise.md @@ -252,7 +252,7 @@ curl -X GET http://coder-server:8080/api/v2/groups?organization=string&has_membe ```json [ { - "avatar_url": "string", + "avatar_url": "http://example.com", "display_name": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "members": [ @@ -294,7 +294,7 @@ Status Code **200** | Name | Type | Required | Restrictions | Description | |-------------------------------|--------------------------------------------------------|----------|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `[array item]` | array | false | | | -| `» avatar_url` | string | false | | | +| `» avatar_url` | string(uri) | false | | | | `» display_name` | string | false | | | | `» id` | string(uuid) | false | | | | `» members` | array | false | | | @@ -359,7 +359,7 @@ curl -X GET http://coder-server:8080/api/v2/groups/{group} \ ```json { - "avatar_url": "string", + "avatar_url": "http://example.com", "display_name": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "members": [ @@ -420,7 +420,7 @@ curl -X DELETE http://coder-server:8080/api/v2/groups/{group} \ ```json { - "avatar_url": "string", + "avatar_url": "http://example.com", "display_name": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "members": [ @@ -500,7 +500,7 @@ curl -X PATCH http://coder-server:8080/api/v2/groups/{group} \ ```json { - "avatar_url": "string", + "avatar_url": "http://example.com", "display_name": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "members": [ @@ -1198,7 +1198,7 @@ curl -X GET http://coder-server:8080/api/v2/organizations/{organization}/groups ```json [ { - "avatar_url": "string", + "avatar_url": "http://example.com", "display_name": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "members": [ @@ -1240,7 +1240,7 @@ Status Code **200** | Name | Type | Required | Restrictions | Description | |-------------------------------|--------------------------------------------------------|----------|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `[array item]` | array | false | | | -| `» avatar_url` | string | false | | | +| `» avatar_url` | string(uri) | false | | | | `» display_name` | string | false | | | | `» id` | string(uuid) | false | | | | `» members` | array | false | | | @@ -1318,7 +1318,7 @@ curl -X POST http://coder-server:8080/api/v2/organizations/{organization}/groups ```json { - "avatar_url": "string", + "avatar_url": "http://example.com", "display_name": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "members": [ @@ -1380,7 +1380,7 @@ curl -X GET http://coder-server:8080/api/v2/organizations/{organization}/groups/ ```json { - "avatar_url": "string", + "avatar_url": "http://example.com", "display_name": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "members": [ @@ -3069,79 +3069,71 @@ curl -X GET http://coder-server:8080/api/v2/templates/{template}/acl \ > 200 Response ```json -[ - { - "avatar_url": "http://example.com", - "created_at": "2019-08-24T14:15:22Z", - "email": "user@example.com", - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "last_seen_at": "2019-08-24T14:15:22Z", - "login_type": "", - "name": "string", - "organization_ids": [ - "497f6eca-6276-4993-bfeb-53cbbbba6f08" - ], - "role": "admin", - "roles": [ - { - "display_name": "string", - "name": "string", - "organization_id": "string" - } - ], - "status": "active", - "theme_preference": "string", - "updated_at": "2019-08-24T14:15:22Z", - "username": "string" - } -] +{ + "group": [ + { + "avatar_url": "http://example.com", + "display_name": "string", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "members": [ + { + "avatar_url": "http://example.com", + "created_at": "2019-08-24T14:15:22Z", + "email": "user@example.com", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "last_seen_at": "2019-08-24T14:15:22Z", + "login_type": "", + "name": "string", + "status": "active", + "theme_preference": "string", + "updated_at": "2019-08-24T14:15:22Z", + "username": "string" + } + ], + "name": "string", + "organization_display_name": "string", + "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6", + "organization_name": "string", + "quota_allowance": 0, + "role": "admin", + "source": "user", + "total_member_count": 0 + } + ], + "users": [ + { + "avatar_url": "http://example.com", + "created_at": "2019-08-24T14:15:22Z", + "email": "user@example.com", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "last_seen_at": "2019-08-24T14:15:22Z", + "login_type": "", + "name": "string", + "organization_ids": [ + "497f6eca-6276-4993-bfeb-53cbbbba6f08" + ], + "role": "admin", + "roles": [ + { + "display_name": "string", + "name": "string", + "organization_id": "string" + } + ], + "status": "active", + "theme_preference": "string", + "updated_at": "2019-08-24T14:15:22Z", + "username": "string" + } + ] +} ``` ### Responses -| Status | Meaning | Description | Schema | -|--------|---------------------------------------------------------|-------------|-------------------------------------------------------------------| -| 200 | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1) | OK | array of [codersdk.TemplateUser](schemas.md#codersdktemplateuser) | - -

Response Schema

- -Status Code **200** - -| Name | Type | Required | Restrictions | Description | -|----------------------|----------------------------------------------------------|----------|--------------|--------------------------------------------------------------------------------------------| -| `[array item]` | array | false | | | -| `» avatar_url` | string(uri) | false | | | -| `» created_at` | string(date-time) | true | | | -| `» email` | string(email) | true | | | -| `» id` | string(uuid) | true | | | -| `» last_seen_at` | string(date-time) | false | | | -| `» login_type` | [codersdk.LoginType](schemas.md#codersdklogintype) | false | | | -| `» name` | string | false | | | -| `» organization_ids` | array | false | | | -| `» role` | [codersdk.TemplateRole](schemas.md#codersdktemplaterole) | false | | | -| `» roles` | array | false | | | -| `»» display_name` | string | false | | | -| `»» name` | string | false | | | -| `»» organization_id` | string | false | | | -| `» status` | [codersdk.UserStatus](schemas.md#codersdkuserstatus) | false | | | -| `» theme_preference` | string | false | | Deprecated: this value should be retrieved from `codersdk.UserPreferenceSettings` instead. | -| `» updated_at` | string(date-time) | false | | | -| `» username` | string | true | | | - -#### Enumerated Values - -| Property | Value | -|--------------|-------------| -| `login_type` | `` | -| `login_type` | `password` | -| `login_type` | `github` | -| `login_type` | `oidc` | -| `login_type` | `token` | -| `login_type` | `none` | -| `role` | `admin` | -| `role` | `use` | -| `status` | `active` | -| `status` | `suspended` | +| Status | Meaning | Description | Schema | +|--------|---------------------------------------------------------|-------------|--------------------------------------------------------| +| 200 | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1) | OK | [codersdk.TemplateACL](schemas.md#codersdktemplateacl) | To perform this operation, you must be authenticated. [Learn more](authentication.md). @@ -3165,11 +3157,11 @@ curl -X PATCH http://coder-server:8080/api/v2/templates/{template}/acl \ { "group_perms": { "8bd26b20-f3e8-48be-a903-46bb920cf671": "use", - ">": "admin" + "": "admin" }, "user_perms": { "4df59e74-c027-470b-ab4d-cbba8963a5e9": "use", - "": "admin" + "": "admin" } } ``` @@ -3234,7 +3226,7 @@ curl -X GET http://coder-server:8080/api/v2/templates/{template}/acl/available \ { "groups": [ { - "avatar_url": "string", + "avatar_url": "http://example.com", "display_name": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "members": [ @@ -3294,7 +3286,7 @@ Status Code **200** |--------------------------------|--------------------------------------------------------|----------|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `[array item]` | array | false | | | | `» groups` | array | false | | | -| `»» avatar_url` | string | false | | | +| `»» avatar_url` | string(uri) | false | | | | `»» display_name` | string | false | | | | `»» id` | string(uuid) | false | | | | `»» members` | array | false | | | diff --git a/docs/reference/api/schemas.md b/docs/reference/api/schemas.md index efb4be973f055..bfb57d1cba2cd 100644 --- a/docs/reference/api/schemas.md +++ b/docs/reference/api/schemas.md @@ -283,7 +283,7 @@ { "groups": [ { - "avatar_url": "string", + "avatar_url": "http://example.com", "display_name": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "members": [ @@ -3379,7 +3379,7 @@ Git clone makes use of this by parsing the URL from: 'Username for "https://gith ```json { - "avatar_url": "string", + "avatar_url": "http://example.com", "display_name": "string", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "members": [ @@ -6501,6 +6501,76 @@ Git clone makes use of this by parsing the URL from: 'Username for "https://gith |---------------|-------------| | `provisioner` | `terraform` | +## codersdk.TemplateACL + +```json +{ + "group": [ + { + "avatar_url": "http://example.com", + "display_name": "string", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "members": [ + { + "avatar_url": "http://example.com", + "created_at": "2019-08-24T14:15:22Z", + "email": "user@example.com", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "last_seen_at": "2019-08-24T14:15:22Z", + "login_type": "", + "name": "string", + "status": "active", + "theme_preference": "string", + "updated_at": "2019-08-24T14:15:22Z", + "username": "string" + } + ], + "name": "string", + "organization_display_name": "string", + "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6", + "organization_name": "string", + "quota_allowance": 0, + "role": "admin", + "source": "user", + "total_member_count": 0 + } + ], + "users": [ + { + "avatar_url": "http://example.com", + "created_at": "2019-08-24T14:15:22Z", + "email": "user@example.com", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "last_seen_at": "2019-08-24T14:15:22Z", + "login_type": "", + "name": "string", + "organization_ids": [ + "497f6eca-6276-4993-bfeb-53cbbbba6f08" + ], + "role": "admin", + "roles": [ + { + "display_name": "string", + "name": "string", + "organization_id": "string" + } + ], + "status": "active", + "theme_preference": "string", + "updated_at": "2019-08-24T14:15:22Z", + "username": "string" + } + ] +} +``` + +### Properties + +| Name | Type | Required | Restrictions | Description | +|---------|-----------------------------------------------------------|----------|--------------|-------------| +| `group` | array of [codersdk.TemplateGroup](#codersdktemplategroup) | false | | | +| `users` | array of [codersdk.TemplateUser](#codersdktemplateuser) | false | | | + ## codersdk.TemplateAppUsage ```json @@ -6628,6 +6698,63 @@ Restarts will only happen on weekdays in this list on weeks which line up with W | `tags` | array of string | false | | | | `url` | string | false | | | +## codersdk.TemplateGroup + +```json +{ + "avatar_url": "http://example.com", + "display_name": "string", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "members": [ + { + "avatar_url": "http://example.com", + "created_at": "2019-08-24T14:15:22Z", + "email": "user@example.com", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "last_seen_at": "2019-08-24T14:15:22Z", + "login_type": "", + "name": "string", + "status": "active", + "theme_preference": "string", + "updated_at": "2019-08-24T14:15:22Z", + "username": "string" + } + ], + "name": "string", + "organization_display_name": "string", + "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6", + "organization_name": "string", + "quota_allowance": 0, + "role": "admin", + "source": "user", + "total_member_count": 0 +} +``` + +### Properties + +| Name | Type | Required | Restrictions | Description | +|-----------------------------|-------------------------------------------------------|----------|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `avatar_url` | string | false | | | +| `display_name` | string | false | | | +| `id` | string | false | | | +| `members` | array of [codersdk.ReducedUser](#codersdkreduceduser) | false | | | +| `name` | string | false | | | +| `organization_display_name` | string | false | | | +| `organization_id` | string | false | | | +| `organization_name` | string | false | | | +| `quota_allowance` | integer | false | | | +| `role` | [codersdk.TemplateRole](#codersdktemplaterole) | false | | | +| `source` | [codersdk.GroupSource](#codersdkgroupsource) | false | | | +| `total_member_count` | integer | false | | How many members are in this group. Shows the total count, even if the user is not authorized to read group member details. May be greater than `len(Group.Members)`. | + +#### Enumerated Values + +| Property | Value | +|----------|---------| +| `role` | `admin` | +| `role` | `use` | + ## codersdk.TemplateInsightsIntervalReport ```json @@ -7361,11 +7488,11 @@ Restarts will only happen on weekdays in this list on weeks which line up with W { "group_perms": { "8bd26b20-f3e8-48be-a903-46bb920cf671": "use", - ">": "admin" + "": "admin" }, "user_perms": { "4df59e74-c027-470b-ab4d-cbba8963a5e9": "use", - "": "admin" + "": "admin" } } ``` diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index a29943fafb6ea..269440dfa87a8 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -1004,7 +1004,7 @@ export interface Group { readonly organization_id: string; readonly members: readonly ReducedUser[]; readonly total_member_count: number; - readonly avatar_url: string; + readonly avatar_url?: string; readonly quota_allowance: number; readonly source: GroupSource; readonly organization_name: string; From d4abb66abadb79aa180298679dbd044e34e36e69 Mon Sep 17 00:00:00 2001 From: McKayla Washburn Date: Thu, 3 Jul 2025 22:32:10 +0000 Subject: [PATCH 3/3] yeah nvm --- codersdk/groups.go | 2 +- site/src/api/typesGenerated.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/codersdk/groups.go b/codersdk/groups.go index 8973b5f5b2495..d458a67839c12 100644 --- a/codersdk/groups.go +++ b/codersdk/groups.go @@ -36,7 +36,7 @@ type Group struct { // even if the user is not authorized to read group member details. // May be greater than `len(Group.Members)`. TotalMemberCount int `json:"total_member_count"` - AvatarURL string `json:"avatar_url,omitempty" format:"uri"` + AvatarURL string `json:"avatar_url" format:"uri"` QuotaAllowance int `json:"quota_allowance"` Source GroupSource `json:"source"` OrganizationName string `json:"organization_name"` diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index 48cf1d3efeb54..4ab5403081a60 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -1009,7 +1009,7 @@ export interface Group { readonly organization_id: string; readonly members: readonly ReducedUser[]; readonly total_member_count: number; - readonly avatar_url?: string; + readonly avatar_url: string; readonly quota_allowance: number; readonly source: GroupSource; readonly organization_name: string;