GitLab CI/CD members API

Operations about members

OpenAPI Specification

gitlab-ci-members-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: GitLab access_requests members API
  version: v4
  description: Operations related to access requests
host: gitlab.com
produces:
- application/json
tags:
- name: members
  description: Operations about members
paths:
  /api/v4/groups/{id}/members:
    get:
      description: "Gets a list of group or project members viewable by the authenticated user,\n          excluding those with inherited membership from ancestor groups."
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - in: query
        name: query
        description: A query string to search for members
        type: string
        required: false
      - in: query
        name: user_ids
        description: Array of user ids to look up for membership
        type: array
        items:
          type: integer
          format: int32
        required: false
      - in: query
        name: skip_users
        description: Array of user ids to be skipped for membership
        type: array
        items:
          type: integer
          format: int32
        required: false
      - in: query
        name: show_seat_info
        description: Show seat information for members
        type: boolean
        required: false
      - in: query
        name: with_saml_identity
        description: List only members with linked SAML identity
        type: boolean
        required: false
      - in: query
        name: page
        description: Current page number
        type: integer
        format: int32
        default: 1
        required: false
        example: 1
      - in: query
        name: per_page
        description: Number of items per page
        type: integer
        format: int32
        default: 20
        required: false
        example: 20
      responses:
        '200':
          description: "Gets a list of group or project members viewable by the authenticated user,\n          excluding those with inherited membership from ancestor groups."
          schema:
            type: array
            items:
              $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: getApiV4GroupsIdMembers
    post:
      description: Adds a member to a group or project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - name: postApiV4GroupsIdMembers
        in: body
        required: true
        schema:
          $ref: '#/definitions/postApiV4GroupsIdMembers'
      responses:
        '201':
          description: Adds a member to a group or project.
          schema:
            $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: postApiV4GroupsIdMembers
  /api/v4/groups/{id}/members/all:
    get:
      description: "Gets a list of group or project members viewable by the authenticated user,\n          including those with inherited membership from ancestor groups."
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - in: query
        name: query
        description: A query string to search for members
        type: string
        required: false
      - in: query
        name: user_ids
        description: Array of user ids to look up for membership
        type: array
        items:
          type: integer
          format: int32
        required: false
      - in: query
        name: show_seat_info
        description: Show seat information for members
        type: boolean
        required: false
      - in: query
        name: state
        description: Filter results by member state
        type: string
        enum:
        - awaiting
        - active
        required: false
      - in: query
        name: page
        description: Current page number
        type: integer
        format: int32
        default: 1
        required: false
        example: 1
      - in: query
        name: per_page
        description: Number of items per page
        type: integer
        format: int32
        default: 20
        required: false
        example: 20
      responses:
        '200':
          description: "Gets a list of group or project members viewable by the authenticated user,\n          including those with inherited membership from ancestor groups."
          schema:
            type: array
            items:
              $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: getApiV4GroupsIdMembersAll
  /api/v4/groups/{id}/members/{user_id}:
    get:
      description: Gets a member of a group or project.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the member
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Gets a member of a group or project.
          schema:
            $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: getApiV4GroupsIdMembersUserId
    put:
      description: Updates a member of a group or project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the new member
        type: integer
        format: int32
        required: true
      - name: putApiV4GroupsIdMembersUserId
        in: body
        required: true
        schema:
          $ref: '#/definitions/putApiV4GroupsIdMembersUserId'
      responses:
        '200':
          description: Updates a member of a group or project.
          schema:
            $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: putApiV4GroupsIdMembersUserId
    delete:
      description: Removes a user from a group or project.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the member
        type: integer
        format: int32
        required: true
      - in: query
        name: skip_subresources
        description: Flag indicating if the deletion of direct memberships of the removed member in subgroups and projects should be skipped
        type: boolean
        default: false
        required: false
      - in: query
        name: unassign_issuables
        description: Flag indicating if the removed member should be unassigned from any issues or merge requests within given group or project
        type: boolean
        default: false
        required: false
      responses:
        '204':
          description: Removes a user from a group or project.
      tags:
      - members
      operationId: deleteApiV4GroupsIdMembersUserId
  /api/v4/groups/{id}/members/all/{user_id}:
    get:
      description: Gets a member of a group or project, including those who gained membership through ancestor group
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the member
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Gets a member of a group or project, including those who gained membership through ancestor group
          schema:
            $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: getApiV4GroupsIdMembersAllUserId
  /api/v4/groups/{id}/members/{user_id}/override:
    post:
      description: Overrides the access level of an LDAP group member.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the member
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Overrides the access level of an LDAP group member.
          schema:
            $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: postApiV4GroupsIdMembersUserIdOverride
    delete:
      description: Remove an LDAP group member access level override.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the member
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Remove an LDAP group member access level override.
          schema:
            $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: deleteApiV4GroupsIdMembersUserIdOverride
  /api/v4/groups/{id}/members/{member_id}/approve:
    put:
      description: Approves a pending member
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: path
        name: member_id
        description: The ID of the member requiring approval
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Approves a pending member
      tags:
      - members
      operationId: putApiV4GroupsIdMembersMemberIdApprove
  /api/v4/groups/{id}/members/approve_all:
    post:
      description: Approves all pending members
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      responses:
        '201':
          description: Approves all pending members
      tags:
      - members
      operationId: postApiV4GroupsIdMembersApproveAll
  /api/v4/groups/{id}/pending_members:
    get:
      description: Lists all pending members for a group including invited users
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: query
        name: page
        description: Current page number
        type: integer
        format: int32
        default: 1
        required: false
        example: 1
      - in: query
        name: per_page
        description: Number of items per page
        type: integer
        format: int32
        default: 20
        required: false
        example: 20
      responses:
        '200':
          description: Lists all pending members for a group including invited users
      tags:
      - members
      operationId: getApiV4GroupsIdPendingMembers
  /api/v4/groups/{id}/members/{user_id}/state:
    put:
      description: Changes the state of the memberships of a user in the group
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the user
        type: integer
        format: int32
        required: true
      - name: putApiV4GroupsIdMembersUserIdState
        in: body
        required: true
        schema:
          $ref: '#/definitions/putApiV4GroupsIdMembersUserIdState'
      responses:
        '200':
          description: Changes the state of the memberships of a user in the group
      tags:
      - members
      operationId: putApiV4GroupsIdMembersUserIdState
  /api/v4/groups/{id}/billable_members/{user_id}/memberships:
    get:
      description: Get the direct memberships of a billable user of a top-level group.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the member
        type: integer
        format: int32
        required: true
      - in: query
        name: page
        description: Current page number
        type: integer
        format: int32
        default: 1
        required: false
        example: 1
      - in: query
        name: per_page
        description: Number of items per page
        type: integer
        format: int32
        default: 20
        required: false
        example: 20
      responses:
        '200':
          description: Get the direct memberships of a billable user of a top-level group.
          schema:
            $ref: '#/definitions/API_Entities_BillableMembership'
      tags:
      - members
      operationId: getApiV4GroupsIdBillableMembersUserIdMemberships
  /api/v4/groups/{id}/billable_members/{user_id}/indirect:
    get:
      description: Get the indirect memberships of a billable user of a top-level group.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the member
        type: integer
        format: int32
        required: true
      - in: query
        name: page
        description: Current page number
        type: integer
        format: int32
        default: 1
        required: false
        example: 1
      - in: query
        name: per_page
        description: Number of items per page
        type: integer
        format: int32
        default: 20
        required: false
        example: 20
      responses:
        '200':
          description: Get the indirect memberships of a billable user of a top-level group.
          schema:
            $ref: '#/definitions/API_Entities_BillableMembership'
      tags:
      - members
      operationId: getApiV4GroupsIdBillableMembersUserIdIndirect
  /api/v4/groups/{id}/billable_members/{user_id}:
    delete:
      description: Removes a billable member from a group or project.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the member
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Removes a billable member from a group or project.
      tags:
      - members
      operationId: deleteApiV4GroupsIdBillableMembersUserId
  /api/v4/projects/{id}/members:
    get:
      description: "Gets a list of group or project members viewable by the authenticated user,\n          excluding those with inherited membership from ancestor groups."
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - in: query
        name: query
        description: A query string to search for members
        type: string
        required: false
      - in: query
        name: user_ids
        description: Array of user ids to look up for membership
        type: array
        items:
          type: integer
          format: int32
        required: false
      - in: query
        name: skip_users
        description: Array of user ids to be skipped for membership
        type: array
        items:
          type: integer
          format: int32
        required: false
      - in: query
        name: show_seat_info
        description: Show seat information for members
        type: boolean
        required: false
      - in: query
        name: with_saml_identity
        description: List only members with linked SAML identity
        type: boolean
        required: false
      - in: query
        name: page
        description: Current page number
        type: integer
        format: int32
        default: 1
        required: false
        example: 1
      - in: query
        name: per_page
        description: Number of items per page
        type: integer
        format: int32
        default: 20
        required: false
        example: 20
      responses:
        '200':
          description: "Gets a list of group or project members viewable by the authenticated user,\n          excluding those with inherited membership from ancestor groups."
          schema:
            type: array
            items:
              $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: getApiV4ProjectsIdMembers
    post:
      description: Adds a member to a group or project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - name: postApiV4ProjectsIdMembers
        in: body
        required: true
        schema:
          $ref: '#/definitions/postApiV4ProjectsIdMembers'
      responses:
        '201':
          description: Adds a member to a group or project.
          schema:
            $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: postApiV4ProjectsIdMembers
  /api/v4/projects/{id}/members/all:
    get:
      description: "Gets a list of group or project members viewable by the authenticated user,\n          including those with inherited membership from ancestor groups."
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - in: query
        name: query
        description: A query string to search for members
        type: string
        required: false
      - in: query
        name: user_ids
        description: Array of user ids to look up for membership
        type: array
        items:
          type: integer
          format: int32
        required: false
      - in: query
        name: show_seat_info
        description: Show seat information for members
        type: boolean
        required: false
      - in: query
        name: state
        description: Filter results by member state
        type: string
        enum:
        - awaiting
        - active
        required: false
      - in: query
        name: page
        description: Current page number
        type: integer
        format: int32
        default: 1
        required: false
        example: 1
      - in: query
        name: per_page
        description: Number of items per page
        type: integer
        format: int32
        default: 20
        required: false
        example: 20
      responses:
        '200':
          description: "Gets a list of group or project members viewable by the authenticated user,\n          including those with inherited membership from ancestor groups."
          schema:
            type: array
            items:
              $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: getApiV4ProjectsIdMembersAll
  /api/v4/projects/{id}/members/{user_id}:
    get:
      description: Gets a member of a group or project.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the member
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Gets a member of a group or project.
          schema:
            $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: getApiV4ProjectsIdMembersUserId
    put:
      description: Updates a member of a group or project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the new member
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdMembersUserId
        in: body
        required: true
        schema:
          $ref: '#/definitions/putApiV4ProjectsIdMembersUserId'
      responses:
        '200':
          description: Updates a member of a group or project.
          schema:
            $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: putApiV4ProjectsIdMembersUserId
    delete:
      description: Removes a user from a group or project.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the member
        type: integer
        format: int32
        required: true
      - in: query
        name: skip_subresources
        description: Flag indicating if the deletion of direct memberships of the removed member in subgroups and projects should be skipped
        type: boolean
        default: false
        required: false
      - in: query
        name: unassign_issuables
        description: Flag indicating if the removed member should be unassigned from any issues or merge requests within given group or project
        type: boolean
        default: false
        required: false
      responses:
        '204':
          description: Removes a user from a group or project.
      tags:
      - members
      operationId: deleteApiV4ProjectsIdMembersUserId
  /api/v4/projects/{id}/members/all/{user_id}:
    get:
      description: Gets a member of a group or project, including those who gained membership through ancestor group
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the member
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Gets a member of a group or project, including those who gained membership through ancestor group
          schema:
            $ref: '#/definitions/API_Entities_Member'
      tags:
      - members
      operationId: getApiV4ProjectsIdMembersAllUserId
