Gitpod gitpod.v1.GroupService API

The gitpod.v1.GroupService API from Gitpod — 14 operation(s) for gitpod.v1.groupservice.

OpenAPI Specification

gitpod-gitpod-v1-groupservice-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: gitpod.v1 gitpod.v1.AccountService gitpod.v1.GroupService API
  version: v1.0.0
servers:
- url: https://api.gitpod.io
  description: Gitpod API
tags:
- name: gitpod.v1.GroupService
  x-displayName: gitpod.v1.GroupService
paths:
  /gitpod.v1.GroupService/CreateGroup:
    servers: []
    post:
      description: "Creates a new group within an organization.\n\n Use this method to:\n - Create teams for access control\n - Organize users by department or function\n - Set up role-based access groups\n\n ### Examples\n\n - Create a basic group:\n\n   Creates a group with name and description.\n\n   ```yaml\n   organizationId: \"b0e12f6c-4c67-429d-a4a6-d9838b5da047\"\n   name: \"Backend Team\"\n   description: \"Backend engineering team\"\n   ```\n\n ### Authorization\n\n Requires `org:admin` role on the organization."
      operationId: gitpod.v1.GroupService.CreateGroup
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              create_a_basic_group:
                description: Creates a group with name and description.
                value:
                  description: Backend engineering team
                  name: Backend Team
                  organizationId: b0e12f6c-4c67-429d-a4a6-d9838b5da047
            schema:
              $ref: '#/components/schemas/gitpod.v1.CreateGroupRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.CreateGroupResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: CreateGroup
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/CreateMembership:
    servers: []
    post:
      description: "Creates a membership for a user in a group.\n\n Use this method to:\n - Add users to groups\n - Grant group-based permissions to users\n\n ### Examples\n\n - Add a user to a group:\n\n   Creates a membership for a user in a group.\n\n   ```yaml\n   groupId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   subject:\n     id: \"f53d2330-3795-4c5d-a1f3-453121af9c60\"\n     principal: PRINCIPAL_USER\n   ```\n\n ### Authorization\n\n Requires `org:admin` permission on the organization or `group:admin` permission on the specific group."
      operationId: gitpod.v1.GroupService.CreateMembership
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              add_a_user_to_a_group:
                description: Creates a membership for a user in a group.
                value:
                  groupId: d2c94c27-3b76-4a42-b88c-95a85e392c68
                  subject:
                    id: f53d2330-3795-4c5d-a1f3-453121af9c60
                    principal: PRINCIPAL_USER
            schema:
              $ref: '#/components/schemas/gitpod.v1.CreateMembershipRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.CreateMembershipResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: CreateMembership
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/CreateRoleAssignment:
    servers: []
    post:
      description: "Creates a role assignment for a group on a resource.\n\n Use this method to:\n - Assign specific roles to groups on runners, projects, or environments\n - Grant group-based access to resources\n\n ### Examples\n\n - Assign admin role on a runner:\n\n   Grants the group admin access to a runner.\n\n   ```yaml\n   groupId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   resourceType: RESOURCE_TYPE_RUNNER\n   resourceId: \"f53d2330-3795-4c5d-a1f3-453121af9c60\"\n   resourceRole: RESOURCE_ROLE_RUNNER_ADMIN\n   ```\n\n - Assign user role on a project:\n\n   Grants the group user access to a project.\n\n   ```yaml\n   groupId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   resourceType: RESOURCE_TYPE_PROJECT\n   resourceId: \"a1b2c3d4-5678-90ab-cdef-1234567890ab\"\n   resourceRole: RESOURCE_ROLE_PROJECT_USER\n   ```\n\n ### Authorization\n\n Requires admin role on the specific resource."
      operationId: gitpod.v1.GroupService.CreateRoleAssignment
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              assign_admin_role_on_a_runner:
                description: Grants the group admin access to a runner.
                value:
                  groupId: d2c94c27-3b76-4a42-b88c-95a85e392c68
                  resourceId: f53d2330-3795-4c5d-a1f3-453121af9c60
                  resourceRole: RESOURCE_ROLE_RUNNER_ADMIN
                  resourceType: RESOURCE_TYPE_RUNNER
              assign_user_role_on_a_project:
                description: Grants the group user access to a project.
                value:
                  groupId: d2c94c27-3b76-4a42-b88c-95a85e392c68
                  resourceId: a1b2c3d4-5678-90ab-cdef-1234567890ab
                  resourceRole: RESOURCE_ROLE_PROJECT_USER
                  resourceType: RESOURCE_TYPE_PROJECT
            schema:
              $ref: '#/components/schemas/gitpod.v1.CreateRoleAssignmentRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.CreateRoleAssignmentResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: CreateRoleAssignment
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/DeleteGroup:
    servers: []
    post:
      description: "Deletes a group and removes all its resource assignments.\n\n When a group is deleted, all resource assignments revert to org-level scope.\n\n Use this method to:\n - Remove unused groups\n - Clean up after team reorganization\n\n ### Examples\n\n - Delete a group:\n\n   Permanently removes a group.\n\n   ```yaml\n   groupId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   ```\n\n ### Authorization\n\n Requires `org:admin` role on the organization."
      operationId: gitpod.v1.GroupService.DeleteGroup
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              delete_a_group:
                description: Permanently removes a group.
                value:
                  groupId: d2c94c27-3b76-4a42-b88c-95a85e392c68
            schema:
              $ref: '#/components/schemas/gitpod.v1.DeleteGroupRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.DeleteGroupResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: DeleteGroup
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/DeleteMembership:
    servers: []
    post:
      description: "Deletes a membership for a user in a group.\n\n Use this method to:\n - Remove users from groups\n - Revoke group-based permissions\n\n ### Examples\n\n - Remove a user from a group:\n\n   Deletes a membership by its ID.\n\n   ```yaml\n   membershipId: \"a1b2c3d4-5678-90ab-cdef-1234567890ab\"\n   ```\n\n ### Authorization\n\n Requires `org:admin` permission on the organization or `group:admin` permission on the specific group."
      operationId: gitpod.v1.GroupService.DeleteMembership
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              remove_a_user_from_a_group:
                description: Deletes a membership by its ID.
                value:
                  membershipId: a1b2c3d4-5678-90ab-cdef-1234567890ab
            schema:
              $ref: '#/components/schemas/gitpod.v1.DeleteMembershipRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.DeleteMembershipResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: DeleteMembership
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/DeleteRoleAssignment:
    servers: []
    post:
      description: "Deletes a role assignment.\n\n Use this method to:\n - Remove group access to resources\n - Revoke role-based permissions\n\n ### Examples\n\n - Delete a role assignment:\n\n   Removes a role assignment by its ID.\n\n   ```yaml\n   assignmentId: \"a1b2c3d4-5678-90ab-cdef-1234567890ab\"\n   ```\n\n ### Authorization\n\n Requires admin role on the specific resource."
      operationId: gitpod.v1.GroupService.DeleteRoleAssignment
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              delete_a_role_assignment:
                description: Removes a role assignment by its ID.
                value:
                  assignmentId: a1b2c3d4-5678-90ab-cdef-1234567890ab
            schema:
              $ref: '#/components/schemas/gitpod.v1.DeleteRoleAssignmentRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.DeleteRoleAssignmentResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: DeleteRoleAssignment
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/GetGroup:
    servers: []
    post:
      description: "Gets information about a specific group by ID or name.\n\n Use this method to:\n - Retrieve group details and metadata\n - Check group configuration\n - View member count\n\n ### Examples\n\n - Get group by ID:\n\n   Retrieves information about a specific group by its unique ID.\n\n   ```yaml\n   id: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   ```\n\n ### Authorization\n\n All organization members can view group information (transparency model)."
      operationId: gitpod.v1.GroupService.GetGroup
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              get_group_by_id:
                description: Retrieves information about a specific group by its unique ID.
                value:
                  id: d2c94c27-3b76-4a42-b88c-95a85e392c68
            schema:
              $ref: '#/components/schemas/gitpod.v1.GetGroupRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.GetGroupResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: GetGroup
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/GetMembership:
    servers: []
    post:
      description: "Gets a specific membership by group ID and subject.\n\n Use this method to:\n - Check if a user or service account is a member of a group\n - Verify group membership for access control\n\n ### Examples\n\n - Check user membership:\n\n   Checks if a user is a member of a specific group.\n\n   ```yaml\n   groupId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   subject:\n     id: \"f53d2330-3795-4c5d-a1f3-453121af9c60\"\n     principal: PRINCIPAL_USER\n   ```\n\n ### Authorization\n\n All organization members can check group membership (transparency model)."
      operationId: gitpod.v1.GroupService.GetMembership
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              check_user_membership:
                description: Checks if a user is a member of a specific group.
                value:
                  groupId: d2c94c27-3b76-4a42-b88c-95a85e392c68
                  subject:
                    id: f53d2330-3795-4c5d-a1f3-453121af9c60
                    principal: PRINCIPAL_USER
            schema:
              $ref: '#/components/schemas/gitpod.v1.GetMembershipRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.GetMembershipResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: GetMembership
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/ListGroups:
    servers: []
    post:
      description: "Lists groups with optional pagination.\n\n Use this method to:\n - View all groups in an organization\n - Check group memberships\n - Monitor group configurations\n - Audit group access\n\n ### Examples\n\n - List all groups:\n\n   Shows all groups with pagination.\n\n   ```yaml\n   pagination:\n     pageSize: 20\n   ```\n\n - List with custom page size:\n\n   Shows groups with specified page size.\n\n   ```yaml\n   pagination:\n     pageSize: 50\n     token: \"next-page-token-from-previous-response\"\n   ```\n\n ### Authorization\n\n All organization members can list groups (transparency model)."
      operationId: gitpod.v1.GroupService.ListGroups
      parameters:
      - in: query
        name: pageSize
        schema:
          default: 25
          maximum: 100
          minimum: 0
          type: integer
      - in: query
        name: token
        schema:
          default: ''
          type: string
      requestBody:
        content:
          application/json:
            examples:
              list_all_groups:
                description: Shows all groups with pagination.
                value:
                  pagination:
                    pageSize: 20
              list_with_custom_page_size:
                description: Shows groups with specified page size.
                value:
                  pagination:
                    pageSize: 50
                    token: next-page-token-from-previous-response
            schema:
              $ref: '#/components/schemas/gitpod.v1.ListGroupsRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.ListGroupsResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: ListGroups
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/ListMemberships:
    servers: []
    post:
      description: "Lists all memberships of a group.\n\n Use this method to:\n - View all members of a group\n - Audit group membership\n\n ### Examples\n\n - List group members:\n\n   Shows all members of a specific group.\n\n   ```yaml\n   groupId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   pagination:\n     pageSize: 20\n   ```\n\n ### Authorization\n\n All organization members can view group membership (transparency model)."
      operationId: gitpod.v1.GroupService.ListMemberships
      parameters:
      - in: query
        name: pageSize
        schema:
          default: 25
          maximum: 100
          minimum: 0
          type: integer
      - in: query
        name: token
        schema:
          default: ''
          type: string
      requestBody:
        content:
          application/json:
            examples:
              list_group_members:
                description: Shows all members of a specific group.
                value:
                  groupId: d2c94c27-3b76-4a42-b88c-95a85e392c68
                  pagination:
                    pageSize: 20
            schema:
              $ref: '#/components/schemas/gitpod.v1.ListMembershipsRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.ListMembershipsResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: ListMemberships
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/ListRoleAssignments:
    servers: []
    post:
      description: "Lists role assignments for a group or resource.\n\n Use this method to:\n - View all role assignments for a group\n - Audit resource access\n - Check which groups have access to resources\n\n ### Examples\n\n - List role assignments for a group:\n\n   Shows all role assignments for a specific group.\n\n   ```yaml\n   filter:\n     groupId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   pagination:\n     pageSize: 20\n   ```\n\n - List role assignments by resource type:\n\n   Shows all role assignments for runners.\n\n   ```yaml\n   filter:\n     resourceTypes:\n       - RESOURCE_TYPE_RUNNER\n   pagination:\n     pageSize: 20\n   ```\n\n ### Authorization\n\n All organization members can view role assignments (transparency model)."
      operationId: gitpod.v1.GroupService.ListRoleAssignments
      parameters:
      - in: query
        name: pageSize
        schema:
          default: 25
          maximum: 100
          minimum: 0
          type: integer
      - in: query
        name: token
        schema:
          default: ''
          type: string
      requestBody:
        content:
          application/json:
            examples:
              list_role_assignments_by_resource_type:
                description: Shows all role assignments for runners.
                value:
                  filter:
                    resourceTypes:
                    - RESOURCE_TYPE_RUNNER
                  pagination:
                    pageSize: 20
              list_role_assignments_for_a_group:
                description: Shows all role assignments for a specific group.
                value:
                  filter:
                    groupId: d2c94c27-3b76-4a42-b88c-95a85e392c68
                  pagination:
                    pageSize: 20
            schema:
              $ref: '#/components/schemas/gitpod.v1.ListRoleAssignmentsRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.ListRoleAssignmentsResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: ListRoleAssignments
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/ShareResourceWithPrincipal:
    servers: []
    post:
      description: "Shares a resource directly with a principal (user or service account).\n\n Use this method to:\n - Grant a user or service account direct access to a runner, project, or other resource\n - Share resources without creating and managing groups manually\n\n ### Examples\n\n - Share a runner with a user:\n\n   Grants admin access to a runner for a specific user.\n\n   ```yaml\n   resourceType: RESOURCE_TYPE_RUNNER\n   resourceId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   principal: PRINCIPAL_USER\n   principalId: \"f53d2330-3795-4c5d-a1f3-453121af9c60\"\n   role: RESOURCE_ROLE_RUNNER_ADMIN\n   ```\n\n - Share a runner with a service account:\n\n   Grants user access to a runner for a service account.\n\n   ```yaml\n   resourceType: RESOURCE_TYPE_RUNNER\n   resourceId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   principal: PRINCIPAL_SERVICE_ACCOUNT\n   principalId: \"a1b2c3d4-5678-90ab-cdef-1234567890ab\"\n   role: RESOURCE_ROLE_RUNNER_USER\n   ```\n\n ### Authorization\n\n Requires admin role on the specific resource."
      operationId: gitpod.v1.GroupService.ShareResourceWithPrincipal
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              share_a_runner_with_a_service_account:
                description: Grants user access to a runner for a service account.
                value:
                  principal: PRINCIPAL_SERVICE_ACCOUNT
                  principalId: a1b2c3d4-5678-90ab-cdef-1234567890ab
                  resourceId: d2c94c27-3b76-4a42-b88c-95a85e392c68
                  resourceType: RESOURCE_TYPE_RUNNER
                  role: RESOURCE_ROLE_RUNNER_USER
              share_a_runner_with_a_user:
                description: Grants admin access to a runner for a specific user.
                value:
                  principal: PRINCIPAL_USER
                  principalId: f53d2330-3795-4c5d-a1f3-453121af9c60
                  resourceId: d2c94c27-3b76-4a42-b88c-95a85e392c68
                  resourceType: RESOURCE_TYPE_RUNNER
                  role: RESOURCE_ROLE_RUNNER_ADMIN
            schema:
              $ref: '#/components/schemas/gitpod.v1.ShareResourceWithPrincipalRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.ShareResourceWithPrincipalResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: ShareResourceWithPrincipal
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/UnshareResourceWithPrincipal:
    servers: []
    post:
      description: "Removes direct access for a principal (user or service account) from a resource.\n\n Use this method to:\n - Revoke a principal's direct access to a resource\n - Remove sharing without affecting group-based access\n\n ### Examples\n\n - Remove user access from a runner:\n\n   Revokes a user's direct access to a runner.\n\n   ```yaml\n   resourceType: RESOURCE_TYPE_RUNNER\n   resourceId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   principal: PRINCIPAL_USER\n   principalId: \"f53d2330-3795-4c5d-a1f3-453121af9c60\"\n   ```\n\n ### Authorization\n\n Requires admin role on the specific resource."
      operationId: gitpod.v1.GroupService.UnshareResourceWithPrincipal
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              remove_user_access_from_a_runner:
                description: Revokes a user's direct access to a runner.
                value:
                  principal: PRINCIPAL_USER
                  principalId: f53d2330-3795-4c5d-a1f3-453121af9c60
                  resourceId: d2c94c27-3b76-4a42-b88c-95a85e392c68
                  resourceType: RESOURCE_TYPE_RUNNER
            schema:
              $ref: '#/components/schemas/gitpod.v1.UnshareResourceWithPrincipalRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.UnshareResourceWithPrincipalResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: UnshareResourceWithPrincipal
      tags:
      - gitpod.v1.GroupService
  /gitpod.v1.GroupService/UpdateGroup:
    servers: []
    post:
      description: "Updates group information.\n\n Use this method to:\n - Rename a group\n - Update group description\n\n ### Examples\n\n - Update group name:\n\n   Changes the name of an existing group.\n\n   ```yaml\n   groupId: \"d2c94c27-3b76-4a42-b88c-95a85e392c68\"\n   name: \"Platform Team\"\n   description: \"Platform engineering team\"\n   ```\n\n ### Authorization\n\n Requires `org:admin` permission on the organization or `group:admin` permission on the specific group."
      operationId: gitpod.v1.GroupService.UpdateGroup
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              update_group_name:
                description: Changes the name of an existing group.
                value:
                  description: Platform engineering team
                  groupId: d2c94c27-3b76-4a42-b88c-95a85e392c68
                  name: Platform Team
            schema:
              $ref: '#/components/schemas/gitpod.v1.UpdateGroupRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gitpod.v1.UpdateGroupResponse'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
          description: Error
      security:
      - bearerAuth: []
      summary: UpdateGroup
      tags:
      - gitpod.v1.GroupService
components:
  schemas:
    gitpod.v1.Principal:
      enum:
      - PRINCIPAL_UNSPECIFIED
      - PRINCIPAL_ACCOUNT
      - PRINCIPAL_USER
      - PRINCIPAL_RUNNER
      - PRINCIPAL_ENVIRONMENT
      - PRINCIPAL_SERVICE_ACCOUNT
      - PRINCIPAL_RUNNER_MANAGER
      title: Principal
      type: string
    gitpod.v1.ListRoleAssignmentsRequest.Filter:
      additionalProperties: false
      properties:
        groupId:
          description: "group_id filters the response to only role assignments for this specific group\n Empty string is allowed and means no filtering by group"
          title: group_id
          type: string
        resourceId:
          description: "Filters by a single resource. Non-admin callers with :grant permission\n on the resource can see role assignments from groups they don't belong to.\n Mutually exclusive with resource_ids."
          title: resource_id
          type: string
        resourceIds:
          description: "Filters by multiple resources in a single request. Non-admin callers with\n :grant permission on a resource can see all role assignments for that\n resource, even from groups they don't belong to. The :grant check is\n applied per-resource within the batch.\n Mutually exclusive with resource_id."
          items:
            format: uuid
            maxItems: 25
            type: string
          maxItems: 25
          title: resource_ids
          type: array
        resourceRoles:
          description: resource_roles filters the response to only role assignments with these specific roles
          items:
            $ref: '#/components/schemas/gitpod.v1.ResourceRole'
          title: resource_roles
          type: array
        resourceTypes:
          description: resource_types filters the response to only role assignments for these resource types
          items:
            $ref: '#/components/schemas/gitpod.v1.ResourceType'
          title: resource_types
          type: array
        userId:
          description: "user_id filters the response to only role assignments for groups that this user is a member of\n Empty string is allowed and means no filtering by user"
          title: user_id
          type: string
      title: Filter
      type: object
    gitpod.v1.GroupMembership:
      additionalProperties: false
      description: GroupMembership represents a subject's membership in a group
      properties:
        avatarUrl:
          description: Subject's avatar URL
          title: avatar_url
          type: string
        groupId:
          description: Group identifier
          format: uuid
          title: group_id
          type: string
        id:
          description: Unique identifier for the group membership
          format: uuid
          title: id
          type: string
        name:
          description: Subject's display name
          title: name
          type: string
        subject:
          $ref: '#/components/schemas/gitpod.v1.Subject'
          description: Subject (user, runner, environment, service account, etc.)
          title: subject
      title: GroupMembership
      type: object
    gitpod.v1.ListMembershipsResponse:
      additionalProperties: false
      properties:
        members:
          items:
            $ref: '#/components/schemas/gitpod.v1.GroupMembership'
          title: members
          type: array
        pagination:
          $ref: '#/components/schemas/gitpod.v1.PaginationResponse'
          title: pagination
      title: ListMembershipsResponse
      type: object
    gitpod.v1.GetMembershipResponse:
      additionalProperties: false
      properties:
        member:
          $ref: '#/components/schemas/gitpod.v1.GroupMembership'
          description: The membership if found, nil if subject is not a member
          title: member
      title: GetMembershipResponse
      type: object
    gitpod.v1.Subject:
      additionalProperties: false
      properties:
        id:
          description: id is the UUID of the subject
          format: uuid
          title: id
          type: string
        principal:
          $ref: '#/components/schemas/gitpod.v1.Principal'
          description: Principal is the principal of the subject
          title: principal
      title: Subject
      type: object
    gitpod.v1.CreateMembershipResponse:
      additionalProperties: false
      properties:
        member:
          $ref: '#/components/schemas/gitpod.v1.GroupMembership'
          title: member
      title: CreateMembershipResponse
      type: object
    gitpod.v1.ShareResourceWithPrincipalRequest:
      additionalProperties: false
      description: ShareResourceWithPrincipal messages
      properties:
        principal:
          $ref: '#/components/schemas/gitpod.v1.Principal'
          description: Type of principal to share with (user or service account)
          enum:
          - 2
          - 5
          title: principal
        principalId:
          description: ID of the principal (user or service account) to share with
          format: uuid
          title: principal_id
          type: string
        resourceId:
          description: ID of the resource to share
          format: uuid
          title: resource_id
          type: string
        resourceType:
          $ref: '#/components/schemas/gitpod.v1.ResourceType'
          description: Type of resource to share (runner, project, etc.)
          not:
            enum:
            - 0
          title: resource_type
        role:
          $ref: '#/components/schemas/gitpod.v1.ResourceRole'
          description: Role to grant the principal on the resource
          not:
            enum:
            - 0
          title: role
      title: ShareResourceWithPrincipalRequest
      type: object
    gitpod.v1.RoleAssignment:
      additionalProperties: false
      description: RoleAssignment represents a role assigned to a group on a specific resource
      properties:
        derivedFromOrgRole:
          $ref: '#/components/schemas/gitpod.v1.ResourceRole'
          descript

# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitpod/refs/heads/main/openapi/gitpod-gitpod-v1-groupservice-api-openapi.yml