definitions:
  putApiV4GroupsIdMembersUserIdState:
    type: object
    properties:
      state:
        type: string
        description: The new state for the memberships of the user
        enum:
        - awaiting
        - active
    required:
    - state
    description: Changes the state of the memberships of a user in the group
  API_Entities_CustomAttribute:
    type: object
    properties:
      key:
        type: string
        example: foo
      value:
        type: string
        example: bar
    required:
    - key
    - value
    description: API_Entities_CustomAttribute model
  API_Entities_MemberRole:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 2
      group_id:
        type: integer
        format: int32
        example: 2
      name:
        type: text
        example: Custom guest
      description:
        type: text
        example: Guest user who can also read_code
      base_access_level:
        type: integer
        format: int32
        enum:
        - 5
        - 10
        - 15
        - 20
        - 30
        - 40
        example: 40
      apply_security_scan_profiles:
        type: boolean
      admin_merge_request:
        type: boolean
      archive_project:
        type: boolean
      remove_project:
        type: boolean
      remove_group:
        type: boolean
      manage_security_policy_link:
        type: boolean
      admin_compliance_framework:
        type: boolean
      admin_cicd_variables:
        type: boolean
      manage_deploy_tokens:
        type: boolean
      manage_group_access_tokens:
        type: boolean
      admin_group_member:
        type: boolean
      admin_integrations:
        type: boolean
      manage_merge_request_settings:
        type: boolean
      manage_project_access_tokens:
        type: boolean
      admin_protected_branch:
        type: boolean
      admin_protected_environments:
        type: boolean
      manage_protected_tags:
        type: boolean
      admin_push_rules:
        type: boolean
      admin_runners:
        type: boolean
      admin_security_attributes:
        type: boolean
      admin_terraform_state:
        type: boolean
      admin_vulnerability:
        type: boolean
      admin_web_hook:
        type: boolean
      read_compliance_dashboard:
        type: boolean
      read_security_scan_profiles:
        type: boolean
      read_virtual_registry:
        type: boolean
      read_admin_cicd:
        type: boolean
      read_crm_contact:
        type: boolean
      read_dependency:
        type: boolean
      read_admin_groups:
        type: boolean
      read_admin_projects:
        type: boolean
      read_code:
        type: boolean
      read_runners:
        type: boolean
      read_security_attribute:
        type: boolean
      read_admin_subscription:
        type: boolean
      read_admin_monitoring:
        type: boolean
      read_admin_users:
        type: boolean
      read_vulnerability:
        type: boolean
    required:
    - id
    - group_id
    - name
    - description
    - base_access_level
    - apply_security_scan_profiles
    - admin_merge_request
    - archive_project
    - remove_project
    - remove_group
    - manage_security_policy_link
    - admin_compliance_framework
    - admin_cicd_variables
    - manage_deploy_tokens
    - manage_group_access_tokens
    - admin_group_member
    - admin_integrations
    - manage_merge_request_settings
    - manage_project_access_tokens
    - admin_protected_branch
    - admin_protected_environments
    - manage_protected_tags
    - admin_push_rules
    - admin_runners
    - admin_security_attributes
    - admin_terraform_state
    - admin_vulnerability
    - admin_web_hook
    - read_compliance_dashboard
    - read_security_scan_profiles
    - read_virtual_registry
    - read_admin_cicd
    - read_crm_contact
    - read_dependency
    - read_admin_groups
    - read_admin_projects
    - read_code
    - read_runners
    - read_security_attribute
    - read_admin_subscription
    - read_admin_monitoring
    - read_admin_users
    - read_vulnerability
  API_Entities_BillableMembership:
    type: object
    properties:
      id:
        type: string
      source_id:
        type: string
      source_full_name:
        type: string
      source_members_url:
        type: string
      created_at:
        type: string
      expires_at:
        type: string
      access_level:
        type: object
        properties:
          string_value:
            type: string
          integer_value:
            type: string
          custom_role:
            type: string
        required:
        - string_value
        - integer_value
        - custom_role
    required:
    - id
    - source_id
    - source_full_name
    - source_members_url
    - created_at
    - expires_at
    - access_level
    description: API_Entities_BillableMembership model
  postApiV4ProjectsIdMembers:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: A valid access level.
      user_id:
        type: integer
        format: int32
        description: The user ID of the new member or multiple IDs separated by commas.
      username:
        type: string
        description: The username of the new member or multiple usernames separated by commas.
      expires_at:
        type: string
        format: date-time
        description: Date string in the format YEAR-MONTH-DAY
      invite_source:
        type: string
        description: Source that triggered the member creation process
        default: members-api
    required:
    - access_level
    description: Adds a member to a group or project.
  putApiV4GroupsIdMembersUserId:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: A valid access level
      expires_at:
        type: string
        format: date-time
        description: Date string in the format YEAR-MONTH-DAY
      member_role_id:
        type: integer
        format: int32
        description: The ID of the Member Role to be updated
    required:
    - access_level
    description: Updates a member of a group or project.
  API_Entities_UserBasic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      username:
        type: string
        example: admin
      public_email:
        type: string
        example: john@example.com
      name:
        type: string
        example: Administrator
      state:
        type: string
        example: active
      locked:
        type: boolean
      avatar_url:
        type: string
        example: https://gravatar.com/avatar/1
      avatar_path:
        type: string
        example: /user/avatar/28/The-Big-Lebowski-400-400.png
      custom_attributes:
        type: array
        items:
          $ref: '#/definitions/API_Entities_CustomAttribute'
      web_url:
        type: string
        example: https://gitlab.example.com/root
    required:
    - id
    - username
    - public_email
    - name
    - state
    - locked
    - avatar_url
    - web_url
    description: API_Entities_UserBasic model
  API_Entities_Identity:
    type: object
    properties:
      provider:
        type: string
      extern_uid:
        type: string
      saml_provider_id:
        type: string
    required:
    - provider
    - extern_uid
    - saml_provider_id
  postApiV4GroupsIdMembers:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: A valid access level.
      user_id:
        type: integer
        format: int32
        description: The user ID of the new member or multiple IDs separated by commas.
      username:
        type: string
        description: The username of the new member or multiple usernames separated by commas.
      expires_at:
        type: string
        format: date-time
        description: Date string in the format YEAR-MONTH-DAY
      invite_source:
        type: string
        description: Source that triggered the member creation process
        default: members-api
    required:
    - access_level
    description: Adds a member to a group or project.
  putApiV4ProjectsIdMembersUserId:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: A valid access level
      expires_at:
        type: string
        format: date-time
        description: Date string in the format YEAR-MONTH-DAY
      member_role_id:
        type: integer
        format: int32
        description: The ID of the Member Role to be updated
    required:
    - access_level
    description: Updates a member of a group or project.
  API_Entities_Member:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      username:
        type: string
        example: admin
      public_email:
        type: string
        example: john@example.com
      name:
        type: string
        example: Administrator
      state:
        type: string
        example: active
      

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitlab-ci/refs/heads/main/openapi/gitlab-ci-members-api-openapi.yml